Can anyone recommend a 3d game engine book or a site? I'm not looking at using an off the shelf 3d engine such as cry engine, unreal, unity etc. ...
Can't really give an advice for a book you're looking for, since each and
everyone about 3d engines comes with their own overhead/whyofthinging/mess.
... I know the basics already such as matrices, transformation, lighting, gouraud shading, back face culling, painter's algorithm (l know it's garbage lol but familiar with z-buffer). ...
Painter's algorithm isn't garbage. It's a different technique, it's an object
space (resolution independent) technique whereas the Z-buffer is an image
space (resolution dependent) technique, as you may know already, with a better
runtime -- if the shading technique doesn't hurt too much. However, with an
every increase in shader complexity the Z-buffer becomes more inefficient due
to overdraw. Evaluating a complex shading equation per-pixel and throwing the
result away for the next object covering the give one can become quite an
expensive task. So in one way or another the Z-buffer needs help from object
space if we wanna have cool and complex shaders for the years to come,
producing many of the hybrid Z-buffering systems.
However, there is an intrinsic property of the painter's algorithm which is
essentially the core of all 3d computer graphics, it's the object space depth
test. Basically the painter's algorithm is a very specialized variant of doing
a depth test and bringing the objects in order which doesn't work as good as
the Z-buffer for complex scenes as we know. But the key-point is the object
space depth test. This is what is skipped today when people do learn 3d
computer graphics. The painter's algorithm is mentioned just in passing and
the Z-buffer is then explained and used, skipping one of the most important
problems of 3d computer graphics in understanding the issue of any hidden-
line/surface algorithm.
... What l want to learn
Imagine i've got a 3d maze with some basic cube objects. What l want to do is learn how traverse through the scene with basic collision detection for the maze and the cubes...
If l have this knowledge then l can really starting playing around with some ideas using the Oculus Rift R2 kit i've purchased recently.. I'm not looking at anything fancier than this.
And that's why you need a book on 3d engines? Well, why don't you just put
your objects in a list (which solves the traversing part xD) and apply, as a
basic start, the same algorithm as frustum culling/clipping to each cube
against each plane (collision detection) of the maze? If you have implemented
frustum culling/clipping you likewise get a method for collision detection,
it's basically the same thing -- object collides with frustum. :+