Instead of using triangle fans, you're better off using indexed triangles. Not every Quake3 map will render properly if you use triangle fans. I made the same mistake for ages and that's how I fixed my bogus vertex data problem. My renderer is Direct3D based so it might not help much. If you want it anyway, I can upload it and hopefully it will help.

"One objection to a “critique of C#” would be that you can’t talk about C# without talking about the whole “.Net experience”. However, one can approach the topic of Hitler without a complete discussion of Nationalist Socialism, so I feel justified." - Steve White.

Going through the BSP loading and drawing code may give you a few hints and save you a whole heap of pain and frustration.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.

"One objection to a “critique of C#” would be that you can’t talk about C# without talking about the whole “.Net experience”. However, one can approach the topic of Hitler without a complete discussion of Nationalist Socialism, so I feel justified." - Steve White.

blueshogun96 thanks, BornToCode an array starts at zero so 0,1,2. mhagain ok, I will start reading Idtech 3's source code, I have read quake, and quake2's have a fairly good understanding of them

That is what your index needs to say 3 index 0 1 and 2 are used. When you create an array with one element you do not say int Array[0] you say int Array[1] and you use only used index 0. So if you have x y and z then your Array needs to be defined as int Array[3] not int Array[2]. Look at your code in your bspface you have float vNormal[2];

vNormal supposed to have xyz which means vNormal needs to be [3] not [2]

I attached the source file I used to render .bsp files. It's a heavily modified version of the one from gametutorials.com. I modified it to use Direct3D9 and use triangle lists instead of fans. Maybe I should have included the entire project source. If you need it, I'll upload that too.

So far, my BSP loader is the only one I've ever seen render the Simpsons Q3 map correctly (besides Q3 itself), which is the most complex Q3 map I've seen to date. Hopefully this helps.

"One objection to a “critique of C#” would be that you can’t talk about C# without talking about the whole “.Net experience”. However, one can approach the topic of Hitler without a complete discussion of Nationalist Socialism, so I feel justified." - Steve White.

Ok thanks borntocode I was unaware of this. Thanks blueshotgun, Have you actually implemented the PVS system? (like paulsprojects)

PVS system? I'm sorry, what does that mean? The only thing I used from paulsprojects is his patch rendering code. My D3D implementation isn't very efficient since it uses D3DDevice::DrawIndexedPrimitiveUP every frame N times per tessellation, but it works.

Btw, my nickname is blueshogun, not blueshotgun. No worries, happens all the time.

"One objection to a “critique of C#” would be that you can’t talk about C# without talking about the whole “.Net experience”. However, one can approach the topic of Hitler without a complete discussion of Nationalist Socialism, so I feel justified." - Steve White.

Ok thanks borntocode I was unaware of this. Thanks blueshotgun, Have you actually implemented the PVS system? (like paulsprojects)

PVS system? I'm sorry, what does that mean? The only thing I used from paulsprojects is his patch rendering code. My D3D implementation isn't very efficient since it uses D3DDevice::DrawIndexedPrimitiveUP every frame N times per tessellation, but it works.

Btw, my nickname is blueshogun, not blueshotgun. No worries, happens all the time.

Shogun.

PVS=Potensial visibility set. It is a system used in an BSP tree that does Occlusion.

Ok thanks borntocode I was unaware of this. Thanks blueshotgun, Have you actually implemented the PVS system? (like paulsprojects)

PVS system? I'm sorry, what does that mean? The only thing I used from paulsprojects is his patch rendering code. My D3D implementation isn't very efficient since it uses D3DDevice::DrawIndexedPrimitiveUP every frame N times per tessellation, but it works.

Btw, my nickname is blueshogun, not blueshotgun. No worries, happens all the time.

Shogun.

PVS=Potensial visibility set. It is a system used in an BSP tree that does Occlusion.

"One objection to a “critique of C#” would be that you can’t talk about C# without talking about the whole “.Net experience”. However, one can approach the topic of Hitler without a complete discussion of Nationalist Socialism, so I feel justified." - Steve White.