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 recommends you create the source Render Texture to copy in the format that Terrain.heightmapRenderTextureFormat specifies, and call the HLSL function PackHeightmap
before you write to the source render texture. To use PackHeightmap
, make sure you have the include directive #include "UnityCG.cginc"
in your shader.
另请参阅:DirtyTextureRegion、SyncTexture。