Version: 6000.3
语言: 中文
为自定义渲染纹理编写着色器
在影片纹理中播放视频

控制自定义渲染纹理更新时间

更新区域

当 Unity 更新自定义时渲染纹理(Render Texture一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
请参阅术语表
,默认情况下,它使用材质一次性更新整个纹理。自定义渲染纹理(Custom Render Texture) 允许你定义部分更新区域。您可以使用它来定义任意数量的区域以及处理区域的顺序。

您可以将更新区域用于各种目的。例如,你可以有多个小区域将水滴溅到纹理上,然后执行完整通道来模拟涟漪。当您知道不需要更新完整纹理时,这也可以用作优化。

更新区域具有自己的一组属性。更新区域空间在显示屏中可见。坐标取决于纹理的 维度 :2D 表示 2D 和立方体纹理,3D 表示 3D 纹理。

从脚本控制自定义渲染纹理

你可以在脚本API中访问大多数自定义渲染纹理功能。您还可以使用脚本更改材质参数、更新频率、更新区域、请求更新等。

当 Unity 更新或初始化自定义渲染纹理时,它会使用当前属性来渲染下一帧。这保证了使用此纹理的任何材质都具有最新的结果。例如,在以下脚本中,Unity 使用第二个 Update Zone 数组执行两次更新:

customRenderTexture.updateZones = updateZones1;

customRenderTexture.Update();

customRenderTexture.updateZones = updateZones2;

customRenderTexture.Update();

注意:Unity 不会在调用 Custom Render Texture 的同时更新或初始化 Custom Render TextureUpdate()Initialize().这是因为 Unity 总是在下一帧开始时更新和初始化自定义渲染纹理。

双缓冲自定义纹理

你可以对自定义渲染纹理进行双缓冲。为此,请在 Custom Render Textures 组件中启用 Double Buffered,或使用CustomRenderTexture.doubleBuffered.

双缓冲意味着在一个自定义渲染纹理中,Unity 可以在每次更新后交换两个纹理。这允许你在 自定义渲染纹理(Custom Render Texture) 中写入新结果时读取上次更新的结果。

如果着色器在 GPU 上运行的程序。更多信息
请参阅术语表
需要使用 Unity 已经在纹理中写入的内容,但不能将这些值与经典混合模式混合。如果着色器必须对不同的采样,这也是必需的像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
从前面的结果。

性能警告:双缓冲目前涉及每次交换时的纹理副本,这可能会导致性能下降,具体取决于执行频率和纹理的分辨率。

为自定义渲染纹理编写着色器
在影片纹理中播放视频