当前位置: 首页 > news >正文

计算机图形学入门(openGL)持续更新

OpenGL概览

图形API(Application Programming Interface)

跨平台,跨编程语言的图形程序接口。用于调用GPU上的指令功能

游戏引擎底层都是由图形API制作出来的

OpenGL:是一个由Khronos组织制定并维护的规范(Specification)
OpenGL实现:各个显卡厂商自己在显卡驱动层面实现这些API的内容

渲染模式

立即渲染模式(Immediate mode):openGL3.0之前的版本不会暴露太多的细节功能,只能按部就班实现效果

核心渲染模式(Core-profile):openGL3.0之后,openGL标准推崇核心渲染模式,对于程序员给出了大量的自由的功能

坐标系

openGL中使用右手坐标系

网格(Mesh):存储了一个模型的几何形状数据

材质(Material):描述了物体表面如何与光发生反应

属性:颜色、金属/非金属、光滑/粗糙、透明/半透明/不透明、凹陷/突起等

颜色(RGB)对于光:意味着红、绿、蓝的光强度,对于物体:意味着对红、绿、蓝的光的反射百分比

当一束light( 0.9 , 1.0 , 0.8 )照在Mesh( 0.2 , 0.5 , 0.8 )上时

肉眼看到的RGB为( 0.9 , 1.0 , 0.8 ) * ( 0.2 , 0.5 , 0.8 ) = ( 0.18 , 0.5 , 0.64 )

渲染管线

流程:顶点数据->三维变换->图元装配->剪裁剔除->光栅化->片元着色->混合与测试

蓝色部分处理对象为顶点数据,红色部分处理对象为像素片元数据

顶点数据
位置:每个顶点的xyz坐标
颜色:每个顶点的rgb颜色
其他数据:法线、uv、切线

三维变换
模型变换:使用矩阵数学工具,使得三角形在空间
当中平移、旋转、缩放
视图变换:使用矩阵数学工具,将三角形顶点变换
到摄像机为中心的坐标系中
投影变换:使用矩阵数学工具,将三角形顶点变换
到标准屏幕坐标系中
这些操作都是针对了三角形的顶点们

图元装配
图元:在图形的世界里,一个三角形、一条直线等几何关系的,称为图元(Primitive)
图元的构成:三角形(三个顶点),直线(两个顶点),是变换完毕的点进行构成
图元装配:把变换后的顶点,根据顺序,组成三角形、直线等图元的过程

剪裁剔除
剪裁:把视口外面,无法显示的图元都减裁掉,加快后续步骤的渲染效率
剔除:将背面朝向我们的三角形剔除掉
渲染时三角形分正面及背面,当顶点数据连线为顺时针时为背面,逆时针时是正面

光栅化
屏幕由一格格的像素构成,虚拟的几何图形也需要做成栅格才能渲染,称为光栅化
光栅化只是把顶点围成的区域的光栅计算出来,还没有决定每个像素光栅的颜色

片元着色
计算每个像素片元最终显示的颜色

混合与测试
当有多个三角形重叠或有半透明效果时,混合决定透明效果,测试决定前后次序

OpenGL需要的库
GLFW:是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口
(1)跨平台的窗体生成API系统
(2)与OpenGL便捷链接
(3)方便的鼠标键盘消息回调函数
GLFW下载网址
Glad:根据不同的OpenGL版本,获取驱动之中的函数指针

http://www.cnnetsun.cn/news/1390378.html

相关文章:

  • C语言程序设计第四版(何钦铭、颜晖)第九章结构之输出平均分
  • AudioSeal Pixel Studio部署教程:私有云环境SSL证书集成与HTTPS访问
  • CSS display 属性全解析:块级 / 行内 / 行内块 / 隐藏
  • GME-Qwen2-VL-2B-Instruct图解Transformer架构:深入理解大模型核心机制
  • Nanbeige 4.1-3B实战案例:社区论坛集成像素AI助手提升用户停留时长
  • (119页PPT)年终绩效考核与激励性薪酬设计(附下载方式)
  • Vue动态高度展开收起组件:平滑过渡与自适应布局实战
  • WuliArt Qwen-Image Turbo基础教程:Web UI界面功能逐项解析与操作逻辑
  • 背发光字的
  • 收藏备用|程序员(含小白)大模型转型全攻略,轻松拿捏AI技术红利
  • 丹青幻境保姆级教程:从环境搭建到生成惊艳国风图片
  • rk3588 openEuler 系统网讯网卡初始化以及板卡网桥配置方法
  • Qwen3-TTS-VoiceDesign实战手册:语音情感强度量化评估指标构建
  • Spring Boot 4.0适配JDK 26|一键升级与常见坑速解
  • 计算机毕业设计 | SpringBoot+vue仓库管理系统 仓储物流管理平台(附源码+论文)
  • 零基础搭建知识库:手把手教你部署Qwen3-Embedding-4B,小白也能搞定
  • WeChatRedEnvelopesHelper终极指南:iOS微信抢红包插件全攻略
  • 52:侧信道攻击防范:时序与功率分析防御技术
  • Qwen3-32B-Chat百度SEO标题:RTX4090D部署Qwen3-32B大模型详细步骤与参数详解
  • 八股框架篇
  • 精益生产的核心是什么?以客户价值为导向的浪费消除逻辑
  • Qwen3-32B-Chat实战案例:本地部署后集成向量数据库构建智能客服
  • Neeshck-Z-lmage_LYX_v2应用案例:电商卖家如何批量生成商品场景图
  • Qwen-Image算力适配:CUDA12.4+RTX4090D下Qwen-VL显存占用与吞吐量调优指南
  • 5款免费阅读工具完全指南:解锁信息自由的终极解决方案
  • YOLOv13小白教程:无需配置,一键启动目标检测模型
  • Unity手游UI避坑指南:用Screen.safeArea搞定iPhone 14 Pro和安卓各种刘海屏
  • YOLO3D实战:如何在KITTI数据集上实现3D点云实时检测(附完整训练代码)
  • 显示器工程师不会告诉你的EDID秘密:Display Descriptor Block里的H/V同步参数到底怎么调?
  • 李慕婉-仙逆-造相Z-Turbo 技术架构深度解析:从用户请求到图像生成的完整链路