Render Type(渲染类型) Base(基础相机):渲染到特定渲染目标的通用相机,场景中必须至少有一个。 Overlay(叠加相机):将其视图渲染在另一个摄像机的输出之上,必须与基础相机配合使用。 多相机使用: 功能测试: Camera1,RenderType设置为Base,渲染Cube及相机视野范围内的所有物体; Camera2,RenderType设置为Overlay,渲染Spher...
叠加摄像机(Overlay Camera)渲染在另一个摄像机的输出之上。基础摄像机的输出可以和一个或多个叠加摄像机的输出结合起来。这种技术称为摄像机堆叠 (Camera stacking)。使用叠加摄像机可以做 分层渲染、渲染层级调整、内景外景融合等等比较实用的功能。 使用摄像机的Render Type属性可使摄像机成为基础摄像机或叠加摄像机。
Overlay) { Debug.LogWarning(string.Format("Stack can only contain Overlay cameras. {0} will skip rendering.", currCamera.name)); continue; } var currCameraRendererType = data?.scriptableRenderer.GetType(); if (currCameraRendererType != baseCameraRendererType) { var renderer2DType = typeof(...
如注释所说:RenderCameraStack主要对栈的每一个相机进行了RenderSingleCamera的方法调用 那么在此之前,在这里也进行了对CameraStack的用户操作一系列的警告处理等,如没有正确设置OverlayCamera的类型将会跳过渲染等等 然后是针对BaseCamera的三步处理 最后才是遍历栈中其他相机 同样,只需要重点关注BeginCameraRendering() Re...
要制作覆盖层摄像机,需在该空游戏对象上添加Camera组件,将Render Type选为Overlay,选择正确的剔除遮罩(Culling Mask),这里是Cockpit 这时看回Player的Camera组件,我们已经能在Stack中添加Cockpit覆盖层。在Game视图中即刻看到结果,多摄像机栈渲染还能将,带有不同 后期处理效果的摄像机堆叠起来。
renderTex = lerp(renderTex, blendedImage, _Opacity); return renderTex; } 最后,你能够看到相似以下的效果: 叠加(Overlay)混合模式Opacity = 1.0 : 解释 叠加混合效果,实际上就是正片叠底(Multiply)和滤镜(Screen)两种混合模式的结合。 它通过推断每一个通道的颜色值,来决定使用哪种混合模式。
"Overlay":GUI、镜头光晕都使用这个; 用户也可以定义任意自己的RenderType这个标签所取的值。 应注意,Camera.RenderWithShader或Camera.SetReplacementShader不要求标签只能是RenderType,RenderType只是Unity内部用于Replace的一个标签而已,你也可以自定义自己全新的标签用于Replace。
现在,我们可以在CameraRenderer.Render的开头获取相机的CustomRenderPipelineCamera组件。为了支持没有自定义设置的相机,我们将检查组件是否存在。如果是,使用其设置,否则将使用一个默认设置对象,该对象将创建一次并将引用存储在静态字段中。然后,当我们设置栈时,我们将采用最终的混合模式。
在场景中创建一个Quad,命名为OverlayTransform,调整该Quad的位置,使其处于Camera可见位置,待确定显示位置后,在Inspector检视面板上取消勾选Mesh Render、Mesh Collider组件,然后添加PXR_OverLay脚本。 图8.6 取消Mesh Renderer等组件 Tips: “透传层”功能将会使用该Quad的Transform信息:位置、旋转、缩放 ...
如何在场景中使用多个摄像机,首先我们创建一个base摄像机。base摄像机就是把Camera组件上的Render Type 设置为 Base。如图1.2-3所示: (图1.2-3) URP Base摄像机配置 (图1.2-4) 创建Overlay摄像机 (图1.2-5) 将创建的Overlay摄像机放入Base摄像机的Stack中 ...