渲染到RenderTexture
在通用渲染管线(URP)中,相机可以渲染到屏幕或RenderTexture(渲染纹理)。渲染到屏幕是默认设置,也是最常见的用例,但是渲染到RenderTexture可让你创建如CCTV相机监视器的效果。
如果你有要渲染为RenderTexture的相机,则必须有第二个相机,然后再将该RenderTexture渲染到屏幕上。在URP中,所有渲染到RenderTexture的相机都在所有渲染到屏幕的相机之前执行其渲染循环。这样可以确保RenderTexture已准备好渲染到屏幕上。
渲染到RenderTexture,然后将该RenderTexture渲染到屏幕
使用Assets 》 Create 》 Render Texture在项目中创建Render Texture资产。
在场景中创建一个Quad。
在你的项目中创建一个材质,然后选择它。在Inspector中,将RenderTexture拖动到材质的BaseMap字段。
在Scene视图中,将材质拖到Quad上。
在场景中创建相机,其渲染模式默认为Base,使其成为Base Camera。
选择基础相机。在Inspector中,滚动到Output部分,然后将Render Texture拖到Output Texture字段。
在场景中创建另一个相机。它的渲染模式默认为Base,使其成为Base Camera,将Quad放置在新Base Camera的视图内。
第一台Camera将其视图渲染到RenderTexture。第二台相机将包括RenderTexture的场景渲染到屏幕上。
你可以通过设置cameraOutput相机的UniversalAdditionalCameraData组件的属性,在脚本中设置相机的Output,如下所示:
myUniversalAdditionalCameraData.cameraOutput = CameraOutput.Texture;
myCamera.targetTexture = myRenderTexture;
渲染到RenderTexture
在通用渲染管线(URP)中,相机可以渲染到屏幕或RenderTexture(渲染纹理)。渲染到屏幕是默认设置,也是最常见的用例,但是渲染到RenderTexture可让你创建如CCTV相机监视器的效果。
如果你有要渲染为RenderTexture的相机,则必须有第二个相机,然后再将该RenderTexture渲染到屏幕上。在URP中,所有渲染到RenderTexture的相机都在所有渲染到屏幕的相机之前执行其渲染循环。这样可以确保RenderTexture已准备好渲染到屏幕上。
渲染到RenderTexture,然后将该RenderTexture渲染到屏幕
使用Assets 》 Create 》 Render Texture在项目中创建Render Texture资产。
在场景中创建一个Quad。
在你的项目中创建一个材质,然后选择它。在Inspector中,将RenderTexture拖动到材质的BaseMap字段。
在Scene视图中,将材质拖到Quad上。
在场景中创建相机,其渲染模式默认为Base,使其成为Base Camera。
选择基础相机。在Inspector中,滚动到Output部分,然后将Render Texture拖到Output Texture字段。
在场景中创建另一个相机。它的渲染模式默认为Base,使其成为Base Camera,将Quad放置在新Base Camera的视图内。
第一台Camera将其视图渲染到RenderTexture。第二台相机将包括RenderTexture的场景渲染到屏幕上。
你可以通过设置cameraOutput相机的UniversalAdditionalCameraData组件的属性,在脚本中设置相机的Output,如下所示:
myUniversalAdditionalCameraData.cameraOutput = CameraOutput.Texture;
myCamera.targetTexture = myRenderTexture;
举报