OpenGL学习总结
第一,关于顶点
1.本地空间转换为世界空间(obj)(model 矩阵)
2.世界空间转换为视觉空间(eye)(view矩阵)
3.视觉空间转换为裁剪空间(clip)(project矩阵)
4.投影空间转换为设备归一化空间(ndc)(除以w)
5.设备归一化坐标转换为视口空间(glViewPort矩阵)
第二,关于法线。
1. 经过model*view的逆矩阵,求转置得到NormalMatrix。法线经过NormalMatrix变换后,转换到视觉空间。
2.法线经过归一化,转换为归一化坐标。也就是标准化。与设备归一化坐标(ndc)不同。
然后vertex shader的任务完成,进入到了fragment shader。
fragment shader对法线进行插值运算后,得到每一个点的法线。然后对每一个法线进行光照运算,得到最终颜色。
OpenGL学习总结相关推荐
- OpenGL学习(一)OpenGL基本介绍
1. OpenGL基本介绍 1.1 OpenGL是什么? 当你第一次听到OpenGL时,你可能并不知道它到底是什么,但你应该知道它是与图形联系起来,这确实是OpenGL能够做的事情.OpenGL不 ...
- OpenGL学习笔记:矩阵变换
文章目录 缩放 glm矩阵表示 glm缩放矩阵实现 位移 齐次坐标 glm位移矩阵实现 旋转 沿x轴旋转 沿y轴旋转 沿z轴旋转 沿任意轴旋转 glm旋转矩阵实现 矩阵的组合 glm矩阵组合使用 接上 ...
- OpenGL学习之路17---- 镜面反射光
代码放在github上 根据教程:ogldev一步步开始,记录学习历程 之前完成环境光和漫射光的学习.环境光的计算只由光强来决定,场景中所有位置是同一亮度:漫射光的计算由光强和光的方向一同决定,相关博 ...
- OpenGL学习笔记(一)绘制点线面及多面体
OpenGL学习笔记(一)绘制点线面及多面体 绘制点线面 #include <iostream> #include <GL/GLUT.h> #define PI 3.14159 ...
- 【我的OpenGL学习进阶之旅】介绍一下 绘制图元
目录 一.绘制图元 1.1 `glDrawArrays` 1.1.1 `glDrawArrays`API说明 1.1.2 `glDrawArrays`API示例 1.2 `glDrawElements ...
- OpenGL学习-球体和phong光照模型
OpenGL学习-球体和phong光照模型 开发环境搭建参考:https://lexiaoyuan.blog.csdn.net/article/details/120059213 通用配置步骤 Vis ...
- 【我的OpenGL学习进阶之旅】C++如何加载TGA文件?
一.TGA文件相关介绍 通过前面的博客 [我的OpenGL学习进阶之旅]什么是TGA文件以及如何打开TGA文件? 地址:https://ouyangpeng.blog.csdn.net/article ...
- OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...
- OpenGL学习(九)阴影映射(shadowMapping)
目录 写在前面 阴影映射原理简介 封装 Camera 类 帧缓冲 阴影映射 准备工作 创建帧缓冲与深度纹理附件 从光源方向进行渲染 正常地渲染场景 如何查找bug(⚠重要) 多纹理传送 查看深度纹理数 ...
- OpenGL学习(十)天空盒
目录 写在前面 天空盒简介 创建立方体贴图 渲染一个立方体 立方体贴图着色器 开始绘制天空盒 完整代码 着色器 c++ 写在前面 上一篇博客回顾:OpenGL学习(九)阴影映射(shadowMappi ...
最新文章
- 求和(dfs序+线段树)
- 动态生成CheckBox(Winform程序)
- C/C++ OpenCV设置感兴趣区域ROI
- sqlplus 设置显示格式
- U盘不能mount带来的思考
- easydarwin 安装_EasyDarwin流媒体服务器的简介和搭建
- mysql增删改查语法
- 关于token和refresh token
- 仿ios相机apk_iCamera仿苹果相机app下载-iCamera仿苹果相机下载app手机版 v4.0-第六手游网...
- 美景订餐管理系统--用于公司内部加班订餐
- Axure RP 10怎么卸载干净,Axure RP 10怎么在注册表卸载清除
- 用计算机遥感技术图片,卫星遥感影像数据是什么样格式的?
- 城市中心、华为、软通动力智慧城市联合解决方案发布
- pandas DatetimeIndex indexing
- mysql ERROR 1265 (01000)故障解决一例
- django项目启动加载训练的模型报错OSError: Unable to open file (unable to open file: name = ‘model/model_weigh完美解决
- 技术分享:用JS实现的3D海浪涌动特效
- 第十五届全国大学生智能汽车竞赛技术报告-8月30日
- Qt翻译文件ts中type理解
- 全宇宙著名网站中使用的编程语言