learnopengl

LearnOpenGL学习笔记(二)纹理

半腔热情 提交于 2019-12-04 02:03:00
开始学习OpenGL,参考的是著名的LearnOpenGL这个网站,在这里做一些总结性的记录,只是方便自己日后查找或者记录自己的一些拓展思考,关于OpenGL的具体内容请移步: https://learnopengl-cn.github.io/ 或英文原版: https://learnopengl.com/ 纹理坐标 为了能够把纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部分。这样每个顶点就会关联着一个纹理坐标(Texture Coordinate),用来标明该从纹理图像的哪个部分采样(译注:采集片段颜色)。之后在图形的其它片段上进行片段插值(Fragment Interpolation)。 所以先在顶点数据中加入纹理坐标并记得将其传入顶点着色器: float vertices[] = { // ---- 位置 ---- ---- 颜色 ---- - 纹理坐标 - 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // 右上 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // 右下 -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // 左下 -0.5f, 0.5f, 0.0f, 1.0f, 1.0f,

LearnOpenGL笔记(2)三角形

岁酱吖の 提交于 2019-12-03 11:59:26
这是学习 LearnOpenGL CN 教程的笔记,包括我遇到的问题和我的烂笔头。文章名与网站小节对应。 ------------------------------------分割线-------------------------------------------------------------------------------------------- 摆张重要的图先,蓝色的是可以编写着色器控制的部分。 着色器在C++字符串中的形式 "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main()\n" "{\n" "gl_Position=vec4(aPos.x,aPos.y,aPos.z,1.0);\n" "}\n"; 绘制流程 //初始化缓冲数组对象 unsigned int VAO; //顶点数组对象VAO unsigned int VBO; //顶点缓冲对象VBO //创建VAO glGenVertexArrays(1, &VAO); //绑定VAO glBindVertexArray(VAO); //创建VBO glGenBuffers(1, &VBO); //生成vbo和缓冲ID //缓冲绑定 glBindBuffer(GL_ARRAY_BUFFER, VBO); /

LearnOpenGL笔记(1)搭建环境

筅森魡賤 提交于 2019-12-03 05:26:31
之前 有写过Unity Shader,但不过是东拼西凑,对其中的原理可以说完全不清楚,现在准备好好从opengl开始,学习这基础又重要的内容。 LearnOpenGL CN 是一个超超超炒鸡好的openGL教程网站,好到我觉得完全没有必要,自己记录一份完全的学习记录,来分享学习。因为这个网站的内容太详细啦,有点保姆级别的感觉,我如果“复制”一份过来就太多余了。 当然,虽然网站很是强大,但是我还是太愚钝了,还是会遇到许多问题,我会把我遇到的问题和解决方案记录下来,这部分分享出来可能对你是有用的。 所以,这是一个LearnOpenGL教程的笔记,包括我遇到的问题和我的烂笔头。 之后的笔记名字也会对应网站的小节名字。 -------------------------------------------------------------------------------------------------------------------- Cmake问题 为了避免发生我看不懂的问题,以防万一,我专门下了教程所用的vs2015。但是还是遭遇了问题: 有两条需要注意的log信息: 但是我检查了下,msbuild 和sdk8,1都安装,我甚至还装了sdk10,最后还是有问题。 无奈下,选择了我原本安装的vs2019,然后没有问题了(我在费什么劲......)原因不太清楚