RenderTarget(渲染目标)默认只能使用SceneCapture2d(场景捕获2d)相机传输画面,查过资料以后发现可以使用官方的Composure插件来实现把CineCamera(电影相机)的画面传给RenderTarget。然后使用RenderTarget创建的材质将画面放入场景或UI中。
使用新建第三人称模板演示
启用Composure插件并重启
打开Window→Composure Compositing
右键空白处,点击Create New Comp
点击Empty Comp Shot
右键创建的0010_comp,点击Add Layer Element
弹出的窗口选CG Layer
可以看到场景中也有了刚才添加的东西
选中场景中的0010_comp,Composure→Input→Target Camera Actor里为None。选择一个需要的相机。(如果知道SceneCapture2d相机的用法的话这里的相机就相当于一个SceneCapture2d相机。)
这里我在场景中新建一个cine camera并选择。
选中场景中刚才新建的cg层,可以看到浏览里已经有了画面。CameraSource显示的是继承。自动继承了父级0010_comp选中的摄像机。画面有点模糊的话,自行调整一下cine camera的焦距。
到这一步输入已经完成,接下来将画面输出到RenderTarget。
点击场景中的0010_comp,会发现画面还是空的
展开Composure→Transform/Compositing Passes,添加Transform Passes项
添加后默认为Compositing Element Material Pass,如果不是,在下拉菜单里选中此项
展开添加的TransformPass,可以看到需要一个材质。
新建一个材质球并赋给Material项。
双击新建的材质球进入编辑界面,左下角Material→Material Domain选择PostProcess
右键空白处,新建TextureSampleParameter2D纹理采样器
使纹理采样器名字与cg层保持一致
连接至EmissiveColor,应用并保存。
回到场景,可以发现0010_comp已经有画面了
展开Composure→Output,添加Output项。OutputPass选择RenderTargetCompositingOutput
展开OutputPass可以看到需要一个RenderTarget
新建一个RenderTarget并使用RenderTarget创建一个材质
把新建的RenderTarget赋给OutputPass里的RenderTarget项
最后在场景中新建一个plane(平面),把用RenderTarget新建的材质赋给平面,可以看到已经可以实时同步显示CineCamera的画面了。
也可以根据需要把材质域改为UserInterface,放进ui中使用。
用这个方法可以成功的把CineCamera的画面传给RenderTarget。
测试时使用4.26和4.27版本。实际测试中发现色温和滤镜变化后,画面不会同步显示。