I was messing around with terrain and some characters on it, changing the scale of the terrain and the character however I was wondering are there any performance issues or other issues I should be aware of in relation to the scale of things? Is it better to keep everything on a small scale, or are there reasons to make things on a large scale, or does it matter at all?
When Your objects have BoundingVolumes, then the Frustum Culling handles with it. But it should be faster, not slower :lol:
When You use simpleGame, you can press 'B' to watch the BoundingVolumes
Scale does not matter to OpenGL, only the amount of rendered vertices and such. To OpenGL drawing 100 points in a 1x1x1 box is the same as in a 10x10x10 box (unless its outside the frustum and not rendered, which is determined by the BoundingBox)
Floating point precision decreases the further away from 0.0 your values are.
bigger objects tend to take up more pixels. that does affect the performance, not the scale itself.
Thats a little too simplistic, 1.1 and 0.1 each have less precision than 0 and 1.1 has less than 0.1; however 0.5-2-4-16 etc. all have the same precision (exact). Also, 128 is much more accurate than 128.1; and some special numbers like 1024.5 can be represented in binary exactly.
Yeah, mine should have read something about the amount of rendered pixels; thanx for the clarity. But thats different, thats fill rate which is card dependent, the matrix multiplication speed of opengl is not affected in anyway by the size of the geometry. Also, an object thats 1/2 the size of another will need the exact same amount of pixels when viewed twice as close as the first.
I hope this doesn't confuse you Grahf…
i think hevee was referring to really big numbers.
After a float has a certain size, it has not enough bits anymore to represent the exact value.
Again too simplistic… 536879011.25 can be represented exactly, whereas 1.1 cannot. However, 1.1 is much more accurate than 536879011.1
I am not trying to be argumentative, however floating point arithmetic is rather complex; and I have found the more information about how floats actually work the more I understand the potential gotchas.