
OpenGL
丿热心市民小张
这个作者很懒,什么都没留下…
展开
-
OpenGL光照
光照模型主要由三个分量组成:环境光,漫反射,镜面反射。 环境光: 环境光与物体颜色混合后,片元颜色=环境光颜色*物体表面颜色 注:片元颜色是4维向量,颜色是三维向量,所有要将结果转为4维向量 漫反射: 计算漫反射需要得知:片元的法向量和光线的方向向量。 光线的方向向量=光源的坐标-顶点的坐标 由法向量点乘光线方向向量并将其标准化,得到图中夹角的余弦cosθ 漫反射=光源的颜色×cosθ 加入漫反射后:片元颜色=(环境光+漫反射)*物体顶点颜色 镜面反射 镜面反射实现的是物体表面出现光斑的效果 反射颜色=原创 2021-03-24 15:16:43 · 165 阅读 · 0 评论 -
OpenGL变换
点乘: 两个向量的点乘等于它们的数乘结果乘以两个向量之间夹角的余弦值。用于判断两个向量是否正交或者平行 叉乘: 生成一个垂直于两个输入向量的第三个向量 矩阵和向量相乘:如果矩阵的列数等于向量的维数,他们就可以相乘,与矩阵间的乘法规则相同。 M×N的矩阵乘N乘X的矩阵=M乘X的矩阵 平移 缩放 旋转 采用w齐次坐标的用途: 齐次坐标是1,代表这是个方向向量可以进行位移 齐次坐标是0,代表这是个坐标,不能进行位移 矩阵的组合 当平移旋转缩放组合使用时,要先进行缩放,后旋转,然后位移。 例如:若先位移再缩放原创 2021-03-23 17:46:02 · 112 阅读 · 0 评论 -
OpenGL中为模型贴纹理
的原创 2021-03-23 15:23:48 · 401 阅读 · 0 评论 -
glVertexAttribPointer 顶点数据解析方式
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)0); 第一个参数指定从索引0开始,与顶点着色器中layout=0对应 第二个参数指定顶点属性的大小是3 第三个参数是数值的类型 第四个参数是是否需要归一化 第五参数是步长,连续顶点之间的间隔 第六个参数是offest偏移量 ...原创 2021-03-20 01:34:25 · 291 阅读 · 0 评论 -
OpenGL绘制三角形流程
创建VBO->绑定VBO缓存->向VBO中写入顶点数据 GLuint VBO; glGenBuffers(1,&VBO); glBindBuffer(GL_ARRAY_BUFFER,VBO); //写入数据 glBufferData(GL_ARRAY_BUFFER,sizeof(vertices),vertices,GL_STATIC_DRAW); 创建VAO->绑定VAO GLuint VAO; glGenVertexArrays(1,&VAO); glB原创 2021-03-19 21:58:08 · 170 阅读 · 0 评论