在 Unity Engine 上,我正在尝试将图像效果(来自资产存储)从相机事件OnRenderImage(RenderTexture source, RenderTexture destination)
转换为相机命令缓冲区(UnityEngine.Rendering.CommandBuffer
)(以控制所有效果堆栈的渲染顺序)。
图像效果渲染 C# 方法相当复杂,我宁愿不修改它(从头开始重做效果可能会更快)。
因此,理想的解决方案是通过命令缓冲区触发事件调用效果渲染 C# 方法。
CommandBuffer.IssuePluginCustomBlit
看起来像一个解决方案,但我找不到任何如何设置它的示例。
它引用了一个回调方法、一个源渲染纹理和一个目标渲染纹理。有方法调用的例子(尤其是在 VRWorks 插件中):
buffer.IssuePluginCustomBlit(PluginExtGetIssueEventCallback(), (UInt32)command, source, dest, commandParam, commandFlags);
[DllImport("GfxPluginVRWorks32", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr PluginExtGetIssueEventCallback();
尽管如此,我不知道它PluginExtGetIssueEventCallback
是如何构建的,以及它是如何实现源和目标渲染纹理的。
如果有人可以分享如何使用CommandBuffer.IssuePluginCustomBlit
和创建回调方法的示例,将不胜感激。
谢谢!