真实感图形生成

合集下载

真实感图形渲染算法的研究与实现

真实感图形渲染算法的研究与实现
定的光 照条 件 , 计算 画 面 上 可见 的各景 物表 面 的光 亮
图案和 细微结 构 。纹 理 映射 大 致 可分 为两 类 , 类 用 一
于 改变物 体表 面的 图案 和颜 色 ; 一类 用来 改 变物 体 另
表 面的法 向量 以产 生 凹 凸不 平 的效 果。 另外 , 还有 人 将 通过扰 动 函数来改 变反射 系数和透 射 系数 来产生 纹
面。本文主要就我们开 发的交 互式 真实感 酉形渲染 系统甲采用的各种渲染 算羞( 度墁冲算法、 搛 1 光线跟踪和辐 射度算 法) 作详细舟
绍。
关键词
真实感 曰形
深度缓冲
光线跟踪 辐射度
RE EA S RCH D EAI ZA 1 AN R I T 0N HI l 0F T RD DⅡ加团 0N GRA I S B RE P ⅡC Y NDE NG  ̄ RI R THl S I V I
o rp is ̄ d n, s e n ga hc e l  ̄tm g
" e ea 黜 ea a w ̄m z—  ̄ r w d he r % * s( h fr c 、 l , h 、y 吨 a
Ke we d y es
) ep rdi e e xlt ndt t ae a

高度 真 实感 图形计算 的步骤 一般 如 下 : 实体 或表 面造型 一>材 质和 纹 理设 置 一 >视 点选
定一 >光 源设 置 一 >光 亮度 计算 一 >色调调 整 一 >颜 色
量 化与 抖 动 一 >显示 图形
收稿 日 : 0 — 4 2 高 永 明 讲师 期 2 1 0— 3 0 主研 领域 : 计算机 体系结
维普资讯
真 实 感 图形 渲 染 算 法 的研 究与 实现

计算机图形学第九章部分

计算机图形学第九章部分

第九章:真实感图形学
精确的重叠测试如果所有测试失败,就必须对多边形在XY平面上的投影作求交计算计算时不必具体求出重叠部分,只要能判断出前后顺序即可最简单的方法是对每对边(一条P边,一条Q边)作线段求交测试,若没有循环重叠情况,则只要求出第一个交点,在交点处进行深度比较即可确定二者顺序画家算法原理简单。其关键是如何对场景中的物体按深度排序它的缺点是只能处理互不相交的面,而且深度优先级表中面的顺序可能出错。在两个面相交,三个以上的面重叠的情形,用任何排序方法都不能排出正确的序。这时只能把有关的面进行分割后再排序
第九章:真实感图形学
否则,窗口内含有两个以上的面,则把窗口等分成四个子窗口。对每个小窗口再做上述同样的处理。这样反复地进行下去。如果到某个时刻,窗口仅有象素那么大,而窗口内仍有两个以上的面,这时不必再分割,只要取窗口内最近的可见面的颜色或所有可见面的平均颜色作为该象素的值
四叉树算法假设全屏幕窗口分辨率为1024×1024。窗口以左下角点(x,y)和边宽s定义。下图为使用栈结构实现的区域子分割算法流图。由于算法中每次递归的把窗口分割成四个与原窗口相似的小窗口,故这种算法通常称为四叉树算法
第九章:真实感图形学
Southerland根据消隐空间的不同,将消隐算法分为三类
物体空间的消隐算法 (光线投射、Roberts) 将场景中每一个面与其他每个面比较,求出所有点、边、面遮挡关系
图像空间的消隐算法 (Z-buffer、扫描线、warnock)对屏幕上每个象素进行判断,决定哪个多边形在该象素可见
消隐的对象是三维物体。三维体的表示有边界表示和CSG(结构实体几何学)表示等。最简单的表示方式是用表面上的平面多边形表示。如物体的表面是曲面,则将曲面用多个平面多边形近似。 消隐结果与观察物体有关,也与视点有关。 按消隐对象分类

