I'm working on a group of C# classes to load Quake 3 .bsps inside of the Unity game engine. It works pretty well. Geometry and non-shader textures are flawless, including bezier patches and lightmaps. I'm kind of proud of it.
Here's the Github link if anyone is curious or wants to hack on it. Feel free to fork and have fun. https://github.com/mikezila/uQuake
Here's a screenshot:
http://imgur.com/KM3s836
I'm here because I want to add support/create a sister project to do the same with Quake 1 maps, and need some guidance on rendering the level geometry from BSP29 files. I'm doing some reading on the format and it seems simple enough to get a vertex list for each face, and using dotproducts to get texture coords is a hassle but not monumentally so. What I'm really confused about is...where are the triangles? In Quake3/IBSP each face has a list of triangle indexes into its vertex array you can easily use to render that face, but BSP29 doesn't have triangles defined anywhere it seems.
Am I missing something, or is it up to me to create some sorcery to figure out the triangles?
Here's the Github link if anyone is curious or wants to hack on it. Feel free to fork and have fun. https://github.com/mikezila/uQuake
Here's a screenshot:
http://imgur.com/KM3s836
I'm here because I want to add support/create a sister project to do the same with Quake 1 maps, and need some guidance on rendering the level geometry from BSP29 files. I'm doing some reading on the format and it seems simple enough to get a vertex list for each face, and using dotproducts to get texture coords is a hassle but not monumentally so. What I'm really confused about is...where are the triangles? In Quake3/IBSP each face has a list of triangle indexes into its vertex array you can easily use to render that face, but BSP29 doesn't have triangles defined anywhere it seems.
Am I missing something, or is it up to me to create some sorcery to figure out the triangles?
Comment