3D预处理的步骤(关于API,GPU的说明)
CG在哪里适合?
•视觉计算的各个方面
•更广泛使用计算机图形
CG是Computer Graphics
IP是Image Processing(also image analysis)
CV是Computer Vision(also pattern recognition)
图像可能是真实,合成,多个,视频
例子:
高级:是鸟吗? 是飞机吗? 不,它是…
低级:它是显着的吗?
模式识别:是其中之一
1.计算机图形的使用
•培训和测试:现实世界中的实验可能很昂贵,并且危险的
•设计 - 启用空间/对象在施工前进行调查
•使用科学可视化理解
•增强现有世界 - 将模型与真实的模型混合世界,例如 特殊效果,增强现实
•娱乐和愉悦,例如 游戏,电视和电影,艺术
2.现实世界与综合
•在现实世界中,轻型运输自然发生
照明(Illumination) -> 反射和吸收Reflections and Absorption -> 反射Reflection
在计算机图形中我们必须做:
•几何建模
•定义一组对象并将它们排列在一个场景
•定位合成相机
•定义照明
•计算每个对象的照明
•不同的方法在不同的方法
•将3D场景转换为2D视图
•动画场景
•要求:很多数学和编程
数学
•2D和3D坐标
•向量
•矩阵
3.建模
•3D模型是几何现实世界对象的描述
3.1坐标系和转换
•坐标系用于描述点的位置
•多边形顶点表示为位置向量,例如 (2.0、3.1、0.0)
•OpenGL采用右手坐标系(RHS)
右手系(right-hand system)是在空间中规定直角坐标系的方法之一。此坐标系中x轴,y轴和z轴的正方向是如下规定的:把右手放在原点的位置,使大拇指,食指和中指互成直角,把大拇指指向x轴的正方向,食指指向y轴的正方向时,中指所指的方向就是z轴的正方向。也可以按如下方法确定右手(左手)坐标系:如果当右手(左手)的大拇指指向第一个坐标轴(x轴)的正向,而其余手指以第二个轴(y轴)绕第一轴转动的方向握紧,就与第三个轴(z轴)重合,就称此坐标系为右手(左手)坐标系。
共同的转换是旋转,比例和转换
•转换是表示为矩阵
•转换的组成 - 矩阵乘法
•线性代数和均匀的坐标
•我们还将使用构建的转换场景和分层对象
3.2材料特性
•指定每个对象的材料属性
•颜色,纹理
3.3灯和相机
•我们指定相机位置,视图方向和向量向量
•创建一个视图空间,即所有相对于相机的位置
•我们指定照明位置,方向和其他参数
4.渲染
•将3D场景转换为2D视图
•查看空间和透视投影
•隐藏的表面拆除 - 确定可以看到哪些对象
计算每个物体表面上的照明变化:
•考虑本地和全球照明
•纹理和阴影
•不同的方法以不同的方式处理这一点 - 交互式渲染,逼真的渲染,艺术渲染
5.动画
•如何更新场景的部分,例如 位置,层次结构,颜色,照明等
6.图形管道
对于高级渲染方法,例如射线跟踪,此更改的各个方面
7.3D计算机图形的软件
8.基本的图形系统
8.1 OpenGL固定功能管道(旧方法)
•基于状态的渲染 - 使用API功能到:
•设置状态:发送信息以更改OpenGL状态计算机(例如有关3D世界中相机和灯的信息)
•传递数据,例如 点,线和多边形
•数据通过现有状态修改,然后以像素显示在屏幕上。
将几何形状从3D转换为2D; 从2D产生片段几何学; 结合片段以产生图像
8.2可编程管道(镶嵌着色器,几何着色器)
什么是 API(应用程序接口)?
API(应用程序接口)是一种软件中介,它允许两个不相关的应用程序相互通信。它就像一座桥梁,从一个程序接收请求或消息,然后将其传递给另一个程序,翻译消息并根据 API 的程序设计执行协议。API 几乎存在于我们数字生活的各个方面,可以说是我们现代插件、数字接口和软件通信环境的隐藏支柱。它们将所有内容连接在一起,使软件系统协调一致地工作。API 对企业用户来说大多是不可见的,但为软件程序开辟了广泛的可能性。它们的工作原理是以受控的方式开放软件的一小部分功能和数据。这使开发人员无需访问整个系统的代码即可访问该程序、硬件、数据或应用程序。
API 使用一系列程序、工具和协议来指定不同的软件组件应如何协同工作。有两种类型的 API:私有和公共。公共 API 使用面向消费者的应用程序,并为企业提供使用各种应用程序、移动设备和浏览器与客户建立联系的机会。私有 API 在后端工作,可简化操作并创建工具,以便更好地为客户、员工和其他利益相关者提供服务。
GPU的工作原理:
简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效 果,也可以称为“几何处理”,提供细致的3D物体和高级的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓 的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大 打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。但,新一代支持DX10或以上的显卡,在系统为windows vista或以上的环境中,可以把T&L的所有工作交给GPU完成,大大提高显卡运行的效率。也使得显卡对CPU的依赖最大化的减少。
GPU的 主要作用:
GPU是显示卡的“大脑”,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。