textureName | 要复制到的地形纹理的名称。 |
textureIndex | 要复制到的地形纹理的索引。 |
sourceRect | 要复制的活动渲染纹理的一部分。 |
dest | 要复制到的地形纹理的 X 和 Y 坐标。 |
allowDelayedCPUSync | 指定是否允许纹理的延迟 CPU 同步。 |
将活动 RenderTexture 的指定部分复制到地形纹理。
如果 allowDelayedCPUSync
参数设置为 true
,并且平台支持在 RenderTexture 和 Texture2D 之间复制,Unity 会执行从活动 RenderTexture 到地形纹理的 GPU 复制。这足以用于地形渲染,但您需要随后调用 SyncTexture 来同步纹理的 CPU 部分。
如果 allowDelayedCPUSync
参数设置为 false
,或者平台不支持纹理之间的复制,Unity 会立即读回活动 RenderTexture 的内容,并更新地形纹理的 CPU 和 GPU 部分。
Unity 建议您以 Terrain.heightmapRenderTextureFormat 指定的格式创建要复制的源渲染纹理,并在写入源渲染纹理之前调用 HLSL 函数 PackHeightmap
。要使用 PackHeightmap
,请确保在着色器中包含包含指令 #include "UnityCG.cginc"
。
其他资源:DirtyTextureRegion、SyncTexture。