I guess I'm confused because I'm imagining everything using the laws of the real world.
You say "drawn" like its a flat surface, but I know its in 3D. I've only experimented with ZBrush and Maya a few times, making models and such. I'm very much in the dark about this stuff.
I must sound like an idiot.
the computer has an order in which it displays (draws) things on screen.
It's simple to draw sonic on top of something else.... Think like layers.
It's hard to explain having something appear in front of something when it's actually at the same point on the Z axis.
The simplest way I can put it is that it's basically an optical illusion.
Contrary to what I said earlier, I meant disable GL_DEPTH_TEST.
Basically what happens is this. In most 3D engines, everything, regardless of drawing order, gets drawn in 3D space, as in, when something is supposed to be in front of something, it will be drawn in front of it, even if that object is drawn later.
However, if GL_DEPTH_TEST is disabled, or any equivalent of that, it doesn't take into account the depth of said object, it will always draw the object on top regardless. OpenGL has built-in functions for it, the easiest is disabling the depth test.
All thanks to Minecraft modding.
EDIT: It still moves in a 3D plane though, even if depth test is disabled. As in, it moves as normal, only always drawn on top.
It's how OpenGL works. Basically, it's the lack of depth clipping or a depth buffer.
In other words, the renderer draws the platform as if it would be at that position. Then, the next object is drawn over the last, where it would be as if nothing else was there. Normally, however, the renderer will hide things that are blocked in 3-dimensional space, but this can be disabled. In Sonic, however, the images are not rendered realtime; they're just sprites.
you can also put in which direction an object is blocking from
(06-11-2011, 09:40 PM)RétroX Wrote: [ -> ]In Sonic, however, the images are not rendered realtime; they're just sprites.
Not in Sonic Generations, but yeah I get it now.
3d objects pass through other objects all the time.
it's up to the coder to determine which objects collide and in what manner
That is kinda weird lookin'