Java 3D Game Development 31: New Engine


Hello everyone, and welcome to this week’s
game development log video diary, and this week, I am back! I’ve finished
my final university exams and my dissertation, so I can now finally get back to working on
the more important things in life such as rewriting the rendering engine
for my game. And that is what I’ve been working on this week. It’s not
yet fully connected up with the game though, so this video will be more of a demonstration
of the engine, and I’ll start things off by showing you the lighting
improvements. So if we take a quick look back at how the
lighting was before you can see that the lighting wasn’t the highest of
qualities, especially on shiny materials like the player’s helmet here.
But in the new engine you can see that the lighting is much much smoother. And that’s
because I’m now using per pixel lighting instead of per
vertex. I’ve also improved the way multiple light
sources work in the new engine. The use of these was really limited in the
old engine, and each object could only be lit by just one extra light source, so I couldn’t
put light sources too close together. But I’ve changed that now and you
can see the tree and the bunny here being lit up nicely by all three of
these colorful lamps. I also worked on a new level of detail system
this week and I can demonstrate the new mesh simplification algorithm here on the
Stanford dragon model. So as the camera moves further away from the model it would be simplified
like this, and you can see that even when the model is simplified
to less than 1% of its triangles it still holds the shape of the dragon fairly
well. And if this was rendered far enough in the distance you’d hardly be able to tell
the difference between the original and the simplified version. As well as that I implemented the opengl mipmapping
function, and I’ve exaggerated the effect here so that you can see
what’s going on. So textures are only rendered in high definition when you get close enough
to them, which increases performance by quite a bit, and it also helps
to stop textures flickering off in the distance. The terrain also now has a much improved level
of detail system and that’s because I’ve implemented the geomipmapping algorithm which
simplifies parts of the terrain depending on how far away they are from the camera,
which you can see here. And if I turn off the algorithm you can see just
how many triangles the algorithm actually removes from the terrain, and I’m sure
you can imagine just how much slower it would be to render the terrain if I didn’t use this
algorithm. On the topic of terrains, they are now 64
times larger than they were before, which makes it very easy for me to make
some massive terrain formations like this. And it also means that I can use larger blend
maps to indicate where textures should be rendered on the terrain, so it’s
much easier for me to paint these sprawling pathways across huge sections
of the map. And finally a couple of little texture changes.
I’ve allowed for texture atlas support for animated models, so these rabbits
can now have individual colors and yet still all use the same texture file. And, as you
may have noticed before, parts of textures can now be set to glow the whole
time like the windows of these houses here, giving them a more lived-in
look. And that it it for this week! Next time I’m
going to be joining up the new engine with my game, and also adding a couple
of new features as well. I’m actually off on holiday for a couple of weeks now, so that
video will probably be up in 2 weeks time, but after that I should finally
be back to uploading pretty much weekly again. But yeah, thank you guys very much
for watching this video, sorry that it’s been such a long time coming,
do subscribe if you haven’t already, have an awesome week, and I will see you all next
time.

Leave a Reply

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