3D图形学中的数学基础
- 格式:ppt
- 大小:1.47 MB
- 文档页数:55


3D图形数学(3DGraphicsMath)3D图形数学(3D Graphics Math)1 图形管道概述我们将讨论渲染⼀幅带有基本光照的单个图像的⼤体过程,这⾥不考虑动画和全局光照,如阴影和辐射度。
此外,注意这⾥只从概念上讲解通过图形管道的数据流,其顺序并不是固定的。
实践中,我们也许会为了性能的优化⽽并⾏或乱序执⾏⼀些任务。
⽐如,考虑到不同的渲染API,我们可能⾸先变换和照明所有顶点,然后才进⼀步的处理(进⾏裁剪和剔除),或者会并⾏处理⼆者,也可能在背⾯剔除之后再进⾏光照会得到更⾼效率。
还有⼀个我们将不详细讨论的要点,即⼯作负担如何在CPU与渲染硬件间分配。
正确地组织渲染任务,以求得最⼤的并⾏效果对⾼效渲染是⾄关重要的。
考虑上述简化,就得到了图形管道中数据流的概况,如下所⽰:建⽴场景:开始渲染之前,需要预先设定对整个场景有效的⼀些选项。
⽐如,要建⽴摄像机位置,或者更具体些,要选择进⾏渲染的出发点---视点,渲染的输出---视图。
还需要设定光照与雾化选项,同时准备z缓冲。
.可见性检测:选好了摄像机,就必须检测场景中哪些物体是可见的。
可见性检测对实时渲染极为重要,因为我们不愿意浪费时间去渲染那些根本看不到的东西。
.设置物体级的渲染状态:⼀旦发现某物体潜在可见,就到了把它实际绘制出来的时候。
每个物体的渲染设置可能是不同的,在渲染该物体的任何⽚元之前,⾸先要设置上述选项,最常见的此类选项是纹理映射。
.⼏何体的⽣成与提交:接着实际向API提交⼏何体,通常提交的数据是种种形式的三⾓形,或是独⽴的三⾓形,或是索引三⾓⽹格与三⾓带。
此阶段,我们可能会应⽤LOD,或者渐进式⽣成⼏何体。
.变换与光照:⼀旦渲染API得到了三⾓形数据,由模型空间向摄像机空间的顶点坐标转换与顶点光照计算即开始。
.背⾯剔除与裁剪:然后,那些背对摄像机的三⾓形被去除("背⾯剔除");三⾓形在视椎外的部分也被去除,称作裁剪---这可能导致产⽣多于三个边的多边形。
nurbs曲面定义NURBS曲面定义NURBS(Non-Uniform Rational B-Splines)曲面是一种数学表达形式,用于描述三维空间中的曲面。
它是3D计算机图形学中广泛使用的一种曲面表示方法,能够精确地描述各种形状的曲面,包括平面、球体、圆柱体等。
1. NURBS曲线基础NURBS曲线是NURBS曲面的基础。
NURBS曲线由一系列的控制点、权重值、节点向量以及次数组成。
其中,控制点是曲线上的关键点,用于定义曲线的形状。
权重值用于控制点对曲线的影响程度,可以使曲线更加灵活地调整形状。
节点向量定义了曲线的参数范围,决定了曲线在参数空间上的分布。
次数指定了曲线的阶数,决定了曲线段之间的平滑度。
2. NURBS曲面定义NURBS曲面是通过NURBS曲线的延伸与连接而生成的曲面。
NURBS曲面的定义与NURBS曲线类似,也包括控制点、权重值、节点向量、次数等信息。
通过调整这些参数,可以精确地定义曲面的形状。
3. NURBS曲面的特点NURBS曲面具有以下几个特点:3.1 高阶曲面NURBS曲面的次数可以任意指定,因此可以生成高阶曲面。
高阶曲面拥有更多的自由度,可以更好地逼近真实物体的形状。
3.2 定义准确NURBS曲面通过调整控制点、权重值、节点向量等参数进行精确的形状定义,可以准确地描述各种复杂的曲面。
3.3 灵活性NURBS曲面可以通过调整控制点和权重值等参数来改变曲面的形状。
这种灵活性使得NURBS曲面成为设计、建模和动画制作等领域中常用的曲面表示方法。
3.4 平滑性NURBS曲面可以生成平滑的曲面,无明显的棱角和断裂。
通过调整曲线的次数和节点分布,可以实现曲面平滑连接,使得曲面在视觉上更加美观。
4. NURBS曲面的应用NURBS曲面广泛应用于计算机图形学、汽车设计、船舶设计、航空航天等领域。
在计算机图形学中,NURBS曲面是创建真实感曲面模型的主要方法。
在汽车设计中,NURBS曲面可以精确地描述汽车外形,帮助设计师进行外观设计和车身结构分析。
OpenGL学习笔记:三维数学基础(⼀)坐标系、向量、矩阵接触OpenGL和计算机图形学有⼀段时间了,⼀直想写⼀点东西,记录⾃⼰的学习历程,或许也能够为有意愿向计算机图形学发展的菜鸟们提供⼀条捷径。
闲话不多说,本章主要介绍计算机图形学中三维数学的⼀些基础知识,主要包括2D、3D笛卡尔坐标系,向量、矩阵的数学和⼏何意义以及公式。
由于篇幅限制,其中的推导过程本⽂不作叙述,感兴趣的读者可以去看《3D数学基础+图形与游戏开发》,已上传,链接地址在本⽂末尾。
⼀、计算机图形学计算机图形学(Computer Graphics)是⼀种使⽤数学算法将⼆维或三维图形转化为计算机显⽰器的栅格形式的科学。
其⼴泛应⽤于游戏、动画、仿真、虚拟现实(VR)、增强现实(AR)等领域。
在数学之中,研究⾃然数和整数的领域称为离散数学,研究实数的领域称作连续数学。
在计算机图形学中,为虚拟世界选择度量单位的关键是选择离散的精度。
⼀种错误的观点认为short、int是离散的,⽽float、double是连续的,⽽事实上,这些数据类型都是离散的。
于是,计算机图形学有如下准则:计算机图形学第⼀准则:近似原则——如果它看上去是对的,它就是对的。
⼆、笛卡尔坐标系2D笛卡尔坐标系是⼀个精确定位点的框架。
2D坐标的标准表⽰法是(x,y),相信⼤家初中都学过。
⼀般,标准的笛卡尔坐标系是x轴向右,y轴向上。
⽽计算机图形学中的屏幕坐标往往是x轴向右,y轴向下。
如图1所⽰。
图1:2D笛卡尔坐标系和2D屏幕坐标系3D笛卡尔坐标系类似,增加了第三个维度,z轴。
3D坐标系分为完全不同的2种坐标系,左⼿坐标系和右⼿坐标系。
判断⽅法为,左⼿坐标系:伸出左⼿,让拇指和⾷指成“L”形,⼤拇指向右,⾷指向上,其余⼿指指向前⽅。
此时,拇指、⾷指和其余三指分别代表x、y、z轴的正⽅向。
右⼿坐标系,相同,只是把左⼿换成右⼿。
如图2所⽰。
图2:左⼿坐标系与右⼿坐标系其中左⼿坐标系⼴泛应⽤于计算机图形学、D3D之中,⽽右⼿坐标系⼴泛应⽤于OpenGL、线性代数、3DSMax之中。