internal void Render() { UpdateSceneBuffer(); engine.Device.RenderClearBuffer(); engine.Device.SetRenderTexture(renderTexture); renderTexture.Clear(1, 1, 1, 1); sceneBuffer.UpdateBuffer(ref sceneData); sceneBuffer.Activate(Constants.SCENE_BUFFER_INDEX); pixelShaderSceneBuffer.UpdateBuffer(ref scenePixelData); pixelShaderSceneBuffer.Activate(Constants.PIXEL_SCENE_BUFFER_INDEX); objectBuffer.Activate(Constants.OBJECT_BUFFER_INDEX); defaultSampler.Activate(Constants.DEFAULT_SAMPLER); RenderAll(null); engine.Device.RenderClearBuffer(); engine.Device.SetRenderTexture(outlineTexture); outlineTexture.Clear(0, 0, 0, 0); RenderAll(unlitMaterial); engine.Device.SetRenderTexture(null); blitMaterial.Shader.Activate(); SetZWrite(false); renderTexture.Activate(0); outlineTexture.Activate(1); engine.meshManager.GetMeshByHandle(planeMesh.Handle).IndicesBuffer.Activate(0); engine.meshManager.GetMeshByHandle(planeMesh.Handle).VerticesBuffer.Activate(0); engine.Device.DrawIndexed(engine.meshManager.GetMeshByHandle(planeMesh.Handle).IndexCount, 0, 0); engine.Device.RenderBlitBuffer(); }