bsp文件:BSP结构文件分析整理总结



直都想把Hl2BSP文件给分析分析的前也尝试过很多次直进展缓慢昨天又看了个BSPLoad源码终于知道是个什么概念了…………
\"\"
头文件中包含:BSP文件版本号等信息.


\"\"\" align=top>structdheader_t
...{
\"\"\" align=top>
ident;
\"\"\" align=top>
version;
\"\"\" align=top>lump_tlumps[HEADER_LUMPS];
\"\"\" align=top>
mapRevision;//themap\'srevision(iteration,version)number(addedBSPVERSION6)
\"\"\" align=top>
}
;

这个结构体包含以下信息:
ident BSP文件类型(idIBSP ValveVBSP)
version 版本信息
lump_t 数据块信息
mapRevision 地图修改信息

lump_t结构体如下:


\"\"\" align=top>structlump_t
...

{
\"\"\" align=top>
fileofs,filelen;
\"\"\" align=top>
version;//defaulttozero
\"\"\" align=top>
charfourCC[4];//defaultto(char)0,(char)0,(char)0,(char)0
\"\"\" align=top>
}
;

fileofs 偏移位置也就是在文件中起始位置
filelen 长度
version 版本
fourCC[4] 4位…………没有太明白它含义读取出来都是0

Lump数据结构对应表 宏名 数据结构
LUMP_MODELS dmodel_t
LUMP_VERTEXES dvertex_t
LUMP_PLANES dplane_t
LUMP_NODES dnode_t
LUMP_TEXINFO texinfo
LUMP_TEXDATA dtexdata_t
LUMP_DISPINFO g_dispinfo
LUMP_DISP_VERTS g_DispVerts
LUMP_DISP_TRIS g_DispTris
LUMP_DISP_LIGHTMAP_SAMPLE_POSITIONS g_DispLightmapSamplePositions
LUMP_FACE_MACRO_TEXTURE_INFO g_FaceMacroTextureInfos
LUMP_FACES dface_t
LUMP_FACES_HDR dface_t
LUMP_PRIMITIVES dprimitive_t
LUMP_PRIMVERTS dprimvert_t
LUMP_PRIMINDICES unsigned
LUMP_ORIGINALFACES dface_t
LUMP_LEAFFACES dleaffaces[0]
LUMP_LEAFBRUSHES dleafbrushes[0]
LUMP_SURFEDGES dsurfedges[0]
LUMP_EDGES dedge_t
LUMP_BRUSHES dbrush_t
LUMP_BRUSHSIDES dbrushside_t
LUMP_AREAS darea_t
LUMP_AREAPORTALS dareaportal_t
LUMP_VISIBILITY 1
LUMP_LIGHTING dlightdataLDR
LUMP_LIGHTING_HDR dlightdataHDR
LUMP_LEAF_AMBIENT_LIGHTING g_LeafAmbientLightingLDR
LUMP_LEAF_AMBIENT_LIGHTING_HDR g_LeafAmbientLightingHDR
LUMP_ENTITIES dentdata
LUMP_WORLDLIGHTS dworldlight_t
LUMP_WORLDLIGHTS_HDR dworldlight_t
LUMP_LIGHTMAPPAGES g_dLightmapPages
LUMP_LIGHTMAPPAGEINFOS g_dLightmapPageInfos
LUMP_PORTALS dportal_t
LUMP_CLUSTERS dcluster_t
LUMP_LEAFWATERDATA dleafwaterdata_t
LUMP_PORTALVERTS unsigned
LUMP_CLUSTERPORTALS unsigned
LUMP_PHYSCOLLIDE (void**)&g_pPhysCollide
LUMP_VERTNORMALS g_vertnormals[0]
LUMP_VERTNORMALINDICES g_vertnormalindices[0]
LUMP_CLIPPORTALVERTS g_ClipPortalVerts[0]
LUMP_CUBEMAPS g_CubemapSamples[0]
LUMP_TEXDATA_STRING_DATA g_TexDataStringData


LUMP_TEXDATA_STRING_TABLE g_TexDataStringTable
LUMP_OVERLAYS g_Overlays[0]
LUMP_WATEROVERLAYS g_WaterOverlays[0]
LUMP_MAP_FLAGS flags_lump
LUMP_LEAFMINDISTTOWATER g_LeafMinDistToWater[0]
LUMP_PAKFILE ( void ** )&pakbuffer
LUMP_LEAFS dleaf_t



