OpenGL图像库主要用来绘制常见的2d和3d几何图形。下面我们来看下在unity3d使用GL图像库,可在屏幕中绘制2d几何图形,并且该几何图形将永远显示在屏幕当中,不会因为摄像机的移动而改变。
值得注意的是,绘制2d图像时,需要使用GL.LoadOrtho()方法来将图形映射在平面中;如果绘制的是3d图形,就无须使用此方法。
使用GL图像库时,需要将所有绘制相关的内容写在OnPostRender()方法中。有关GL图像库的脚本需要绑定在摄像机中,添加 Material即可。
值得注意的是,绘制2d图像时,需要使用GL.LoadOrtho()方法来将图形映射在平面中;如果绘制的是3d图形,就无须使用此方法。
使用GL图像库时,需要将所有绘制相关的内容写在OnPostRender()方法中。有关GL图像库的脚本需要绑定在摄像机中,添加 Material即可。
GL图像库的平面坐标系:原点在左下角,x轴与y轴的最大值为1。
一、画直线
using
UnityEngine;
using
System.Collections;
public
class
DrawLine : MonoBehaviour {
public
Material material;
void
OnPostRender()
{
material.SetPass(0);
//设置该材质通道,0为默认值
GL.LoadOrtho();
//设置绘制2d图像
GL.Begin(GL.LINES);
//绘制类型为线段
Draw(0, 0, 200, 100);
Draw(0, 50, 200, 150);
Draw(0, 100, 200, 200);
GL.End();
}
//将屏幕中某个点的像素坐标进行转换
void
Draw(
float
x1,
float
y1,
float
x2,
float
y2)
{
GL.Vertex(
new
Vector3(x1 / Screen.width, y1 / Screen.height, 0));
GL.Vertex(
new