Chimera 2: Begin!

Begin!

Today I bite the bullet and learn 3D.

Voxels? Ray tracing? What?

It doesn’t matter.

What matters is a look so amazing that at first you simple can’t take it in and your brain almost finds it difficult to accept. A bit like Little Big Planet. You went “so?” and then you really started to see what was happening before the OMG factor started to sink in.

But first, grasshopper, you must being with the ABC.

Unity? No, not for me. I’m a coder. I cut my teeth on assembler. I will learn OpenGL and I will know what I’m talking about.

It’s frustum, not frustrum.

My current understanding

A representation of a world is created in the computer using geometry, texture and lighting. You then view a portion of this world from what we call the camera position. This view is projected onto a notional 2D plane, which happens to be your screen or a window on it. The depth information that is lost is hinted at because of the perspective transformations applied to all of the geometry used to model the world. In isometric 3D, this perspective is not used. This can give us efficiencies.

The world that is projected onto our 2D view occupies a space called a view frustum. Note, there is no second ‘r’ in frustum. In isometric 3D, the frustum is a rectangular volume. This can offer us efficiencies too. In 3D graphics that preserve perspective, it looks like this

If you’re a bit of a conspiracy fan, you might be reminded of something else

The main thing to note is that the farthest world plane and the camera plane (apologies if this terminology is wrong, remember, I know nothing) are the same size in an isometric 3D view.

Another efficiency I’m going to get is that the draw distance is going to be necessarily small, no matter how much of the screen is covered. This again gives us a lot of efficiency. It also means that the amount of overdraw is going to be tiny, and back-face removal probably unnecessary unless I end up going for lots of layers without alpha.

Onwards!

Leave a Reply

Your email address will not be published. Required fields are marked *