GL
- Begin
- ClearWithSkybox
- Clear
- Color
- End
- InvalidateState
- LINES
- LoadIdentity
- LoadOrtho
- LoadPixelMatrix
- LoadProjectionMatrix
- modelview
- MultiTexCoord2
- MultiTexCoord3
- MultiTexCoord
- MultMatrix
- PopMatrix
- PushMatrix
- QUADS
- SetRevertBackfacing
- TexCoord2
- TexCoord3
- TexCoord
- TRIANGLE_STRIP
- TRIANGLES
- Vertex3
- Vertex
- Viewport
GL.Begin 开始
static function Begin (mode : int) : void
Parameters参数
- modePrimitives to draw: can be TRIANGLES, TRIANGLE_STRIP, QUADS or LINES.
原始物体可以是三角形,三角形带(前三个点组成一个简单三角形,第四个点和前面两个点组成三角形,依次类推),四边形,线。
Description描述
Begin drawing 3D primitives.
开始绘制3d原始物体。
In OpenGL this matches glBegin; 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.
这和OpenGL中的glBegin函数一样。其它的图形API中也有类似的函数。在GL.Begin 和 GL.End之间放置GL操作函数。
You 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 Cull Off command in the shader.
在用到裁剪函数时特别注意,这依赖于特定的图形API,不同的API裁剪方式不同。在多数情况下最好是用shader 中Cull Off命令。
参见:GL.End
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public Material mat;
void OnPostRender() {
if (!typeof(mat)) {
Debug.LogError("Please Assign a material on the inspector");
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.TRIANGLES);
GL.Color(new Color(1, 1, 1, 1));
GL.Vertex3(0.5F, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.375F, 0.5F, 0);
GL.End();
GL.Begin(GL.QUADS);
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);
GL.Color(new Color(0, 0, 0, 1));
GL.Vertex3(0, 0, 0);
GL.Vertex3(0.75F, 0.75F, 0);
GL.End();
GL.PopMatrix();
}
}
// Draws 2 triangles in the left side of the screen
// that look like a square
//在屏幕的左边绘制2个三角形,看起来像一个方形
var mat : Material;
function OnPostRender() {
if (!mat) {
Debug.LogError("Please Assign a material on the inspector");
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.TRIANGLE_STRIP);
GL.Color(Color(0,0,0,1));
GL.Vertex3(0.25,0.5,0);
GL.Vertex3(0,0.5,0);
GL.Vertex3(0.25,0.25,0);
GL.Vertex3(0,0.25,0);
GL.End();
GL.PopMatrix();
}
最后修改:2011年3月20日 Sunday 20:37