Files
obsidian-notes/1Project/GPU地形/地形优化.md
zzzisfunnyboy 45e3f661b6 1
2026-04-01 01:10:19 +08:00

33 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
- 带宽
- 优化
---
### 优化带宽(减少储存数据量
- 一块地形为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来掩盖每个细节层次的起始位置