半条命2 BSP光照图
我正在为大学项目编写BSP查看器。到目前为止,我已经正确加载了主要几何图形,并且PVS正常工作。 现在,我正在尝试应用光照贴图,但似乎无法正确计算光照贴图的纹理坐标。 根据这里:http : //developer.valvesoftware.com/wiki/The_Source_Engine_BSP_File_Format struct texinfo_t { float textureVecs[2][4]; // [s/t][xyz offset] float lightmapVecs[2][4]; // [s/t][xyz offset] - length is in units of texels/area int flags; // miptex flags overrides int texdata; // Pointer to texture name, size, etc. } 浮点数的第一个数组本质上是两个向量,代表在世界几何体上渲染时纹理的定向和缩放比例。s和t这两个向量是纹理像素坐标空间中从左到右和从上到下的方向到世界的映射。每个向量都有一个x,y和z分量,以及一个偏移量,该偏移量是纹理在该方向上相对于世界的“偏移”。向量的长度表示每个方向上纹理的缩放比例。 通过以下方式将纹理像素(或纹理像素)的2D坐标(u,v)映射到面部上某点的世界坐标(x,y,z): u = tv0,0 * x + tv0,1 …