private void DestroyRenderTexture() { if (renderTargetListener != null) { renderTexture.RemoveListener(renderTargetListener); renderTargetListener.Dispose(); renderTargetListener = null; } if (viewport != null) { viewport.Dispose(); viewport = null; } if (camera != null) { camera.Dispose(); camera = null; } renderTexture = null; if (texture != null) { texture.Dispose(); texture = null; } }
/////////////// private bool CreateRenderTexture() { Vec2I size = new Vec2I(512, 256); string textureName = TextureManager.Instance.GetUniqueName("RenderToTextureExample"); texture = TextureManager.Instance.Create(textureName, Texture.Type.Type2D, size, 1, 0, PixelFormat.R8G8B8, Texture.Usage.RenderTarget); if (texture == null) { return(false); } renderTexture = texture.GetBuffer().GetRenderTarget(); //you can update render texture manually by means renderTexture.Update() method. For this task set AutoUpdate = false; renderTexture.AutoUpdate = true; //create camera string cameraName = SceneManager.Instance.GetUniqueCameraName("RenderToTextureExample"); camera = SceneManager.Instance.CreateCamera(cameraName); camera.Purpose = Camera.Purposes.Special; camera.AllowMapCompositorManager = false; //add viewport viewport = renderTexture.AddViewport(camera); viewport.BackgroundColor = new ColorValue(0, 0, 0, 1); viewport.ShadowsEnabled = false; viewport.MaterialScheme = ""; //add listener renderTargetListener = new SceneRenderTargetListener(this); renderTexture.AddListener(renderTargetListener); return(true); }
/////////////// private bool CreateRenderTexture() { Vec2I size = new Vec2I(512, 256); string textureName = TextureManager.Instance.GetUniqueName("RenderToTextureExample"); texture = TextureManager.Instance.Create(textureName, Texture.Type.Type2D, size, 1, 0, PixelFormat.R8G8B8, Texture.Usage.RenderTarget); if (texture == null) return false; renderTexture = texture.GetBuffer().GetRenderTarget(); //you can update render texture manually by means renderTexture.Update() method. For this task set AutoUpdate = false; renderTexture.AutoUpdate = true; //create camera string cameraName = SceneManager.Instance.GetUniqueCameraName("RenderToTextureExample"); camera = SceneManager.Instance.CreateCamera(cameraName); camera.Purpose = Camera.Purposes.Special; camera.AllowMapCompositorManager = false; //add viewport viewport = renderTexture.AddViewport(camera); viewport.BackgroundColor = new ColorValue(0, 0, 0, 1); viewport.ShadowsEnabled = false; viewport.MaterialScheme = ""; //add listener renderTargetListener = new SceneRenderTargetListener(this); renderTexture.AddListener(renderTargetListener); return true; }