mode | 要绘制的图元:可以为 TRIANGLES、TRIANGLE_STRIP、QUADS 或 LINES。 |
开始绘制 3D 图元。
在 OpenGL 中,这与 glBegin
相匹配;在其他图形 API 中,对应的
功能是模拟实现的。在 GL.Begin 与 GL.End 之间,调用
GL.Vertex、GL.Color、GL.TexCoord 和其他即时模式绘制
函数是有效的。
在亲自绘制图元时,您应仔细进行剔除。根据运行游戏
所在的图形 API,剔除规则可能不同。在大多数情况下,
最安全的方式是在着色器中使用 Cull Off
命令。
另请参阅:GL.End。
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.LoadOrtho();
GL.Begin(GL.TRIANGLES);
GL.Color(new Color(1, 1, 1, 1));
GL.Vertex3(0.5F, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.375F, 0.5F, 0);
GL.End();
GL.Begin(GL.QUADS);
GL.Color(new Color(0.5F, 0.5F, 0.5F, 1));
GL.Vertex3(0.5F, 0.5F, 0);
GL.Vertex3(0.5F, 0.75F, 0);
GL.Vertex3(0.75F, 0.75F, 0);
GL.Vertex3(0.75F, 0.5F, 0);
GL.End();
GL.Begin(GL.LINES);
GL.Color(new Color(0, 0, 0, 1));
GL.Vertex3(0, 0, 0);
GL.Vertex3(0.75F, 0.75F, 0);
GL.End();
GL.PopMatrix();
}
}