[Release] LSDxt DXT Compressor 4.0

The fourth version of my DXT compressor is now available for release here. Texture addressing modes and new filters are the main additions this time, along with alternative command-line options to make it more compatible with existing tools. Changes: Added the Lanczos2 filter. Added support for BC4, BC5, BC6H, and BC7 formats. Improved quality of [...]


[Release] LSDxt DXT Compressor 3.0

The third version of my DXT compressor is now available for release here. Texture addressing modes and new filters are the main additions this time, along with alternative command-line options to make it more compatible with existing tools. Changes: Added quadratic and B-Spline filters. Added alternative commands (bc1, bc1a, bc2, bc3, f, g, clamp, mirror, repeat, wrap, reflect, [...]


[Release] LSDxt DXT Compressor 2.0

The second version of my DXT compressor is now available for release here. It now uses FreeImage to provide support for virtually all image formats, and uses a heavily optimized Squish implementation for better performance and quality. Changes: Normalizing normal maps is now correct. Changed the DXT conversion routine to use the Squish library. Added [...]


Basic Graphics Implementation

Overview When I first started this site I was originally planning to post about the construction of the engine along the way, what design decisions I made, and why.  Now that I am restarting the graphics portion of the engine it is a good chance to do that.  I won’t cover everything I do for [...]


Scene Graphs

Overview There are a lot of misconceptions regarding what a scene graph is, does, and how it is applied to the world of video games.  For many years even Wikipedia took note of this confusion and mentioned the dispute within in the industry as to exactly what it is and does.  This is probably largely [...]


State of the Engine

Since joining tri-Ace 2 years ago I have learned a lot about physically based rendering and from working on their in-house engine I have gleaned new ideas on engine design.  Not only that but I was building off a previous iteration of my engine which was mainly based on DirectX 9, meanwhile DirectX 11 has [...]


Efficient Instant-Insertion Quadtrees

Overview This tutorial will present an efficient implementation of quadtrees.  It is expected that you have at least a basic understanding of what quadtrees are and do, and if not you can read about them here: http://en.wikipedia.org/wiki/Quadtree Although they improve performance in algorithms related to searching for visible objects or in detecting collisions for physics, quadtrees [...]


[Update] Personal

I wanted to avoid posting anything personal here at all costs, but it has been so long since the last update I felt I need to explain the current state of things so that people do not misunderstand that the project is dead. It is quite far from it. I am currently working on getting [...]


[Release] LSDxt DXT Compressor

The first version of my DXT compressor is now available for release here. The algorithm and comparisons are described here: DXT Compression Revisited Here is a list of the commands: -file <path> Input file to process.  There can be multiple of these. -outfile <path> Output file for the last -file input.  By default, if no output [...]


[Progress Update] DirectX® 11 and Reflections

It has been a while since I have posted, but only because my progress has recently been hindered greatly.  A few weeks ago my hard drive fully crashed and I had to get a new one, reinstall both operating systems (twice), and a lot of software.  I still haven’t installed everything. Then I went to [...]


[Progress Update] BRDF’s, Cell Shading, DirectX 10, Windows x64, and More

Although I have not posted any updates for a while I am no slouch.  Of course given my .MAP tutorials that are still in progress it is clear that I am still working.  But that is really only the tip of the iceberg. I left DirectX 10 behind long ago but have recently been catching [...]


Making Buildings from .MAP Files Part 2

Overview This is part 2 of my series on loading buildings/interiors/maps from Valve Hammer Editor .MAP files.  Part 1 can be found here.  The purpose of this tutorial is ultimately to generate a convex solid-leaf BSP tree in which each leaf contains at least part of a room.  Generating convex sets of polygons is the first [...]


Making Buildings from .MAP Files Part 1

Overview Valve Hammer Editor is a pretty common tool for making buildings and structures for games these days, and in some cases entire levels.  It exports .MAP files containing solids, called “brushes”, which make up the solid areas of the building/structure/map.  There are a few tools that can convert these to .BSP files for use [...]


Fixed-Time-Step Implementation

Overview There are many topics covering the concept behind fixing your time step.  Last time I read them was many years ago and having just re-read them I just realized they already cover about 50% of what I planned to cover, but while they do give implementations and explain certain concepts fairly well, people still [...]


[Update] Post Processing

Another progress update.  There isn’t much special to say about what I have added because it is fairly standard post-processing, but I felt a few screenshots would be of interest for anyone following this project. I generally lay down a solid foundation before adding any features.  I could have added post-processing long ago but I [...]


Passing Data Between Game States

Overview I mentioned in the previous article that passing data between game states is easy enough, and a many readers wanted to know how this could be done.  So by popular demand I will provide 2 methods for how this can be done.  I will also go into more detail on how state changes are [...]


General Game/Engine Structure

Overview The subject of how one should organize a game has been appearing a lot lately.  Mainly these questions are focused on how to organize all the different parts of the game, such as the menu, the gameplay area, the bonus rounds, the story screens, etc. The most common proposal I see are switch cases [...]


DXT Compression Revisited

Pre(r)amble I made a previous post on a new method for compressing images into the DXT format.  Various sources, including former NVIDIA employee Ignacio Castaño, agreed that the quality was not quite what it should be, and I began a more thorough investigation into why.  Some of my test images also had a few bad artifacts [...]


iOS Support

A few weeks ago I purchased a MacBook Pro and later began the arduous process of porting the engine to iOS.  My engine is organized into mini-engines, which are each their own projects (brought together into one master project) and build into separate libraries.  The sound library, terrain library, physics library, etc.  This keeps things [...]