### 优化带宽(减少储存数据量 - 一块地形为128个三角形,每个三角形包含三个位置 - 每个位置包含位置Vec3,法线Vec3,UV Vec2 - 计算得出每个网格是12kb,整个场景为192M - 优化uv储存 - uv可以直接去掉,使用网格模型空间下的坐标 / 8来代替 - ![[Pasted image 20251111231745.png]] - 位置信息,可以优化掉position.xz只保留高度(没懂 - 使用gl_VertexID(顶点索引)来生成位置 - 使用floor和mod来确定x,z - position.x = flooar(gl_VertexID / 2.0); - position.z = mod(gl_VertexID, 2.0); - 去掉法线,改为两个16整数,使用俯仰角和偏航角来确定法线方向。虽然精度只有原来的一半,但是对于法线来说足够了 - 这些做完之后,由12.9kb=>3kb - 使用三角形条带,除了第一个三角形之外,之后的每个三角形都可以较少两个顶点信息 - 但只适合规整的网格 --- 着色器执行很快,但是一直等待从内存读取更多的数据,所以造成瓶颈 ### 使用批处理 ### LOD ### 使用foliage来掩盖每个细节层次的起始位置