使用Blender制作真实感的皮肤和人体模型效果

使用Blender制作真实感的皮肤和人体模型效果

使用Blender制作真实感的皮肤和人体模型效果Blender是一款功能强大的开源三维图形软件,它提供了广泛的工具和功能,可以帮助用户制作出逼真的皮肤和人体模型效果。

在本文中,我将介绍一些使用Blender创建真实皮肤和人体模型的技巧和方法。

首先,为了制作真实的皮肤效果,我们需要使用Blender中的材质和纹理功能。

材质定义了物体表面的外观,而纹理则可以为材质添加细节和纹理效果。

在创建皮肤材质时,我们可以使用Blender的节点编辑器来调整材质的属性。

通过添加节点,我们可以创建不同的材质层,如皮肤表面、血管、斑点等。

在每个材质层中,我们可以使用节点来调整颜色、反射率、粗糙度等属性,使皮肤看起来更逼真。

在添加纹理时,我们可以使用图片纹理和Procedural纹理。

图片纹理可以为皮肤添加细节,如皱纹、斑点等。

我们可以使用皮肤纹理图片,或者使用Blender自带的纹理库,来为皮肤添加自然的细节。

Procedural纹理是通过Blender的固有公式生成的,可以为皮肤添加更多的纹理效果,如皮肤表面的微小颗粒等。

另外,为了使人体模型看起来更真实,我们还可以使用Blender的雕刻工具来添加细节。

雕刻工具可以让用户在模型表面上绘制细小的凹凸,如皱纹、肌肉线条等。

通过调整雕刻工具的强度和笔刷形状,我们可以精确地添加细节,使人体模型看起来更加真实。

此外,使用Blender制作真实的皮肤和人体模型,还需要注意灯光和渲染设置。

好的灯光可以为人物模型提供逼真的阴影效果,增强其真实感。

在Blender中,我们可以使用不同类型的灯光,如点光源、平行光源等,调整其亮度和位置,以获取理想的光照效果。

渲染设置也对最终效果起着重要作用。

在Blender中,我们可以选择不同的渲染引擎,如Cycles和Eevee。

Cycles渲染引擎可以提供更真实的光线追踪效果,而Eevee则可以实时预览渲染效果。

通过调整渲染设置,如采样率、材质反射方式等,我们可以获得逼真的皮肤和人体模型效果。

第十二讲真实感图形的显示

第十二讲真实感图形的显示

Phong对表面法线进行插值
Phong对表面法线进行插值
扫描线
颜色模型
颜色模型是指:某个三维颜色空间中的一个可见光子集,
它包含某个颜色域的所有颜色。例如,RGB颜色模型是在 三维直角坐标颜色系统中的一个单位正方体。颜色模型的用 途是在某个颜色域内方便地指定颜色。任何一个颜色域都无 法包含所有的可见光。
• Gouraud明暗处理:(由Gouraud提 出的强度插值模式)
只在多边形顶点处的平均单位法向量按上式 计算明暗度,而对于多边形内各点,用顶点 的明暗度的线性插值算出。线性插值可以与 扫描线算法配合,用增量计算实现。
• 缺点
要求光源方向与视线的方向比较接近。一般 二者方向角不超过45°为宜。(否则对高 光处理有误)
HSY (Hue, Saturation, Value)
– 色彩、浓度、亮度
纹理
• 纹理:表面细节。 • 颜色纹理:通过颜色色彩或明暗度的变化凸显出来的表面细
节。
• 凸包纹理:由于不规则的细小凹凸造成的表面细节。 • 可以通过纹理映射的方法给计算机生成的物体图象
加上纹理。 • 纹理生成的方法:
在一平面区域(即纹理空间)上预先定义纹理图案;然后建立 物体表面的点与纹理空间的点之间的对应(即映射)。当物体 表面的可见点确定之后,以纹理空间的对应点的值乘以亮度值, 就可以把纹理图案附到物体表面上。可以用类似的方法给物体 表面产生凹凸不平的外观,或称凸包纹理。不过这时纹理值作 用在法向量上,而不是颜色亮度上。
• 线消隐(Hidden-line Removal)
用于线框图,消隐对象是物体上的边,消除 的是物体上不可见的边。
• 面消隐(Hidden-surface Removal)

