
learnOpenGL
Mhypnos
这个作者很懒,什么都没留下…
展开
-
learnOpenGL-混合
注意深度测试可能抛弃在后面的物体,因此绘制透明物体混合时,要按最远到近排序,再按顺序渲染。例如:使用源颜色向量的alpha作为源因子,使用1−alpha作为目标因子。注意透明纹理边缘采用的纹理,更过环绕方式。生成纹理时加载alpha通道。1.绘制所有不透明物体。2.对所有透明物体排序。3.按顺序绘制透明物体。设置源因子和目标因子。原创 2023-05-30 20:27:43 · 132 阅读 · 0 评论 -
learnOpenGL-模版测试
例子:只要一个片段的模板值等于(GL_EQUAL)参考值1,片段将会通过测试并被绘制,否则会被丢弃。5.渲染同一个稍微放大的物体,只有模版缓冲不为1时才绘制片段。绘制完一个带边框的物体,重新启用模版缓冲写入和深度测试。4.渲染(其它)物体,根据模板缓冲的内容丢弃特定的片段。1.启用模版缓冲写入,被渲染物体片段更新模版缓冲为1。2.渲染物体,更新模板缓冲的内容。4.使用另一个绘制边框的片段着色器。3.禁用模版缓冲写入及深度测试。1.启用模板缓冲的写入。3.禁用模板缓冲的写。原创 2023-05-29 22:34:06 · 144 阅读 · 0 评论 -
learnOpenGL-深度测试
提前深度测试:允许深度测试在片段着色器之前运行。使用提前深度测试时,片段着色器不可写入深度值,因为OpenGl不能提前知道深度值。深度测试:OpenGL将一个片段的深度值与深度缓冲的内容进行对比。执行一个深度测试,测试通过则深度缓冲将会更新为新的深度值。3.牺牲一些性能,使用更高精度的深度缓冲。片段着色器中内置变量gl_FragCoord的z值即为深度值。深度测试片段着色器及模版测试之后执行。原创 2023-05-28 21:19:11 · 1084 阅读 · 0 评论 -
learnOpenGL-模型加载
glGetUniformLocation里获取uniform变量的地址是都是-1,传数据的代码都是无效的。1.教程里传给着色器的是一个材质material加漫反射贴图和镜面贴图。网格也包含了一个Material对象,它包含了一些函数能让我们获取物体的材质属性,比如说颜色和纹理贴图(比如漫反射和镜面光贴图)。Mesh对象本身包含了渲染所需要的所有相关数据,像是顶点位置、法向量、纹理坐标、面(Face)和物体的材质。流程:加载scene,遍历节点,获取对应mesh,通过mesh获取顶点数据,索引和材质。原创 2023-05-18 19:56:06 · 237 阅读 · 0 评论 -
learnOpenGL-多光源
就是调光的各种参数,以实现各种效果。定义平行光和点光源两种光源结构。原创 2023-05-17 20:19:58 · 138 阅读 · 0 评论 -
learnOpenGL-投光物
需要定义光源位置position,光的方向direction,光照角度cutOff。以此计算LightDir:片段指向光源的方向,SpotDir聚光所指方向,Phiϕ聚光半径的切光角,Thetaθ聚光方向SpotDir与片段和光源方向LightDir的夹角。需要根据距离计算光的衰减。要定义constant,linear,quadratic设置三个参数作为衰减公式的参数。需要定义从光源出发的方向direction。但计算时使用的是从片段指向光源的方向。聚光:位于环境中某处的光源,只朝一个方向照射。原创 2023-05-17 14:10:23 · 110 阅读 · 0 评论 -
learnOpenGL-光照贴图
有纹理贴图采用来获取漫反射光照和镜面光照的值。漫反射贴图和镜面贴图。原创 2023-05-16 19:33:11 · 109 阅读 · 0 评论 -
learnOpenGL-材质
镜面光照(Specular Lighting):specular材质向量设置的是物体受到的镜面光照的影响的颜色(或者可能是反射一个物体特定的镜面高光颜色)漫反射光照(Diffuse Lighting):diffuse材质向量定义了在漫反射光照下物体的颜色。漫反射颜色被设置为(和环境光照一样)需要的物体颜色。环境光照(Ambient Lighting):ambient材质向量定义在环境光照下这个物体反射的颜色;通常是和物体颜色相同的颜色。shininess影响镜面高光的散射/半径。原创 2023-05-16 18:27:23 · 108 阅读 · 0 评论 -
learnOpenGL-基础光照
环境光照(Ambient Lighting):即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会是完全黑暗的。为了模拟这个,我们会使用一个环境光照常量,它永远会给物体一些颜色。漫反射光照(Diffuse Lighting):模拟光源对物体的方向性影响(Directional Impact)。物体的某一部分越是正对着光源,它就会越亮。镜面光照(Specular Lighting):模拟有光泽物体上面出现的亮点。镜面光照的颜色相比于物体的颜色会更倾向于光的颜色。原创 2023-05-15 23:21:13 · 115 阅读 · 0 评论 -
learnOpenGL-颜色
【代码】learnOpenGL-颜色。原创 2023-05-15 22:14:26 · 106 阅读 · 0 评论 -
learnOpenGL-摄像机
【代码】learnOpenGL-摄像机。原创 2023-05-11 19:57:50 · 145 阅读 · 0 评论 -
learnOpenGL-坐标系统
【代码】learnOpenGL-变换。原创 2023-05-11 00:40:38 · 109 阅读 · 0 评论 -
learnOpenGL-变换
【代码】learnOpenGL-变换。原创 2023-05-10 13:45:11 · 102 阅读 · 0 评论 -
learnOpenGL-纹理
【代码】learnOpenGL-纹理。原创 2023-05-09 19:40:05 · 102 阅读 · 0 评论 -
learnOpenGL-着色器
xcode编译下面代码可能会有问题,因为open打开的着色器文件读取有问题。用ifstream infile打开一样有问题。原创 2023-05-08 22:28:04 · 156 阅读 · 0 评论 -
learnOpenGL-三角形
激活要使用的program,绑定要使用的VAO,根据VBO和EBO选择绘制模式。10.启用VS中对应的顶点属性,并设置相关顶点属性在VBO的读取方式。5.创建着program,附加VS和FS,链接program。9.生成EBO,绑定EBO,将顶点索引数据复制EBO。8.生成VBO,绑定VBO,将顶点数据复制到VBO。练习二:使用不同的VAO,VBO创建两个相同三角形。1.顶点数据VBO存储,顶点索引数据EBO存储。3.创建VS,传入VS代码字符串,编译VS。4.创建FS,传入FS代码字符串,编译FS。原创 2023-05-05 20:52:44 · 114 阅读 · 0 评论 -
learnOpenGL-创建窗口
9.循环:监听输入,设置清屏颜色,清楚上一帧,渲染,交换前后缓存。5.设置窗口为当前线程上下文。7.设置渲染窗口大小。原创 2023-05-05 20:31:45 · 149 阅读 · 0 评论 -
macbook配置openGL环境(GLFW+GLEW)
learnOpenGL学习,在mac环境下配置openGL相关环境原创 2023-05-05 00:01:33 · 2319 阅读 · 0 评论