View Single Post
Handling BSP Clip Nodes
Old
  (#1)
Neoptolemus
Member
 
Status: Offline
Posts: 93
Join Date: Apr 2012
Default Handling BSP Clip Nodes - 22-09-2022

Hi everyone,

Bit of a long shot asking, hopefully there's still people around!

I have an issue with parsing a BSP file to produce a navmesh. The issue is that right now I'm transforming a HL1 map into a triangle mesh for navmesh generation by lifting out the vertices. The vertices represent all visible parts of the level geometry.

This is fine for the most part, except that func_illusionary entities are also visible and therefore included in the list of vertices, which means that they're treated as solid, same as the rest of the geometry. This is easy to fix by just discarding any vertices tied to a func_illusionary.

What isn't easy to fix however are clip brushes. I believe most HL maps use a func_illusionary to create something with transparency (such as a ladder or chain-link fence) and then use a brush with a clip texture to prevent players moving through it. The problem is that because these clip brushes are never rendered, their vertices never appear in the list of vertices in the BSP. I think they're represented in the clipnodes lump instead.

The result is that currently I have only two choices: have the bots treat all func_illusionary as solid, meaning bots can't walk through the curtains in cs_747 for example, or treat them all as non-solid, meaning the bots will try to walk through the chain-link fence in cs_militia and get stuck.

Has anyone resolved this issue before? I can see a reference to the BSP format here:

http://hlbsp.sourceforge.net/index.p...pdef#clipnodes

But I don't understand how you can convert a clipnode into a set of vertices. As far as I can tell, it only holds a plane normal and distance from the origin, making them infinitely wide and tall.
  
Reply With Quote