opengl-soil 第一次尝试放置纹理
Posted
技术标签:
【中文标题】opengl-soil 第一次尝试放置纹理【英文标题】:opengl-soil try to put a texture for first time 【发布时间】:2013-12-15 19:44:16 【问题描述】:我遵循本教程http://open.gl/textures? 我无法理解这些代码,也不能在我的 Visual Studio 项目中运行。 还有,“in vec2”和“out vec3”是什么类型格式??
in vec2 texcoord;
out vec3 Color;
out vec2 Texcoord;
void main()
Texcoord = texcoord;
....
glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE,
7*sizeof(float), 0);
glVertexAttribPointer(colAttrib, 3, GL_FLOAT, GL_FALSE,
7*sizeof(float), (void*)(2*sizeof(float)));
GLint texAttrib = glGetAttribLocation(shaderProgram, "texcoord");
glEnableVertexAttribArray(texAttrib);
glVertexAttribPointer(texAttrib, 2, GL_FLOAT, GL_FALSE,
7*sizeof(float), (void*)(5*sizeof(float)));
【问题讨论】:
【参考方案1】:您引用的第一部分应该是vertex shader。它是用GLSL 编写的,不应该被 Visual Studio(或任何其他 C/C++ 编译器,就此而言)理解,而是由您的 GL 实现的 GLSL 编译器理解。您引用的其余部分是在主机 CPU 上执行的 GL 客户端代码,用于设置通用顶点属性数组。
在尝试纹理课程之前,您应该真正完成该教程中更基本的部分。在上述教程的drawing lesson 中介绍了着色器和通用属性,这对于以下所有课程都是必不可少的。
【讨论】:
以上是关于opengl-soil 第一次尝试放置纹理的主要内容,如果未能解决你的问题,请参考以下文章