计算机图形学第四章真实感图形学

计算机图形学第四章真实感图形学
– 物体本身 – 光源 – 周围环境 – 观察者的视觉系统
计算机图形学基础
颜色的特性
• 颜色的三个视觉特性(心理学度量)
– 色调(Hue) 一种颜色区别于其他颜色的 因素,如:红、绿、蓝
– 饱和度(Saturation) 颜色的纯度 – 亮度(Lightness) 光给人的刺激的强度
计算机图形学基础
• 光可以由它的光谱能量分布P() 来表示
– 各种波长的能量
能 量
P()
大致相等,
为白光
400
计算机图形学基础
波长 700 nm
– 各波长的能量


分布不均匀,
为彩色光
– 包含一种波长 的能量,其他
400
能 量
P( )
波长都为零,
是单色光 400
计算机图形学基础
P( )
波长 700 nm
波长
Red: Hue 0, Saturation, 100% Blue: Hue 240, Saturation, 100% Green: Hue 120, Saturation, 100% 亮度(Lightness) 100%, 90%, … , 0%
计算机图形学基础
颜色的物理特性
– 主波长(Dominant Wavelength) 产生颜色光的波长,对应于视觉感知的色调
品红=白-绿
黑=白-红-绿-蓝 黄=白-蓝
红=白-绿-蓝
CMY颜色模型都是面向硬件模型
计算机图形学基础
HSV颜色模型
• HSV颜色模型是面向用户的
• 对应圆柱坐标系的圆锥形子集 绿 V
• 圆锥的顶面对应于V=1
(120度)

1.0

真实感图形的绘制

真实感图形的绘制



• 为了更好地表现出由于物体表面材料不同 而引起的不同视觉感受,表现光源形状、 颜色、及照明区域等因素对照明效果的影 响等,需要建立更能精确反映客观世界的 光照明模型。本章将要介绍的TorranceSparrow 模型和Cook-Torrance模型等就是 这样一些能更好地模拟自然界光照明物理 过程的光照明模型。而一些更为精确的计 算模型,如辐射度算法,则考虑了场景中 光源与物体表面间辐射能量的传递来计算 光强度。
• 包围盒技术是用几何形状相对简单的封闭表面 (如长方体、球、圆柱等)将一复杂景物包裹起 来,如图12.6中的虚线为最简单的椭球形包围盒。 • 优点:场景分层次表示法和包围盒技术用光线与 少量形状简单的包围盒的求交测试取代与大量景 物表面的求交计算,提高了算法效率。 • 缺点:这种方法的问题在于许多情况下简单的包 围盒不能紧密地包裹其中所含的景物,因此降低 了包围盒测试的可靠性。而复杂的包围盒又将导 致光线和包围盒的求交计算变得困难。
12.1.2 Whitted光照明模型
• 规则透射方向t可写成如下形式
t = k f (N 0 − V ′) − N 0
其中
| N0 | kf = [(η 2 / η1 ) 2 | V ' | 2 − | N 0 − V ' | 2 ]1 / 2
下面讨论如何确定 k f
12.1.2 Whitted光照明模型
σσ+
视点 图12.8 BSP树的遍历
Root 1 3 0 2 4 5 6 8 9 1 3 2 0 04 4 5 7 8 6 69 9 13 024 57 689 7 01234 56789
图12.9 二维场景及其BSP树
• 3. 基于网格剖分的光线跟踪 首先求光线在当前网格中的出口,然后将该点沿 光线前进方向做微小移动,使 P 点为光线即将进 入的下一个网格的一个内部点。根据光线前进的 特点,光线位于下一个网格内的区段上各点的参 数值一定大于光线在当前网格内各点的参数。设 光线在当前网格的出口点参数为t(当然它也是下 一个网格的入口参数)。这样只要将t加上一个很 小的正挠动量,就得到点 P 的参数值。确定了 P 的位置就可确定它所在的叶结点空间。然后将光 线与该叶结点空间中所含的景物进行求交测试。 若存在有效交点,则结束光线跟踪;否则继续跟 踪进入相邻的下一空间区域,直至该光线射出空 间或求得有效交点为止。

