GL.LoadPixelMatrix
Declaration
public static void LoadPixelMatrix();Описание
Настройка матрицы для пиксельно-корректного рендеринга.
Загружает ортографическую проекцию в матрицу проекции и загружает идентичность в матрицы модели и вида. Матрица проекции такая, что координаты X и Y отображаются непосредственно на пиксели. Координата (0,0) находится в нижнем левом углу текущего окна камеры. Координаты Z варьируются от 1 в близкой плоскости до -100 в дальней плоскости.
Изменение матрицы модели, вида или проекции переопределяет текущие матрицы отображения. Хорошо сохранять и восстанавливать эти матрицы с помощью GL.PushMatrix и GL.PopMatrix.
using UnityEngine;
public class Example : MonoBehaviour { // Draws a red triangle using pixels as coordinates to paint on. Material mat;
void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadPixelMatrix();
GL.Begin(GL.TRIANGLES); GL.Color(Color.red); GL.Vertex3(0, 0, 0); GL.Vertex3(0, Screen.height / 2, 0); GL.Vertex3(Screen.width / 2, Screen.height / 2, 0); GL.End();
GL.PopMatrix(); } }
Declaration
public static void LoadPixelMatrix(float left, float right, float bottom, float top);Описание
Настройка матрицы для пиксельно-корректного рендеринга.
Загружает ортографическую проекцию в матрицу проекции и единичную матрицу в матрицы модели и вида. Матрица проекции такова, что координаты X и Y отображаются непосредственно в пиксели. Точка (left,bottom) находится в левом нижнем углу текущего окна камеры, а (top,right) — в правом верхнем. Координаты Z идут от 1 в ближней плоскости до -1 в дальней.
Изменение матрицы модели, представления или проекции переопределяет текущие матрицы отображения. Хорошо сохранять и восстанавливать эти матрицы с помощью GL.PushMatrix и GL.PopMatrix.