**
UE4中监视器 和镜子的 实现效果 SceneCapture2D的用法v
**
一,目的
为了实现在虚拟场景中 创建一个监视器或者一个反光镜的效果。 此处需要用到一个 sceneCapture2D 组件。
二,测试环境
UE4 4.24
三,思路
1, SceneCaptue2D 组件 可以理解为一个 获取二维画面的摄像机组件(只是个人理解,因为她的样子就是一个摄像机),这个组件有一个选项是 Texture Target , 就是将获取的画面存储的地方。 这个Texture Targrt 是一个Render Target 类型。
2, 如果我们想一面镜子, 我们将镜子的材质设置成动态材质。 通过给这个动态材质(其实就是镜子的材质) 中的 base color 赋值成 上面的 Texture Target 就可以实现这个效果。注意: Base Color 对应的 应该一个参数化的变量, 这样在 动态材质赋值的时候, 就可以直接进行赋值了。
四,步骤
1, 镜子的自身材质

注意:
(1)我们在这个材质中设置了三个变量。 前面两个 有可能是宽高比, 个人没看到具体的效果。可以测试。 这个材质可以创建实例, 实例中直接设置 宽高, 例子中 一个长宽2:1 的 镜子, 对应的材质实例 分别是 1.4 和0.7 ,玄机等待测试。 注意 水平方向 取反, 因为镜子获取的是镜像。
2, emissive 例子中也设置了参数, 其实可以直接设置成固定的。
2,给sceneCapture2D 创建对应的 Target
(1)这是一个 renderTarget 类型
以为我的镜子是竖直方向的。 所以 宽高比例 我按照上面设置。
上面是蓝图中创建的 SceneCapture2D 组件。 将Target 设置成我们创建好的。
红色现况圈出来的,是为了优化性能。 如果 每一帧都捕捉,耗能会比较大。 所以,我们只勾选了 在运动的时候捕捉就行。
3, 蓝图中 创建动态材质实例的过程——接通
(1)动态材质实例
模型有可能会有多个材质,所以要注意Material 下面的 Index 的序号。
在初始化中,创建了动态材质实例后,就可以进行赋值了。
(2)参数化赋值
将 SceneCapture2d 对应的 render target 给动态材质赋值, 完成了镜子的材质就是 摄像机获取的材质的效果。
最终效果:
以前一位朋友跟我说过这个, 至今我能记起来的就是他说的:这个很简单…, hi my friend ,are you ok?