设置一个用于像素校正渲染的矩阵。
这会设置 modelview 和投影矩阵,以便使 X、Y 坐标直接
映射到像素。(0,0) 位于当前摄像机视口的
左下角。Z 坐标从 -1 变为 +1。
此函数会重写当前摄像机的参数,因此,绝大多数情况下,您希望
使用 GL.PushMatrix 和 GL.PopMatrix 保存和恢复矩阵。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Material mat; void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadPixelMatrix(); GL.Color(Color.red); GL.Begin(GL.TRIANGLES); GL.Vertex3(0, 0, 0); GL.Vertex3(0, Screen.height / 2, 0); GL.Vertex3(Screen.width / 2, Screen.height / 2, 0); GL.End(); GL.PopMatrix(); } }
设置一个用于像素校正渲染的矩阵。
这会设置 modelview 和投影矩阵,以便使 X、Y 坐标直接
映射到像素。(left,bottom) 位于当前摄像机视口的
左下角;(top,right) 位于当前摄像机视口的右上角。
Z 坐标从 -1 变为 +1。
此函数会重写当前摄像机的参数,因此,绝大多数情况下,您希望
使用 GL.PushMatrix 和 GL.PopMatrix 保存和恢复矩阵。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Material mat; void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadPixelMatrix(10, 20, 10, 20); GL.Color(Color.red); GL.Begin(GL.TRIANGLES); GL.Vertex3(10, 10, 0); GL.Vertex3(10, 20, 0); GL.Vertex3(20, 20, 0); GL.End(); GL.PopMatrix(); } }