• Advertisement
  • entries
    316
  • comments
    485
  • views
    323411

The heiroglyph progesses...

Sign in to follow this  

289 views

I have been really (too!) busy lately, but have found some time recently to work on Heiroglyph. It never ceases to amaze me how good it can feel to make progress on your pet projects...

In a general sense, Heiroglyph was originally developed as a 'graphics first' and 'everything else second' kind of engine. The primary motivation for working on it was for building simple graphics demos and gaining some experience as I was learning about programming and 3D theory.

As the engine evolved, I attained an acceptable graphics performance and organization and started adding in other components like input, sound, and scripting. They were all interesting in their own way and served as a good learning experience. Even so, the real fun has always been graphics programming...

Getting back to the point, I recently added a new TriMesh class to the engine to support a general triangle mesh with generic vertex attributes. The primary purpose of adding the new class was to be as flexible as possible with the vertex and face data that could be added to / represented by the class.

The prior implementation statically defined a vertex position, normals, tangents, binormals, texcoords and so on. But it was an all or nothing type of model - not very flexible.

The general idea was to allow the user to add streams of per-vertex attributes as needed. So if I know that my application is only going to be using normals and tangents, then that is all I add to the TriMesh. In contrast, two months from now when I implement some new functionality that requires additional per-vertex data (something like ambient occlusion data for example) then it is a snap to add it in.

I also added some features that I had on my wish list for a while. The class can generate the normals, binormals, and tangents, as well as perform debug renders of these vectors. I also added a method for reversing vertex ordering (I use MS3D & Direct3D), and a simple interface to add faces.

Here's an image of a simple heightmap with the debug vector rendering turned on:

I am pretty happy with how the whole thing turned out, and I actually didn't run into any major problems while testing it all out. [smile]
Sign in to follow this  


1 Comment


Recommended Comments

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement