← 返回作品
个人作品 渲染

对马岛之魂草地渲染复刻

个人独立项目

动机

个人很喜欢《对马岛之魂》的画面,尝试用 Unity 还原其中的草地渲染——这是一个用来打磨底层渲染编程能力的自驱项目。

实现思路

  • 数据计算:用 Compute Shader 计算渲染草所需的全部数据(几何信息、草的动态信息、材质信息等)。
  • 绘制:用 Unity 的 DrawProceduralIndirect 绘制,这是 GPU Instancing 的一种实现,一次 Drawcall 绘制大量草 Instance,绘制数据来自上一步的 Compute Shader。
  • LOD:将整个 Terrain 分成若干 Tile,每个 Tile 跑一个独立的 Compute Shader,按摄像机距离选择 LOD 层数。
  • 并行优化:分 Tile 后用 Async Compute,在上一个 Tile 走 Graphics 管线的同时开启下一个 Tile 的 Compute 计算,提高并行效率。

价值

该项目从零搭建了一套 GPU 驱动的草地渲染管线,覆盖 Compute → Indirect Draw → LOD → 异步并行的完整链路,体现独立构建渲染技术的能力。