BSP & object class?!

Started by
-1 comments, last by McZ 20 years, 7 months ago
I have read alot about the BSP tree and I want to have it in my engine.. but I can''t understand how to store the objects I have in a scene? I understand how to split and create nodes and so.. but how to store the object and material data? should I have list with objects in the nodes? or should I store it some other way.. if I understand it right Quake BSP files doesn''t store objects they just have an vertexlist and so directly on the node leaf. but then I can''t understand how to sort things with different material/textures? I want to create a GeometryChunk class that stores the vertex data and material data for the current STATIC(non moving) object in the node this way I can send in a list of objects and convert them to a GeometryChunk and if needed I split them into two GeometryChunks with the same material data. and then I have different list that stores Dynamic(moving) objects every time they are moved they call a function in the node tree that checks only the center position of the object if it is on the wrong side of the plane of this node it will be removed from the node and that node will pass it on to it''s parent and there it will do the same check until it finds or create an own node for the new position. example:

class cGeometryChunk {

 float *Vertices;
 float *Normals
 float *TexCoords;

 cMaterial *Material;

};

class cBSP_Tree {

 std::list<cGeometryChunk*> Geometry;
 std::list<cEntity*> DynamicObjects;

 cBSP_Tree *Parent;
 cBSP_Tree *Front;
 cBSP_Tree *Back;

 void InsertDynamicObject(cVertex3f vCenter, cEntity *entity);
};

This topic is closed to new replies.

Advertisement