Begin(int)
Begin drawing 3D primitives.
Read time 2 minutesLast updated 5 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
public static void Begin(int mode)
Parameters
Remarks
In OpenGL this matches ; on other graphics APIs the same functionality is emulated. Between GL.Begin and GL.End it is valid to call GL.Vertex, GL.Color, GL.TexCoord and other immediate mode drawing functions.
glBeginYou should be careful about culling when drawing primitives yourself. The culling rules may be different depending on which graphics API the game is running. In most cases the safest way is to use command in the shader.
Cull OffAdditional Resources: GL.End.
Examples
using UnityEngine;public class Example : MonoBehaviour{ // Draws a Triangle, a Quad and a line // with different colors 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); // Triangle GL.Color(new Color(1, 1, 1, 1)); GL.Vertex3(0.50f, 0.25f, 0); GL.Vertex3(0.25f, 0.25f, 0); GL.Vertex3(0.375f, 0.5f, 0); GL.End(); GL.Begin(GL.QUADS); // Quad 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); // Line GL.Color(new Color(0, 0, 0, 1)); GL.Vertex3(0, 0, 0); GL.Vertex3(0.75f, 0.75f, 0); GL.End(); GL.PopMatrix(); }}