I am trying to get my maps to work with Darkplaces and I have setup all my bmodels (doors, buttons) with skip on their hidden surfaces. I have been using your newskip.exe program to move the skip surfaces around inside of the bsp, but strange things are happening.
Projectiles often fall through the bmodels with skip surfaces and traceline functions cannot recognize the objects anymore. If I compile without the newskip.exe the bmodels are all fine. I checked that the objects have the correct bbox and min/max setup but I cannot see what is wrong.
What exactly does newskip.exe do? I want to be able to explain to LordHavoc so that I can log a bug with him about Darkplaces and hopefully get the situation fixed. I really want to keep the skip surface function but I need to get more details. Can you help?
basically skip tool will re-arrange the faces in the leaf or bmodel so that the skip faces are at the end of the list, then it changes the "num faces" count to be lower.
so if you start with this:
Faces: A B C D E F
And B and C are skip-textured, you get this at the end:
Faces: A D E F B C
So B and C are still included in the list, but won't get drawn because the engine will stop after drawing the first 4 faces.
Also the source code is included in the newskip archive, so Lordhavoc should be able to look at it in more detail if he wants to.
So That's How SKIP Works!
I thought it deleted the faces. That explains why newskipped bsps when loaded into another map as a .model still render all of their faces even when loaded by themselves they don't render. (Yeah I was playing around with the idea of instancing (you know like source engine!) multiple bsp's which works almost perfectly but would be absolutely horrid for performance in my case since skipping doesn't work. That and you get fireflies between mating surfaces of zero thickness (think tri-soup where two brushes only share an edge));
Wait how does the engine render entity .model's like for monsters and brush entities? Is there a way to have a skip utility that causes certain faces of a bsp to have the pink index color of transparency applied to them?
The latest tyr-qbsp removes skip surfaces completely during compilation (instead of hiding them at the end of the surface list) in case that helps.
Interesting, I didn't consider that use case when creating the tool. It should be possible to support it, though tyranns new absolute kind of makes my tool obsolete.
"Absolute" should read "qbsp" -- cursed iPad autocorrect
Darkplaces doesn't treat skip surfaces as simply tranpsarent faces by default like normal engines. Instead, to DP it's pretty much like they aren't there, so shots pass through and they don't block visibility. Check the sv_gameplayfix_q1bsptraceline* cvars, they can revert this behavior.