版本:Unity 6 (6000.0)
语言英语
  • C#

GL.LoadOrtho

建议进行更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户建议的每处更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档质量。

关闭

取消

声明

public static void LoadOrtho();

说明

用于设置正交投影的辅助函数。

在投影矩阵中加载一个正交投影,并在模型矩阵和视图矩阵中加载一个单位矩阵。

最终的投影执行下列映射
1. x = 0..1 到 x = -1..1(左..右)
2. y = 0..1 到 y = -1..1(底..顶)
3. z = 1..-100 到 z = -1..1(近..远)

这相当于执行以下操作

using UnityEngine;

public class Example : MonoBehaviour { void OnPostRender() { // ...

GL.LoadOrtho();

// is equivalent to:

GL.LoadIdentity(); var proj = Matrix4x4.Ortho(0, 1, 0, 1, -1, 100); GL.LoadProjectionMatrix(proj);

// ... } }

更改模型、视图或投影矩阵会覆盖当前渲染矩阵。使用 GL.PushMatrixGL.PopMatrix 保存和还原这些矩阵是良好的习惯。

using UnityEngine;

public class Example : MonoBehaviour { // Draws a triangle under an already drawn triangle Material mat;

void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadOrtho(); GL.Color(Color.red); GL.Begin(GL.TRIANGLES); GL.Vertex3(0.25f, 0.1351f, 0); GL.Vertex3(0.25f, 0.3f, 0); GL.Vertex3(0.5f, 0.3f, 0); GL.End();

GL.Color(Color.yellow); GL.Begin(GL.TRIANGLES); GL.Vertex3(0.5f, 0.25f, -1); GL.Vertex3(0.5f, 0.1351f, -1); GL.Vertex3(0.1f, 0.25f, -1); GL.End();

GL.PopMatrix(); } }