I fixed the vertex buffer issue. It kinda helps if you calculate the offset correctly. :)
I started work on a new tool. The tool is called Actor Workbench. It's going to be a tool that converts file formats to Jet3D's actor format (ACT). So far it just supports Jet3D native formats. I plan to provide a plugin architecture that will allow the community to write their own loaders for other file formats.
We are planning a release (v2.5.1) for February 14th. Stay tuned.
I will end this entry with 2 screenshots of our tools.
I got a DirectX 9 Driver up and running, but I am having an issue rendering with a vertex buffer. I wrote a caching system that uses 1 dynamic vertex buffer and keeps track of each brush using a vector of a struct that contains the following information:
1. Starting vertex in the VB 2. Number of primitives 3. Number of texture layers 4. The texture array 5. Rendering flags (Alpha blending, Z buffer stuff, ...)
Before DrawPrimitive() is called, I sort the brushes by texture. The Flush() function only changes texture if the texture id is different from the previous one. I am using triangle fans to render as the engine is optimized for that right now.
The original way I did it worked, but was unoptimal. I originally just filled the vertex buffer with the one brush then called DrawPrimitive(). When I switched to the new way, I get a "polygon soup". In otherwords, the level looks exploded. If I figure it out, version 1 of my driver is done. Next step would be to get the world into 1 static vertex buffer.
Old Way (one brush then flush vertex buffer):
New way (fill dynamic vertex buffer, render using saved brush data):
Where to start??? Well...I've been working on my 3D engine, Jet3D. We are trying to upgrade it from DirectX 7 to DirectX 9 and are running into some design issues.
Our engine uses a BSP to render and we've finally found a way to batch render. We decided that the BSP is only good for collision and the engine's toolset. We will render the world using a combination of occlusion culling and frustum culling.