计算机图形学_第十四章_真实感图形绘制

计算机图形学_第十四章_真实感图形绘制

点表示黑色,其对角线点表示白色,对角线上各点含有等量的各种原色 ,表示辉度等级。坐标轴上的立方体顶点表示原色,而其余相对的顶点 为补色。在立方体范围内的每个彩色点,都可以用三个参数(R,G,B)表 示,值在0~1的范围内。
常见颜色模型
•CMY颜色模型
用青(Cyan)、品红(Magenta)和黄(Yellow)3种原色所定义 的一种彩色模型称为CMY模型。除了是白色而不是黑色位于坐标原点以 外,CMY的坐标空间与RGB的完全相同。 CMY颜色模型适合于硬拷贝设 备的彩色输出 。
简单光照模型
当光照射在一个物体表面上时,会出现3种情形。首先,光 可以通过物体表面向空间反射,产生反射光。其次,对于透明 体,光可以穿透该物体并从另一端射出,产生透射光。最后, 部分光将被物体表面吸收而转化为热。 不包括透射光的简单光照模型。 假设物体不透明,则物体表面呈现的颜色及其光强仅由表 面的反射光决定。通常,反射光被看成是三个分量的组合。这 三个分量分别为:
来定义。
•主波长是所见彩色光中占支配地位的光波长度。
•纯度是光谱纯度的量度,即彩色光中混有白色光的多少
•明度反映了光的明亮程度,即光的强度。
三色学说
1807年,杨(T.Young)和赫姆霍尔兹(H.L.F.von Helmholtz)根据红、绿、蓝三原色可以产生各种色调及灰 度的颜色混合规律,假设在人眼内有3种基本的颜色视觉
漫反射和Lambert模型
在实际使用时,对入射光强按距离平方衰减往往不能 很好地区分点光源在相距较近的景物表面上所产生的光 照效果。 为此,图形学中常采用经验模型来模拟点光源的距离 衰减效果。常用的模型有线性衰减模型,这时, Lambert漫反射模型可改写为:
Kd I I a K a +I p (L N ) d +k

8 真实感图形

8    真实感图形

