今天来点大家想看的东西:glsl
参考LearnOpenGL:主页 - LearnOpenGL CN,都是一些零零散散的记录,主要章节参考章节Camera。
着色器包装成类,方便调用,具体代码都在教程里;
纹理(Texture)
- 4种纹理环绕方式,且各坐标轴的环绕方式可以单独设置;
- 纹理过滤(最邻近,线性等);
- Mipmap,openGL可以自动生成纹理的Mipmap,基本作用就是节省计算资源(预计算),Mipmap的过滤方式即考虑生成Mipmap图像时的过滤方式,也考虑在Mip上采样时的过滤方式。
纹理加载/创建
有一直用其他语言并且很多年没有怎么用过C++的友友可能和我有一样的疑问,为什么这里创建一个能够在着色器中使用的纹理这么麻烦呢(包括之前的创建VAO,VBO,EBO)?为啥不能创建一个类似GL_TEXTURE_2D的对象直接使用
(胡言乱语)?unsigned int texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture);
以下是个人理解,texture是一个unsigned int型的变量,glGenTextures会给texture生成一个独特的id(类似于pid之类的东西),glBi