游戏编程随笔
08
10
多光源 为了在场景中使用多个光源,我们希望将光照计算封装到GLSL函数中 主要的分类: 平行光,点光源,聚光 GLSL多光源封装 > 平行光、点光源、聚光, 单独计算,累加和 ```cpp #version 330 core
2022-08-10 Yonggang Long
10
光源(投光物) 将光投射(Cast)到物体的光源叫做投光物(Light Caster)。 主要的分类: 平行光,点光源,聚光 平行光 > 当一个光源处于很远的地方时,来自光源的每条光线就会近似于互相平行。不论物体和者观察者的位
2022-08-10 Yonggang Long
10
光照贴图 为了对物体的漫反射分量(以及间接地对环境光分量,它们几乎总是一样的)和镜面光分量有着更精确的控制,材质属性准确的控制(环境光交给light)。 漫反射贴图 > 其实都是使用一张覆盖物体的图像,让我们能够逐片段索引其独
2022-08-10 Yonggang Long
10
属性封装-材质、光 主要是针对面向对象的设计,shader数据使用结构struct来抽象个体 材质 > 描述物体特有反射、散射、高光等属性。 #version 330 core //结构定义 struc
2022-08-10 Yonggang Long
10
基础光照 冯氏光照模型(Phong Lighting Model) 现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。 因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,这样处理起来
2022-08-10 Yonggang Long
10
光照基础之颜色 主要使用颜色叠加效果,最终输出颜色 = 物体颜色* 光照颜色 使用已有的VBO绘制光源立方体。 被光照影响的物体使用的Shader 顶点Shader没有变化,只有transform cpp #v
2022-08-10 Yonggang Long
10
摄像机 摄像机的引入控制view矩阵。同时可控制透视的fov视角。来模拟人的观察眼睛。 因此可使用摄像机位置控制view, fov控制视角。 使用欧拉角控制鼠标方向位置,因此要计算 yaw, pitch 1. 摄像机方向,view方向
2022-08-10 Yonggang Long
10
渲染立方体 数学知识参考3d数学部分 渲染立方体需要6个面,12个三角形,同样每个顶点需要对应一个uv。 基础代码同上一节,绘制立方体代码,这里调用绘制36个顶点的代码(6个面 = 12个三角形 = 36个顶点, 虽然重用顶点,但是对
2022-08-10 Yonggang Long
10
使用glm数学库 数学知识参考3d数学部分 glm::perspective 构造 正交投影 正射投影矩阵定义了一个类似立方体的平截头箱,它定义了一个裁剪空间,在这空间之外的顶点都会被裁剪掉。创建一个正射投影矩阵需要指定可见平截头体的
2022-08-10 Yonggang Long
10
使用glm数学库 数学知识参考3d数学部分 opengl glfwGetTime()时间函数 glm数学库 cpp #include <glm/glm.hpp> #include <g
2022-08-10 Yonggang Long
11 / 14