OpenGL 学习(1)

知识点

随笔是根据LearnOpenGL CN进行记录,本人用来巩固回顾的

基础概念:

  • 顶点数组对象 VAO
  • 顶点缓冲对象 VBO
  • 元素缓冲对象 EBO
  • GL_POINTS
  • GL_TRIANGLES
  • GL_LINE_STRIP

图形渲染管线:

  • 3D坐标转换为2D坐标
  • 2D坐标转变为实际的颜色像素

顶点数据(Vertex data)---->顶点着色器(Vertex shader)---->几何着色器(Geometry shader)---->图元装配(Shape assembly)---->光栅化(Rasterization)---->片元着色器(Fragment shader)---->测试于混合(Tests and blending)

2D坐标和像素的区分:

  • 2D坐标 精确 表示一个点位置
  • 2D像素是这个点的 近似值 ,受到屏幕/窗口分辨率的限制

1. 顶点着色器

  • 把一个单独的顶点作为输入
  • 把3D坐标转为另一种3D坐标
  • 对顶点属性进行基本处理

可以选择性传递给几何着色器

2. 几何着色器

  • 一组顶点作为 输入 形成图元
  • 通过发出 新的顶点 形成新的图元生成其他形状

3. 图元装配

  • 顶点着色器或几何着色器输出的所有顶点 作为输入
  • 装配成图元形状
  • 输出传入光栅化阶段

4. 光栅化

  • 将图元映射为最终屏幕上相应像素,生成供片元着色器使用的片元

OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据

5. 片元着色器

  • 运行前执行裁切
  • 裁切会丢弃超出视图之外所有像素 (提升执行效率)
  • 计算一个像素的最终颜色

6. 测试和混合

  • 所有对应颜色确定后被传入
  • 判断这个像素是物体前面还是后面,决定是否丢弃
  • 检查物体的透明度,并对物体进行混合

在现代OpenGL中,我们必须定义至少一个顶点着色器和一个片元着色器(因为GPU中没有默认的顶点/片段着色器)

posted @   cherishviki  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示