文章预览
前言 这里的程序化草地是基于《对马岛之魂》在GDC上的分享做的,其中我的实现方法和GDC的方法可能会有一些出入,但是大体上的思路是一致的。 正文 程序框架的搭建 使用绘制参数直接在GPU上直接进行绘制是提升性能最关键的步骤,在Unity中我们可以调用 Graphics.DrawProceduralIndirect 实现这项功能. public static void DrawProceduralIndirect( Material material, //草所使用的材质 Bounds bounds, //所渲染的草地的包围盒 MeshTopology topology, //这个参数可以指定五项,分别是Triangles、Quads、Lines、LineStrip、Points ComputeBuffer bufferWithArgs, //绘制参数 int argsOffset = 0 , //对于bufferWithArgs参数的偏移 Camera camera = null , //为null就是所有相机都会执行绘制,否则就执行指定相机的绘制 MaterialPropertyBlock properties = null , //想要单独设置的材质参
………………………………