| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
Accuracy in 3d-rotation routines?
How accurate do you run your 3d-rotation routines?
I just started doing a mockup (in a high-level language) for a 3D-rotation routine, but found out that running 8-bit accuracy (8 bit coords and sin/cos tables, 8 bit mulitiplies w. 16 bit result) really looked quite crappy, vertexes flail about rather much. Do people generally run full 16-bit all the way through? |
|
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
Ahh... Just noticed that the part that was killing my accuracy was the perspective transformation. Probably running that in higher accuracy will be enough, and then leave the rotation at 8 bit. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Precalculate FTW. Protip: Coords can be packed to fill a lot less.
|
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
Yeah, precalc is what I have done so far, since it is both faster and you can have full accuracy. But it still feels a bit like cheating! On the other hand, isn't cheating what democoding is all about... :D |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: Yeah, precalc is what I have done so far, since it is both faster and you can have full accuracy. But it still feels a bit like cheating! On the other hand, isn't cheating what democoding is all about... :D
I normally use 8 bits for vertices and rotation then 16 bit when doing the perspective. Graham uses full 16 bits in his latest vectors, that about the only way to get full sub-pixel accuracy in the line drawer. |
| |
HCL
Registered: Feb 2003 Posts: 728 |
@JA: Hmm, what really is "full sub-pixel accuracy"!? ;) Calculating with 2 steps per pixel is still sub-pixel accuracy, right..
btw.. I usually calculate matrix rotation in 16 bit, then doing vertex calculation + perspective in only 8 bit :/. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: @JA: Hmm, what really is "full sub-pixel accuracy"!? ;) Calculating with 2 steps per pixel is still sub-pixel accuracy, right..
btw.. I usually calculate matrix rotation in 16 bit, then doing vertex calculation + perspective in only 8 bit :/.
Hehe, good question. Well, with full pixel accuracy I guess I mean some fractional part in each pixel... ;) So that a line with int(dy)=-1 still can be one of the following:
1)
*
*******
2)
**
******
3)
***
*****
4)
****
****
5)
*****
***
6)
******
**
7)
*******
*
I guess full precision would be allowing the cut in the slop to appear anywhere on a line with dy=-1 and dx=full width. =)
I.e. for lines that are max 128 pixels wide you'd need 7.7 for full sub pixel accuracy. |
| |
HCL
Registered: Feb 2003 Posts: 728 |
@JA, nice visual explanation :), that's how i imagine it also.. But i like to think more on pixel level: How many steps (==sub-pixels) (x and y) are there in one pixel? Let's say you have full 8 bit sub-pixel accuracy, then you should calculate your lines with 256x256 sub-pixels in each pixel.
Man, did you quit work already? Or are you discussing sub-pixels on project time?! Gotta be going home now, CU :). |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: @JA, nice visual explanation :), that's how i imagine it also.. But i like to think more on pixel level: How many steps (==sub-pixels) (x and y) are there in one pixel? Let's say you have full 8 bit sub-pixel accuracy, then you should calculate your lines with 256x256 sub-pixels in each pixel.
Man, did you quit work already? Or are you discussing sub-pixels on project time?! Gotta be going home now, CU :).
@HCL: Yes of course, that's how I see it as well. I was just trying to explain what I meant by FULL sub pixel precision. For lines that are at most 128 pixels wide, 7 bits of fractional digits are enough, 8 bit sub pixel precision is just superfluous in that case.
Anyways, OMG! Beer time! |
| |
pernod Account closed
Registered: Nov 2004 Posts: 25 |
Quote: @HCL: Yes of course, that's how I see it as well. I was just trying to explain what I meant by FULL sub pixel precision. For lines that are at most 128 pixels wide, 7 bits of fractional digits are enough, 8 bit sub pixel precision is just superfluous in that case.
Anyways, OMG! Beer time!
Yes, beertime in mine and Puterman's office! :-)
|
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
Quoting HCL
btw.. I usually calculate matrix rotation in 16 bit, then doing vertex calculation + perspective in only 8 bit :/.
My matrix is 24 bit and my vertices + perspective are 16 bit :P |
... 3 posts hidden. Click here to view all posts.... |
Previous - 1 | 2 - Next |