相关宏定义在:BSPFILE.H文件中加载对应结构体信息在:bsplib.cppLoadBSPFile中可以找到…………:)
[Page]直都想把Hl2BSP文件给分析分析的前也尝试过很多次直进展缓慢昨天又看了个BSPLoad源码终于知道是个什么概念了…………
\"\"
头文件中包含:BSP文件版本号等信息.


\"\"\" align=top>structdheader_t
...{
\"\"\" align=top>
ident;
\"\"\" align=top>
version;
\"\"\" align=top>lump_tlumps[HEADER_LUMPS];
\"\"\" align=top>
mapRevision;//themap\'srevision(iteration,version)number(addedBSPVERSION6)
\"\"\" align=top>
}
;

这个结构体包含以下信息:
ident BSP文件类型(idIBSP ValveVBSP)
version 版本信息
lump_t 数据块信息
mapRevision 地图修改信息

lump_t结构体如下:


\"\"\" align=top>structlump_t


...{
\"\"\" align=top>
fileofs,filelen;
\"\"\" align=top>
version;//defaulttozero
\"\"\" align=top>
charfourCC[4];//defaultto(char)0,(char)0,(char)0,(char)0
\"\"\" align=top>
}
;

fileofs 偏移位置也就是在文件中起始位置
filelen 长度
version 版本
fourCC[4] 4位…………没有太明白它含义读取出来都是0

Lump数据结构对应表 宏名 数据结构
LUMP_MODELS dmodel_t
LUMP_VERTEXES dvertex_t
LUMP_PLANES dplane_t
LUMP_NODES dnode_t
LUMP_TEXINFO texinfo
LUMP_TEXDATA dtexdata_t
LUMP_DISPINFO g_dispinfo
LUMP_DISP_VERTS g_DispVerts
LUMP_DISP_TRIS g_DispTris
LUMP_DISP_LIGHTMAP_SAMPLE_POSITIONS g_DispLightmapSamplePositions
LUMP_FACE_MACRO_TEXTURE_INFO g_FaceMacroTextureInfos
LUMP_FACES dface_t
LUMP_FACES_HDR dface_t
LUMP_PRIMITIVES dprimitive_t
LUMP_PRIMVERTS dprimvert_t
LUMP_PRIMINDICES unsigned
LUMP_ORIGINALFACES dface_t
LUMP_LEAFFACES dleaffaces[0]
LUMP_LEAFBRUSHES dleafbrushes[0]
LUMP_SURFEDGES dsurfedges[0]
LUMP_EDGES dedge_t
LUMP_BRUSHES dbrush_t
LUMP_BRUSHSIDES dbrushside_t
LUMP_AREAS darea_t
LUMP_AREAPORTALS dareaportal_t
LUMP_VISIBILITY 1
LUMP_LIGHTING dlightdataLDR
LUMP_LIGHTING_HDR dlightdataHDR
LUMP_LEAF_AMBIENT_LIGHTING g_LeafAmbientLightingLDR
LUMP_LEAF_AMBIENT_LIGHTING_HDR g_LeafAmbientLightingHDR
LUMP_ENTITIES dentdata
LUMP_WORLDLIGHTS dworldlight_t
LUMP_WORLDLIGHTS_HDR dworldlight_t
LUMP_LIGHTMAPPAGES g_dLightmapPages
LUMP_LIGHTMAPPAGEINFOS g_dLightmapPageInfos
LUMP_PORTALS dportal_t
LUMP_CLUSTERS dcluster_t
LUMP_LEAFWATERDATA dleafwaterdata_t


LUMP_PORTALVERTS unsigned
LUMP_CLUSTERPORTALS unsigned
LUMP_PHYSCOLLIDE (void**)&g_pPhysCollide
LUMP_VERTNORMALS g_vertnormals[0]
LUMP_VERTNORMALINDICES g_vertnormalindices[0]
LUMP_CLIPPORTALVERTS g_ClipPortalVerts[0]
LUMP_CUBEMAPS g_CubemapSamples[0]
LUMP_TEXDATA_STRING_DATA g_TexDataStringData
LUMP_TEXDATA_STRING_TABLE g_TexDataStringTable
LUMP_OVERLAYS g_Overlays[0]
LUMP_WATEROVERLAYS g_WaterOverlays[0]
LUMP_MAP_FLAGS flags_lump
LUMP_LEAFMINDISTTOWATER g_LeafMinDistToWater[0]
LUMP_PAKFILE ( void ** )&pakbuffer
LUMP_LEAFS dleaf_t



相关宏定义在:BSPFILE.H文件中加载对应结构体信息在:bsplib.cppLoadBSPFile中可以找到…………:)
Tags:  数据结构总结 分析检查阶段总结 bsp文件

延伸阅读

最新评论

发表评论