unity3D技术之GL.MultiTexCoord3 多重纹理坐标3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
static functionMultiTexCoord3(unit:
int,x:
float,y:
float,z:
float) :
void
Description描述
Sets current texture coordinate (x,y,z) to the actual texture unit.
设置纹理(x,y,z)坐标对于当前的纹理单元(多重纹理)。
【狗刨学习网】
In OpenGL this matches glMultiTexCoord for the given texture unit if multi-texturing isavailable. On other graphics APIs the same functionality is emulated.
这个函数和OpenGL中的glMultiTexCoord(多重纹理)一样。
其它的图形API也有对应的功能。
1. You access a cubemap (which you access with a vector coordinate, hence x,y & z).
2. You do "projective texturing", where the X & Y coordinates are divided by Z to get thefinal coordinate. This would be mostly useful for water reflections and similar things.Z坐标用在以下情况:
1.六面体纹理。
2.投影纹理。
Z有X,Y坐标得到。
例如水面反射效果。
This function can only be called between GL.Begin and GL.End functions.
这个函数只能在GL.Begin和GL.End之间使用。
C#
JavaScript
// Changes between two textures assigned to a material
// When pressed space
//当按下空格键,在两个纹理之间改变指定到一个材质
var mat :
Material;
private var flagTex :
boolean = true;
function Update() {
if (Input.GetKeyDown(KeyCode.Space)) {
if(flagTex) {
flagTex = false;
} else {}}}function OnPostRender() {
if (!mat) {
Debug.LogError("Please Assign a material on theflagTex = true; inspector");}GL.PushMatrix();
mat.SetPass
(1);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
if (flagTex) {
GL.MultiTexCoord3(0,0,0,0); // main texture主纹理return;
} else {}GL.Vertex3(
0.25,
0.25,0);
if (flagTex) {
GL.MultiTexCoord3(0,0,1,0);
GL.MultiTexCoord3(1,0,0,0); // second texture第二纹理} else { GL.MultiTexCoord3(1,0,1,0);
}}
GL.Vertex3(
0.25,
0.75,0);
if (flagTex) {
GL.MultiTexCoord3(0,1,1,0);
} else {}GL.Vertex3(
0.75,
0.75,0);
if (flagTex) {
GL.MultiTexCoord3(0,1,0,0);
GL.MultiTexCoord3(1,1,1,0);
} else {}GL.Vertex3(
0.75,
0.25,0);
GL.End();
GL.PopMatrix();GL.MultiTexCoord3(1,1,0,0);。