The last progress I posted that included screenshots was when I added textures. That was a few months ago. While I have not had much to report since then, I have been no lazy bum. There were many advancements, but I wanted to wait until I had shadows before I posted anything major. I am [...]
Procedures for Safe Coding
Overview One of the things every programmer learns as he or she gains experience is how to avoid mistakes. Each time you make a mistake, you surely consider a way to avoid that mistake next time. As you gain experience, you start to discover practices that can help you to avoid a lot of mistakes. [...]
Tutorial: Tightly Culling Shadow Casters for Directional Lights (Part 2)
Continued… In the previous tutorial we came to the conclusion that the below image highlights the planes we want to pull towards ourselves, assuming we are the light source. Representing planes in 2D is not easy, but imagine each black line segment represents a plane that is coming from our eyes and is rotated along [...]
Tutorial: Tightly Culling Shadow Casters for Directional Lights (Part 1)
Overview Let’s start with a directional light. It casts shadows all over the scene. Since it is a directional light, it has infinite range and thus casts shadows everywhere. If we stretched a shadow map over the entire world, the shadow resolution would simply not be sufficient. We only want to casts shadows that the [...]
Progress Update
It has been a while since I posted any screenshots or updates. Rest assured, I am working on the engine constantly and have made a lot of progress, but mostly foundation work. A solid foundation leads to a stable and easily made future. In a previous company, long long ago, for the first time, I [...]
Style Guidelines
Overview I have been seeing a lot of questions lately about style. Ironically, a lot of people have in the past asked me to make a style guide. The reason I have refused for so long is because people can’t handle a style different from their own. It is such a personal subject for some [...]
Unity 3D
Yesterday I met the CEO and co-founder of Unity 3D, David Helgason. We have a mutual friend—Brett Seyler, who used to work at Garage Games/InstantAction and made the Torque game engine, but joined the Unity 3D team a few years ago. We talked for quite some time and he had his senior staff give me a [...]
3D Performance Tips
Overview This article will cover a lot of tips that can be used to speed up any 3D graphics system. Bottlenecks To understand why something makes your system faster, it is best to understand what makes it slow. An accurate table of which have the largest impacts can’t really be made because it depends [...]
Multi-Language Support/UTF
Overview Support for complex languages such as Chinese is crucial, and to avoid bugs and to provide the best support possible for exotic languages it is best to support them from the beginning, tempting as it may be to just use ASCII strings to get fast results so you can move on to the juicy [...]
[Progress Update] Normal Mapping/Transparency Mapping
In just a short time after getting texture support, support for transparency textures and normal textures has also been added. Because these subjects are well documented online, tutorials on how to support them will not be provided here. This is simply a progress update so that anyone following the progress of L. Spiro Engine can [...]