int lastLayer = actor.layer;
actor.ChangeLayer(LayersDefine.DynamicRtRender);
renderCamera.CopyFrom(mainCamera);
renderCamera.cullingMask = 1 << LayersDefine.DynamicRtRender;
renderCamera.backgroundColor = new Color(0, 0, 0, 0);
renderCamera.clearFlags = CameraClearFlags.SolidColor;
RenderTexture currRt = RenderTexture.GetTemporary (mainCamera.pixelWidth, mainCamera.pixelHeight);
renderCamera.targetTexture = currRt;
renderCamera.Render();
RenderTexture lastRt = RenderTexture.active;
RenderTexture.active = currRt;
Texture2D tex2D = new Texture2D(mainCamera.pixelWidth, mainCamera.pixelHeight);
tex2D.ReadPixels(new Rect(0, 0, mainCamera.pixelWidth, mainCamera.pixelHeight), 0, 0);
tex2D.Apply();
RenderTexture.active = lastRt;
RenderTexture.ReleaseTemporary (currRt);
image.sprite = Sprite.Create(tex2D, new Rect(0, 0, tex2D.width, tex2D.height), new Vector2(0.5f, 0.5f), 100.0f);
发现渲染次序错误
RenderTexture.GetTemporary (mainCamera.pixelWidth, mainCamera.pixelHeight, 24); // 解决问题
RenderTexture.GetTemporary
public static RenderTexture GetTemporary(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, int antiAliasing = 1, RenderTextureMemoryless memorylessMode = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, bool useDynamicScale = false);
Parameters
| width | Width in pixels. |
| height | Height in pixels. |
| depthBuffer | Depth buffer bits (0, 16 or 24). Note that only 24 bit depth has stencil buffer. |
| format | Render texture format. |
| readWrite | Color space conversion mode. |
| antiAliasing | Number of antialiasing samples to store in the texture. Valid values are 1, 2, 4, and 8. Throws an exception if any other value is passed. |
| memorylessMode | Render texture memoryless mode. |
| desc | Use this RenderTextureDesc for the settings when creating the temporary RenderTexture. |
--转载请注明: http://blog.coolcoding.cn/?p=2061

本文详细介绍了在Unity中使用实时渲染技术,通过调整渲染层级、相机设置和RenderTexture属性来捕捉动态渲染结果的过程。文章重点讲解了如何解决渲染次序错误的问题,以及如何创建并利用临时RenderTexture进行高质量的纹理捕捉。
16万+

被折叠的 条评论
为什么被折叠?



