mode | @param mode Примитивы для визуализации: могут быть TRIANGLES, TRIANGLE_STRIP, QUADS или LINES. |
Начать визуализацию 3D примитивов.
В OpenGL это соответствует glBegin
; в других графических API эта
функциональность эмулируется. Между вызовами GL.Begin и GL.End можно
вызывать GL.Vertex, GL.Color, GL.TexCoord и другие функции визуализации немедленного
режима.
Вы должны учитывать отсечение, когда сами визуализируете примитивы. Правила отсечения
могут отличаться, в зависимости от графического API, с которым запущена игра. В большинстве случаев
самый безопасный способ - это использовать команду Cull Off
в шейдере.
See Also: GL.End.
// Draws a Triangle, a Quad and a line // with different colors
var mat : Material; function OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadOrtho(); GL.Begin(GL.TRIANGLES); // Triangle GL.Color(Color(1,1,1,1)); GL.Vertex3(0.50,0.25,0); GL.Vertex3(0.25,0.25,0); GL.Vertex3(0.375,0.5,0); GL.End(); GL.Begin(GL.QUADS); // Quad GL.Color(Color(0.5,0.5,0.5,1)); GL.Vertex3(0.5,0.5,0); GL.Vertex3(0.5,0.75,0); GL.Vertex3(0.75,0.75,0); GL.Vertex3(0.75,0.5,0); GL.End(); GL.Begin(GL.LINES); // Line GL.Color(Color(0,0,0,1)); GL.Vertex3(0,0,0); GL.Vertex3(0.75,0.75,0); GL.End(); 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.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(); } }