OpenGL编程指南 学习笔记
单色光光
这个作者很懒,什么都没留下…
展开
-
第一章 OpenGL概述
第一章 OpenGL概述1.4 OpenGL渲染管线openGL管线1.5 第一个程序:深入分析初始化顶点数组对象顶点数组对象负责保存一系列顶点的数据,数据保存在顶点缓存对象中,并由当前绑定的顶点数组对象管理。分配顶点数组对象void glGenVertexArrays(GLsizei n, GLunit* arrays)返回n个未使用的对象名到数组arrays当中,用作顶点数...原创 2020-05-01 19:12:09 · 300 阅读 · 0 评论 -
第十二章 计算着色器
第十二章 计算着色器工作组及其执行计算着色器中任务以组为单位进行执行,称为工作组。拥有邻居的工作组称为本地工作组,这些组可以组成更大的组,称为全局工作组。计算着色器会被全局工作组的每一个单元调用一次。本地工作组和全局工作组都是3维的,如果不需要某个维度可以将其大小设置为0(感觉应该是1)。局部工作组的大小在着色器中使用布局限定符声明:#version 430 corelayout(loc...原创 2020-05-01 19:11:40 · 1016 阅读 · 0 评论 -
第十一章 内存
第十一章 内存使用纹理储存通用数据着色器中可以将图像定义为uniform。采样器类型和图像类型的主要区别是:首先图像类型表达的单一层的纹理,不是完整的mipmap链;其次,图像类型不支持滤波采样操作;还有包括包括深度比较的采样操作。三种基本的图像类型分别为image*、iimage*和uimage*,分别对应浮点数、有符号整数和无符号整数。除了与图像变量相关通用数据类型,还需要使用一...原创 2020-05-01 19:11:32 · 712 阅读 · 0 评论 -
第十章 几何着色器
第十章 几何着色器创建几何着色器使用glCreateShader()结合参数GL_GEOMETRY_SHADER创建几何着色器。如果不需要启用光栅化可以使用glEnable(GL_RASTERIZER_DISCARD)来关闭光栅化阶段。几何着色器的图元类型与对应的绘制模式:几何着色器图元对应的绘制命令模式pointsGL_POINTS, GL_PATCHES...原创 2020-05-01 19:11:17 · 1249 阅读 · 0 评论 -
第九章 细分着色器
第九章 细分着色器细分面片细分着色器只能处理面片(patch)类型的图元,如果启用细分着色器,将其他类型图元传递给它会产生GL_INVALID_OPERATION错误,如果没有启用细分着色器,那么渲染面片数据也会得到GL_INVALID_OPERATION错误。面片就是传递给OpenGL的顶点列表,处理过程要保证顺序正确。指定面片顶点数量void glPatchParameteri(GL...原创 2020-05-01 19:11:08 · 621 阅读 · 0 评论 -
第七章 光照与阴影
第七章 光照与阴影双面光照OpenGL内置变量gl_FrontFacing设置为true则为正面,否则为反面原创 2020-05-01 19:10:58 · 248 阅读 · 0 评论 -
第六章 纹理
第六章 纹理纹理映射使用纹理映射的步骤:创建纹理对象,为他加载纹理数据为顶点增加纹理坐标把纹理图与着色器中将要使用的纹理采样器关联在着色器中使用纹理采样器来查询纹素值。基本纹理类型每个纹理对象表示组成完整纹理的一组图像,每个图像可以是纹素的1维2维或者3维数组,并且许多图像可以放在另一个图像的顶部来形成mipmap金字塔。纹理也可以包括1维或者是2维切片的数组,这样的纹理称为数...原创 2020-05-01 19:10:42 · 806 阅读 · 0 评论 -
第五章 视口变换、剪切与反馈
第五章 视口变换、剪切与反馈观察视图OpenGL的坐标系统:OpenGL变换设置远近平面void glDepthRange(GLclampd near, GLclampd far);void glDepthRangef(GLclampf near, GLclampd far);近平面和远平面的值也就是深度缓存中所保存的最小值和最大值。默认情况下分别取0.0和1.0,所设置的范围是...原创 2020-05-01 19:10:25 · 383 阅读 · 0 评论 -
第四章 颜色、像素和帧缓存
第四章 颜色、像素和帧缓存缓存以及用途OpenGL包含以下三种缓存:一个或者多个颜色缓存(color buffer)深度缓存(depth buffer)模板缓存(stencil buffer)缓存的清除设置缓存清除值void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);vo...原创 2020-05-01 19:10:15 · 2168 阅读 · 0 评论 -
第三章 OpenGL绘制方式
第三章 OpenGL绘制方式OpenGL图元点设置点的大小可以再顶点、细分、几何着色器的内置变量gl_PointSize来指定,在OpenGL中可以通过glPointSize(size)来指定,这两种方式都需要开启GL_PROGRAM_POINT_SIZE。如果点的大小超过1个像素,那么该点中心所在的所有像素都会受到该点光照的影响。在片元着色器中,可以使用gl_PointCoord来访问...原创 2020-05-01 19:09:54 · 856 阅读 · 0 评论 -
第二章 着色器基础
第二章 着色器基础做色漆语言概述变量的声明GLSL中的基本数据类型:float double int uint boolGLSL中的不透明类型包括采样器(sampler)图像(image)以及原子计数器(atomic counter)变量的初始化所有变量必须在声明的同时进行初始化。构造函数GLSL中支持的隐式类型所需类型可以从这些类型隐式转换uintint...原创 2020-05-01 19:09:33 · 887 阅读 · 0 评论