Объявление
public static void Begin(int mode);Параметры
mode | Примитивы рисовать: можно TRIANGLES, TRIANGLE_STRIP, QUADS or LINES. |
Описание
Начните рисовать 3D-примитивы.
В OpenGL это соответствует glBegin
; в других графических API эмулируется та же функциональность. Между GL.Begin и GL.End допустимо вызывать GL.Vertex, GL.Color, GL.TexCoord и другие функции рисования в непосредственном режиме.
Вы должны быть осторожны с отбраковкой при самостоятельном рисовании примитивов. Правила отбраковки могут различаться в зависимости от того, какой графический API запущен в игре. В большинстве случаев самым безопасным способом является использование команды Cull Off
в шейдере.
Смотрите так же: GL.End.
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();
}
}