前言
-
BuiltinRenderTextureType是一个枚举类,主要是指向Unity摄像机渲染期间产生的内置临时渲染纹理.
-
如果说使用CommandBuffer可以调整和修改渲染流程,那么这个枚举类提供了让我们读写渲染流程中内置数据的能力.
-
枚举类中的一个枚举CameraTarget, 则主要用于读写当前摄像机的目标缓存的渲染纹理.
CameraTarget的使用
-
这个渲染纹理天然可以被写,并且没有啥限制.怎么写都可以.
-
要想读取渲染纹理的东西,那么就需要以下任一条件才可以(其实这些条件都是为摄像机创建一个自定义的FBO,而不是让摄像机执行默认的FBO):
-
Camera的target不为空的情况。
-
Camera.forceIntoRenderTexture=true,
-
挂载在Camera上的脚本中重载了OnRenderImage方法.
-
QulitySetting的Anti Aliasing不能Disabled,并且Camera的MSAA也要被开启.
-
-
如果想在同一个着色遍中,对这个渲染纹理即可读又要可写,就需要开启MSAA才可以.
-
注意:
-
如果CommandBuffer的执行事件是AfterImageEffect,那么这个渲染纹理的数据就是不可预知的.
-
当然如果你的CommandBuffer没有绑定在摄像机上,调用这个值也是错误的.
-
其他
-
在类BuiltinRenderTextureType中还有一些枚举,都有特定意义.可以多看看多研究一下.
-


本文介绍了Unity中的CommandBuffer如何利用BuiltinRenderTextureType.CameraTarget来读写摄像机目标缓存的渲染纹理。文章强调了在特定条件下(如Camera.target不为空、forceIntoRenderTexture设为true、重载OnRenderImage方法或开启MSAA)才能读取渲染纹理,并警告了在特定执行事件下数据可能不可预知。同时,鼓励读者进一步探索该枚举类的其他用途。
最低0.47元/天 解锁文章
4187

被折叠的 条评论
为什么被折叠?



