第一,关于顶点

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学习总结相关推荐

  1. OpenGL学习(一)OpenGL基本介绍

    1. OpenGL基本介绍 1.1 OpenGL是什么?   当你第一次听到OpenGL时,你可能并不知道它到底是什么,但你应该知道它是与图形联系起来,这确实是OpenGL能够做的事情.OpenGL不 ...

  2. OpenGL学习笔记:矩阵变换

    文章目录 缩放 glm矩阵表示 glm缩放矩阵实现 位移 齐次坐标 glm位移矩阵实现 旋转 沿x轴旋转 沿y轴旋转 沿z轴旋转 沿任意轴旋转 glm旋转矩阵实现 矩阵的组合 glm矩阵组合使用 接上 ...

  3. OpenGL学习之路17---- 镜面反射光

    代码放在github上 根据教程:ogldev一步步开始,记录学习历程 之前完成环境光和漫射光的学习.环境光的计算只由光强来决定,场景中所有位置是同一亮度:漫射光的计算由光强和光的方向一同决定,相关博 ...

  4. OpenGL学习笔记(一)绘制点线面及多面体

    OpenGL学习笔记(一)绘制点线面及多面体 绘制点线面 #include <iostream> #include <GL/GLUT.h> #define PI 3.14159 ...

  5. 【我的OpenGL学习进阶之旅】介绍一下 绘制图元

    目录 一.绘制图元 1.1 `glDrawArrays` 1.1.1 `glDrawArrays`API说明 1.1.2 `glDrawArrays`API示例 1.2 `glDrawElements ...

  6. OpenGL学习-球体和phong光照模型

    OpenGL学习-球体和phong光照模型 开发环境搭建参考:https://lexiaoyuan.blog.csdn.net/article/details/120059213 通用配置步骤 Vis ...

  7. 【我的OpenGL学习进阶之旅】C++如何加载TGA文件?

    一.TGA文件相关介绍 通过前面的博客 [我的OpenGL学习进阶之旅]什么是TGA文件以及如何打开TGA文件? 地址:https://ouyangpeng.blog.csdn.net/article ...

  8. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  9. OpenGL学习(九)阴影映射(shadowMapping)

    目录 写在前面 阴影映射原理简介 封装 Camera 类 帧缓冲 阴影映射 准备工作 创建帧缓冲与深度纹理附件 从光源方向进行渲染 正常地渲染场景 如何查找bug(⚠重要) 多纹理传送 查看深度纹理数 ...

  10. OpenGL学习(十)天空盒

    目录 写在前面 天空盒简介 创建立方体贴图 渲染一个立方体 立方体贴图着色器 开始绘制天空盒 完整代码 着色器 c++ 写在前面 上一篇博客回顾:OpenGL学习(九)阴影映射(shadowMappi ...

最新文章

  1. 求和(dfs序+线段树)
  2. 动态生成CheckBox(Winform程序)
  3. C/C++ OpenCV设置感兴趣区域ROI
  4. sqlplus 设置显示格式
  5. U盘不能mount带来的思考
  6. easydarwin 安装_EasyDarwin流媒体服务器的简介和搭建
  7. mysql增删改查语法
  8. 关于token和refresh token
  9. 仿ios相机apk_iCamera仿苹果相机app下载-iCamera仿苹果相机下载app手机版 v4.0-第六手游网...
  10. 美景订餐管理系统--用于公司内部加班订餐
  11. Axure RP 10怎么卸载干净,Axure RP 10怎么在注册表卸载清除
  12. 用计算机遥感技术图片,卫星遥感影像数据是什么样格式的?
  13. 城市中心、华为、软通动力智慧城市联合解决方案发布
  14. pandas DatetimeIndex indexing
  15. mysql ERROR 1265 (01000)故障解决一例
  16. django项目启动加载训练的模型报错OSError: Unable to open file (unable to open file: name = ‘model/model_weigh完美解决
  17. 技术分享:用JS实现的3D海浪涌动特效
  18. 第十五届全国大学生智能汽车竞赛技术报告-8月30日
  19. Qt翻译文件ts中type理解
  20. 全宇宙著名网站中使用的编程语言

热门文章

  1. mysql中主从复制需要的酶_mysql主从复制
  2. matlab神经网络 时间序列,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?...
  3. PPIO 商业化架构解析
  4. WPF: RenderTransform特效
  5. Ansible 基础-介绍
  6. 递归算法转换为非递归算法的技巧
  7. [数据库]Oracle和mysql中的分页总结
  8. VS2015使用scanf报错解决方案
  9. 如何定义一个不能被继承的类
  10. Oracle 基础之数据库管理