void CMyView::WLineTo(float X, float Y, float Z,CDC*pDC)// 用三维 点坐标直接从当前点画线到一点的函数 { Project(X, Y, Z); // 将三维点作投影 XScreen = floor(0.5 + XProj * Scale +400); // 圆整(立体在 圆整( 屏幕上初始的X坐标位置 坐标位置) 屏幕上初始的 坐标位置 YScreen = floor(0.5 + 300 - YProj); // 圆整(立体在屏幕上初 圆整( 始的Y坐标位置 坐标位置) 始的 坐标位置) pDC->LineTo(XScreen, YScreen); // 画线到一点 }
void CMyView::Mydraw() { RedrawWindow(); ReadVertics(); ReadFaces(); // 绘出透视投影下的凸多面体图形 VisionPoint(); // 给出视点位置 DrawObject(); // 画出立体的图形 }
三.实验步骤: 实验步骤: 1.建立project; .建立 ; 2.选择欲创建的文档类型; .选择欲创建的文档类型; 3.根据真实感图形生成中的消隐技术,或光照技术,图 .根据真实感图形生成中的消隐技术,或光照技术, 形反走样技术,或阴影生成技术, 形反走样技术,或阴影生成技术,设计出一个具有真实感 图形的程序; 图形的程序; 4.编译,调试,运行,并检查是否得到预期结果; .编译,调试,运行,并检查是否得到预期结果; 5.按要求书写并提交试验报告. .按要求书写并提交试验报告.
void CMyView::NormalVector(int St1, int St2, int St3)// 此函数用表 面三个顶点调用求该表面的法矢 // St_i is the i_th point of a face. { float P1, P2, P3, Q1, Q2, Q3; // 求一个向量 P1 = St[St2][1] - St[St1][1]; P2 = St[St2][2] - St[St1][2]; P3 = St[St2][3] - St[St1][3]; // 求另一个向量 Q1 = St[St3][1] - St[St1][1]; Q2 = St[St3][2] - St[St1][2]; Q3 = St[St3][3] - St[St1][3]; //用向量积求法向量 用向量积求法向量 n1 = P2 * Q3 - Q2 * P3; n2 = P3 * Q1 - Q3 * P1; n3 = P1 * Q2 - Q1 * P2; }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
真实感图形生成
消隐
消隐的概念 消隐算法分类 消隐算法
深度缓存器算法 区间扫描线算法 深度排序算法 区域细分算法 光线投射算法 BSP树算法 多边形区域排序算法
真实感图形生成
消隐的概念
用计算机生成三维物体的真实图形,在用显示 设备描述物体的图形时,必须把三维信息经过 某种投影变换,在二维的显示表面上绘制出来。 由于投影变换失去了深度信息,往往导致图形 的二义性。
z
x
(c)
图9.4 扫描线子区间
真实感图形生成
区间扫描线算法
特殊情形
贯穿情形:为了使算法能处理互相贯穿的多边形, 扫描线上的分割点不仅应包含各多边形的边与扫描线 的交点,而且应包含这些贯穿边界与扫描线的交点。 循环遮挡:将多边形进行划分以消除循环遮挡。
(a)贯穿
(b)循环遮挡
图9.5 多边形贯穿和循环遮挡的情形
真实感图形生成
区域细分算法
真实感图形生成
真实感图形的绘制步骤
1.场景造型
采用数学方法建立三维场景的几何描述并输入到计算机。
2.视域裁剪、消除隐藏面
确定景物中的所有可见面,将视域之外或其它景物遮挡的 不可见面消除。
3.取景变换、透视投影
将三维几何描述转换为二维透视图的内容。
4.绘制真实感图形
根据一定的光照模型和光强度计算,将其转换为适合图形 设备的颜色值,生成投影画面上每个像素的光强度,让观 察者产生身临其境的感觉。
要消除二义性,就必须在绘制时消除被遮挡的 不可见的线或面,习惯上称作消除隐藏线和隐 藏面,或简称为消隐。
消隐实例
真实感图形生成
消隐实例
物体的线框图
经消隐处理后的图形
真实感图形生成
消隐算法分类
按其实现方式分为:
图像空间消隐算法 图像空间(屏幕坐标系)消隐算法以屏幕像素为采样 单位,确定投影于每一个像素的可见景物表面区域, 并将其颜色作为该像素的显示颜色。如深度缓冲器算 法、A缓冲器算法、区间扫描线算法等。
C
C
当处理下一条扫描线y=y-1时,该扫描线上与多
边形相交的最左边(x最小)交点的x值可以利
用上一条扫描线上的最左边的x值计算:
xy1,minxy,min1k
真实感图形生成
深度缓存器算法( Z-buffer)
z(x
, y 1,m in
y
1)
Ax
y 1,m in
B(y,m in
计算机图形学高级话题--
真实感图形生成
真实感图形生成
讲授主要内容:
引言 消隐 真实感图形的绘制 实时真实感图形学技术 总结
真实感图形生成
引言
对于场景中的物体、要得到它的真实感 图形,就要对它进行透视投影,并消除隐藏 面,然后计算可见面的光照明暗效果,最后 在计算机中绘制出让观察者有身临其境感觉 的图形.
假定多边形的平面方程为:Ax+By+Cz+D=0。
z(x,y)AxB yD C
真实感图形生成
深度缓存器算法( Z-buffer)
y 多边形
y
y-1
扫描线
O
x x+1
x
图9.2 利用扫描线的连贯性加快深度的计算
真实感图形生成
深度缓存器算法( Z-buffer)
扫描线上所有后继点的深度值:
z (x 1 ,y ) A (x 1 ) B D y z (x ,y ) A
计算采样点(x,y)的深度z(x,y); 如z(x,y)大于Z缓存中在(x,y)处的值,则把z(x,y)
存入Z缓存中的(x,y)处,再把多边形在z(x,y)处的 颜色值存入帧缓存的(x,y)地址中。
真实感图形生成
深度缓存器算法( Z-buffer)
如何计算采样点(x,y)的深度z(x,y)。
线算法计算效率的关键。
y
A1
B1
B2
A
B
C1
扫描线1
扫描线2
扫描线3
A2
A3
B3
C2
B4 C
C4
C3
O
z
图9.3 区间扫描线算法原理
真实感图形生成
区间扫描线算法
算法
三张表:边表、多边形表、有效边表。 分割子区间,确定子区间上的唯一可见面。
12 3
45
12 3
45
z
xz
x
(a)
(b)
1
2
3 45
P2
P1
(x,y)
屏幕
O
x
z
观察方向:Z轴负向
图9.1 深度缓存器算法的原理
真实感图形生成
深度缓存器算法( Z-buffer)
算法步骤
初始化:把Z缓存中各(x,y)单元置为z的最小值, 而帧缓存各(x,y)单元置为背景色。
在把物体表面相应的多边形扫描转换成帧缓存 中的信息时,对于多边形内的每一采样点(x,y) 进行处理:
景物空间消隐算法 直接在景物(观察坐标系)中确定视点不可见的表面 区域,并将它们表达成同原表面一致的数据结构。如 BSP算法、多边形区域排序算法等。
介于二者之间的算法,如深度排序算法、区域细分 算法、光线投射算法等。
真实感图形生成
基本的原则
排序:各景物表面按照距离视点远近排序,排 序结果用于确定消隐对象之间的遮挡关系。
连贯性:连贯性是指所考察的物体或视区内的 图像局部保持不变的一种性质,用于提高排序 效率。
真实感图形生成
9.1 深度缓存器算法( Z-buffer)
基本原理
帧缓存:保存各像素点的颜色。 Z缓存:保存屏幕坐标系上各像素点所对应的深
度值。
真实感图形生成
深度缓存器算法( Z-buffer)
R y
真实感图形生成
9.3 深度排序算法(画家算法)
算法原理:算法约定距视点近的优先级高, 距视点远的优先级低。生成图像时,优先级 低的多边形先画,优先级高的多边形后画。 这样,后画的多边形就会将先画的多边形遮 挡住,从而达到消隐的效果。
算法的关键是多边形排序。
真实感图形生成
9.4 区域细分算法
算法原理:考察投影平面上的一块区域,如 果可以很“容易”地判断覆盖该区域中的哪 个或哪些多边形是可见的,则可按这些多边 形的光照属性和几何位置计算确定子区域内 各像素的显示颜色;否则就将这块区域细分 为若干较小的区域,并把上述推断原则递归 地应用到每个较小的区域中去。
1) k
B( y
1)
D
C
AB
z( x
y,min, y)
k C
扫描线深度缓存器算法:增加多边形表
真实感图形生成
深度缓存器算法( Z-buffer)
优点
简单 便于硬件实现
缺点
占用太多的存储单元 在实现反走样、透明和半透明等效果方面有困

真实感图形生成
9.2 区间扫描线算法
避免对被遮挡区域的采样是进一步提高扫描
相关文档
最新文档