Unity3D脚本11:底层图像库类GL
来源:第三维度
GL 类
底层图像库。使用这个类操作激活的变换矩阵,发送与OpengGL立即模式相同的渲染命令并做一些其他的底层图像操作。注意,在所有情况下使用Graphics.DrawMesh比任何使用立即模式绘制更有效。这个类只限于Unity Pro.
类变量
◆ static var LINES: int // 描述:用于Begin的模式:绘制直线。参见:GL . Begin, GL . End.
◆ static var modelview:Matrix4x4 // 描述:当前模型视矩阵。
给这个变量赋值等同于OpenGL中的glLoadMatrix(mat);在其他图形API中对应的功能被模拟。改变模型视矩阵覆盖当前相机的视参数,因此最常用的是使用GL.PushMatrix和GL.PopMatrix来保存和恢复矩阵。读取这个变量返回当前模型视矩阵。
◆ static var QUADS:int // 描述:用于Begin的模式:绘制四边形, 参见:GL.Begin,GL.End.
◆ static var TRIANGLE_STRIP:int // 描述:用于Begin的模式:绘制三角面 参见:GL.Begin,GL.End.
◆ static var TRIANGLES:int // 描述:用于Begin的模式:绘制三角形参见:GL.Begin,GL.End.
类方法
◆ static function Begin(mode:int) : void // 描述:开始绘制3D几何体
参数 mode绘制的几何体:可以是TRIANGLES,TRIANGLE_STRIP,QUADS或 LINES.
这个对应OpenGL中的glBegin,在其他图形API中相同的功能被模拟 ,在GL.Begin 和 GL.End之间,可以调用GL .Veriex,GL.Color,GL.TexCoord和其他立即模式绘制函数。 在绘制你自己的几何体时,你应该注意它们的裁剪。裁剪规则可能会因为不同的图形 API而不同。在大多数情况下在shader中使用Cull Off命令是安全的。参见:GL.End.
◆ static function Clear(clearDepth:bool,clearColor:bool,backgroudColor):void // 描述:清除当前渲染缓存
参数
clearDepth 应该清除深度缓存?
clearColor 应该清除颜色缓存?
backgroudColor 颜色被清理为什么,只有当clearColor为true时使用.
这将清除屏幕或激活的RenderTexture.
◆ static function Color(c : Color) : void // 描述:设置当前顶点颜色
这个对应OpenGL中的glColor4f(c. r,c.g,c.b,c.a):在其他图形中API中相同的功能被模拟,为了使逐顶点颜色可以在不同的硬件上工作,你需要使用绑定了颜色通道的shader。参考BindChannels文档.这个函数只在GL.Begin和GL.End函数之间调用.
◆ static function End( ) : void // 描述:结束绘制3D几何体
这个对应OpenGL中的glEnd;在其他图形API中相同的功能被模拟.参见:GL.Begin.
◆ static function LoadIdentity( ) : void /// 描述:加载单位矩阵到当前模型视矩阵。
这个函数覆盖当前相机的视参数,因此最常用的是使用GL.PushMatrix和GL.PopMatrix 来保存和恢复矩阵。
◆ static function LoadOrtho( ) : void // 描述:辅助函数用来设置一个正交透视变换调用LoadOrtho知道,视锥从 (0,0,-1) 变化到(1,1,100).
◆ static function LoadPixelMatrix( ) : void // 描述:设置一个用于像素修正渲染的矩阵。
这个设置模型视和投影矩阵,因此X,Y坐标直接映射到像素。(0,0)位于当前相机视口的左下角。Z坐标从-1到+100,这个函数覆盖当前相机的参数,因此最常用的是使用GL.PushMatrix和GL.PopMatrix来保存和恢复矩阵。
◆ static function LoadPixelMatrix(left:float,right:float,bottom:float,top:float):void // 描述:设置一个矩阵的像素正确渲染。
这样设置投影矩阵点以便X、Y坐标图直接像素化。(0,0)在底部左侧当前摄像机的视角。Z坐标是从-1到+100。这个函数覆盖了相机的参数,所以通常你要保存和恢复矩阵就使用GLPushMatrix和GL.PopMatrix。
◆ static function LoadProjectionMatrix (mat : Matrix4x4) : void // 描述:加载到当前任意矩阵投影矩阵。
这个函数重写当前摄像机的投影参数,所以通常你要保存和恢复投影矩阵就使用GLPushMatrix和GL.PopMatrix。
◆ static function MultiTexCoord (unit : int, v : Vector3) : void // 描述:设置当前纹理坐标(v.x,v.y,v.z)实际的纹理单元。
在OpenGL中glMultiTexCoord为特定的纹理单元如果多纹理是可用的。在其他图形的API中相同的功能进行了仿真。这个函数只能被称为介于GL.Begin和GL.End功能之间。
◆ static function MultiTexCoord2 (unit : int, x : float, y : float) : void // 描述:设置当前纹理坐标(x,y)的为实际纹理单元。
在OpenGL中glMultiTexCoord为特定的纹理单元如果多纹理是可用的。在其他图形的API中相同的功能进行了仿真。这个函数只能被称为介于GL.Begin和GL.End功能之间。
◆ static function MultiTexCoord3(unit : int, x : float, y : float, z : float) :void // 描述:设置当前纹理坐标(x,y,z)的为实际纹理单元。
在OpenGL中glMultiTexCoord为特定的纹理单元如果多纹理是可用的。在其他图形的API中相同的功能进行了仿真。这个函数只能被称为介于GL.Begin和GL.End功能之间。
◆ static function MultMatrix (mat : Matrix4x4) : void // 描述:复制当前的点矩阵和其中的一个说明。
相当于glMultMatrix(垫在)OpenGL; 在其他图形API的相应功能是相仿的。换点矩阵覆盖当前相机视图的参数,所以通常你要保存和恢复投影矩阵就使用GLPushMatrix和GL.PopMatrix。
◆ static function PopMatrix () : void // 描述:恢复了投影和点矩阵的矩阵堆栈的顶部。
换投影矩阵点覆盖当前相机视图的参数。这些矩阵可以用GLPushMatrix和GL.PopMatrix来保存和恢复。参见:PushMatrix函数。
◆ static function PushMatrix () : void // 描述:节约双方投影矩阵对点和矩阵堆栈。
换投影矩阵点覆盖当前相机视图的参数。这些矩阵可以用GLPushMatrix和 GL.PopMatrix来保存和恢复。 参见:PopMatrix函数
◆ static function SetRevertBackfacing(revertBackFaces : bool) : void // 描述:选择是否翻转隐面剔除,是(真)或者不是(假)
◆ static function TextCoord (v : Vector3) : void // 描述:为所有纹理单元设置当前纹理坐标(v.x, v.y, v.z)
这个对应于OpengGL中用于所有纹理单元的glMultiTexCoord或者多纹理不可用时的glTexCoord,在其他的图形API中仿真了相同的功能。 这个函数只在GL.Begin和GL.End函数之间调用。
◆ static function TexCoord2(x : float, y : float) : void // 描述:为所有纹理单元设置当前纹理坐标(x, y)
这个对应于OpengGL中用于所有纹理单元的glMultiTexCoord或者多纹理不可用时的glTexCoord,在其他的图形API中仿真了相同的功能。 这个函数只在GL.Begin和GL.End函数之间调用。
◆ static function TexCoord3(x : float, y : float, z : float) : void // 描述:为所有纹理单元设置当前纹理坐标(x, y, z)
这个对应于OpengGL中用于所有纹理单元的glMultiTexCoord或者多纹理不可用时的glTexCoord,在其他的图形API中仿真了相同的功能。 这个函数只在GL.Begin和GL.End函数之间调用。
◆ static function Vertex(v : Vector3) : void // 描述:提交顶点
这个对应OpenGL中的glVertex3f(v.x, v.y.v.z); 在其他图形API中相同的功能被模拟。 这个函数只在GL.Begin和GL.End函数之间调用。
◆ static function Vertex3(x : float, y : float, z : float) : void // 描述:提交顶点
这个对应OpenGL中的glVertex3f(x, y, z); 在其他图形API中相同的功能被模拟。 这个函数只在GL.Begin和GL.End函数之间调用。
◆ static function Viewport(pixelRect : Rect) : void // 描述:设置渲染视口
所有的渲染都被限制在pixelRect之内。