canon什么牌子| 心率失常是什么意思| 梦见一条小蛇是什么意思| 世界上最小的花是什么花| 什么叫直男| 属羊是什么命| 竖中指什么意思| 胃溃疡可以吃什么水果| 芭菲是什么| 大暑是什么意思啊| 墨绿色是什么颜色| 来姨妈吃什么水果好| 肾结石吃什么食物好| 四个月宝宝可以吃什么辅食| 右眼皮跳有什么预兆| 梦见和别人打架是什么意思| 魔鬼城是什么地貌| 阿尔茨海默症吃什么药| 公务员国考和省考有什么区别| 牛仔裤配什么上衣| 比细菌还小的东西是什么| 白茶属于什么茶类| 白带什么颜色正常| 创伤弧菌用什么抗生素| 两栖动物是什么意思| 蟋蟀喜欢吃什么| 空腹吃西红柿有什么危害| 肺结核是什么病| 流注是什么意思| 父亲节要送什么礼物好| 梦见自己掉头发是什么征兆| 专员是什么级别| 1975年属什么生肖| giuseppe是什么牌子| 泡椒是什么辣椒| 隐喻的意思是什么| 自白是什么意思| 高级别上皮内瘤变是什么意思| 米粉用什么做的| 甲状腺偏高有什么影响| 热伤风吃什么感冒药| 口腔溃疡吃什么药好| 人体电解质是什么| 网是什么结构的字| 葡萄糖属于什么糖| 秦始皇的母亲叫什么名字| 贲门炎吃什么药| 压疮用什么药最快能好| 玻璃体混浊吃什么药好| 过生日送男朋友什么礼物好| 组cp是什么意思| 属兔配什么属相最好| 眼睛大小不一样是什么原因| 红细胞压积什么意思| 中秋节送什么好| 今年二十岁属什么生肖| 恍恍惚惚什么意思| 什么时候量血压最准| 送什么礼品好| 胃不好吃什么水果最好| 蒙昧是什么意思| 钻石王老五是什么意思| 肛门潮湿是什么情况| 谅解什么意思| 什么是996| 笏是什么意思| 单人旁的字和什么有关| 低聚果糖是什么| d二聚体偏高说明什么| 机翻是什么意思| 鼻子上火吃什么药| 铝中毒有什么症状| 小王子讲了什么故事| 什么人不能种生基| 胃溃疡是什么症状| 磁力链接是什么| 里急后重是什么意思| 蔡字五行属什么| 四月初八是什么星座| 君臣佐使是什么意思| 守株待兔是什么意思| 昆明有什么特产| 防蓝光眼镜有什么好处| 打醮是什么意思| 肉桂茶适合什么人喝| 囊肿是什么| 高考600多分能上什么大学| 心脏跳快吃什么药好| 阿托伐他汀治什么病| 6月是什么月| 右侧后背疼是什么原因| 红色的补色是什么颜色| 天麻主治什么病| 16 5是什么码| 纵欲什么意思| 女人代谢慢吃什么效果最快| 木耳不能和什么一起吃| 二八佳人是什么意思| 咳嗽挂什么科| 梦见自己抬棺材是什么意思| 劳热是什么意思| 985是什么意思| 吃叶酸有什么副作用| fizz是什么意思| 爱打扮的女人说明什么| 口水臭是什么原因| 什么是钙化结节| 边沿是什么意思| 斜杠青年什么意思| 芭乐是什么水果| 乔迁送什么花| 中耳炎吃什么药最有效| 处女座男生喜欢什么样的女生| 这是什么石头| 桐字属于五行属什么| david是什么意思| 摩拳擦掌是什么生肖| 子宫内膜息肉吃什么药| 平字五行属什么| 一毛三是什么军衔| 1870年是什么朝代| b站是什么| 梦见灵堂是什么预兆| 可乐饼为什么叫可乐饼| 海马萎缩是什么情况| 水解奶粉是什么意思| 十年粤语版叫什么名字| 附耳是什么| 揩油什么意思| 女人脑供血不足吃什么| 玉米的种子是什么| 窜稀是什么意思| 文爱是什么| 大便粘稠吃什么药| 1955年是什么年| 应用化学是干什么的| 先父什么意思| 牛肉烧什么好吃| 燃气泄露是什么味道| 网球肘用什么方法能彻底治好呢| 索性是什么意思| 正事是什么意思| 腰酸背痛是什么原因| 前额白发是什么原因| 眼睛浮肿是什么原因| 女生学什么专业好| edifice是什么牌子手表| 甲状腺属于什么科室| 小怪兽是什么| 9.20号是什么星座| 做梦遗精是什么原因| 一厢情愿指什么生肖| 老是想睡觉是什么原因| 褶子是什么意思| 高血压检查什么项目| 晚上尿次数多什么原因| 心跳过缓是什么原因造成的| 声援是什么意思| 当归不能和什么一起吃| 早上六点是什么时辰| 口我是什么意思| 什么食物吃了会胀气| 推车是什么意思| 肾钙化灶是什么意思| 空调自动关机什么原因| 什么人不能喝蜂蜜| 蚊虫叮咬红肿用什么药| 白砂糖和冰糖有什么区别| 鸽子公主是什么意思| 肠易激综合征中医叫什么| 女人下面有异味是什么原因| 神经外科主要看什么病| 中年人手抖是什么原因| 肌酐高是什么病| 女人下巴长痘痘是什么原因| 老鼠为什么不碰粘鼠板| 蝙蝠飞到家里是什么预兆| 社保基数什么时候调整| 眼皮肿痛什么原因| 吃什么降胆固醇最快| 丝状疣用什么药膏最好| 淋巴结钙化是什么意思| 15是什么意思| 无致病菌生长是什么意思| 溃疡是什么原因引起的| 胃肠湿热吃什么中成药| 穿山甲用什么中药代替| 亚型是什么意思| 红酒配什么菜| 什么是黄道吉日| 不能晒太阳是什么病| 神经性皮炎吃什么药| 父亲是o型血孩子是什么血型| 什么是细胞| 氟骨症是什么病| 轻度脂肪肝什么意思| 年轻人血压高是什么原因引起的| 邓超的公司叫什么名字| 梦见自己被警察抓了是什么意思| 粉盒和硒鼓有什么区别| 养狗养不活是什么兆头| 闰六月是什么意思| 口蘑炒什么好吃| 辅助生殖是什么意思| 经过的意思是什么| 辛辣食物指的是什么| 蔚姓氏读什么| 太燃了是什么意思| 低血压吃什么药| 为什么割包皮| 精心的什么| 春天都开什么花| 白内障的症状是什么| 尿茶色尿是什么原因| 幼稚细胞是什么意思| 中医学是什么| 大便不成形是什么原因造成的| 乙肝e抗体高是什么意思| 鱼加完念什么| 鱼加思读什么| 作息时间是什么意思| 顺手牵羊是什么生肖| 原始鳞状上皮成熟是什么意思| bpa是什么| 双肺纤维条索是什么意思| 复仇者用什么武器| 胆囊壁稍毛糙是什么意思| 人心叵测什么意思| 球鞋ep是什么意思| 蛞蝓是什么动物| 女人颧骨高有什么说法| 什么是一线城市| jbp什么意思| 文玩是什么| 时柱代表什么| 什么病不能吃玉米| 湖北九头鸟是什么意思| 冬至下雨有什么说法| 血糖低是什么原因引起的| 土地兼并是什么意思| 美国为什么不敢打朝鲜| 苹果煮水有什么功效| pose是什么意思| 旅拍什么意思| 什么季节补钙效果最好| 三色线分别代表什么| 看肺子要挂什么科| 心火旺吃什么药效果最好| 调和油是什么意思| 入户口需要什么资料| 引什么大叫| 痔疮是什么| 愿力是什么意思| 后续是什么意思| 睛可以组什么词| 巨蟹座女生喜欢什么样的男生| 水床是什么| 尿素氮偏低是什么意思| 非淋菌性尿道炎吃什么药最好| 静待花开什么意思| 什么动物最容易摔倒| 众生是什么意思| 梦见大水牛是什么兆头| 来月经喝什么汤好| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 3D图形芯片及3D图像生成算法的原理分析

·太阳宫地区十字口社区福馨苑党员志愿服务队日造..

作者: 时间:2025-08-04 来源:网络 收藏
百度 戴森在1990年设立了一个专门的团队,用旋风分离技术做柴油机尾气颗粒捕获。

一、引言

  3D芯片的处理对象是多边形表示的物体。用多边形表示物体有两个优点:首先是直接(尽管繁琐),多边形表示的物体其表面的分段线性特征除轮廓外可以通过明暗处理(shading)技术消除;其次是仅存储多边形顶点的几何信息,多边形内部每个象素的明暗颜色计算所需的信息由这些顶点信息插值而来,这正是易于用支持的快速明暗处理技术。支持多边形绘制的同样也可以绘制由双三次曲面片表示的物体,通过对这种物体的表面进行三角剖分,用逼近的三角形网格代替原物体的曲面表示就可以做到这一点。当然,用多边形表示物体也有其缺点,如增加了纹理映射和阴影生成的难度,当需要详细表示复杂物体时所需的三角形数量将变得非常庞大。

  将多边形表示的物体显示到计算机屏幕上,这一过程涉及物体在计算机内部的表示方式即物体的数据结构,由物体组成的场景的组织结构,物体从场景到屏幕空间要经过的一系列变换,以及产生最终屏幕图象要经过的一系列光栅化处理。这些方面都涉及到特定的处理算法,相应的算法又有许多不同的变种。下面仅就3D芯片涉及的过程及相关算法做一简单分析介绍,这些是理解3D的基础。

二、3D物体的表示法

  具有复杂外形的物体其表面可以由多边形面片来近似表示。以图1的圆柱为例,其柱面可以由2N个三角形近似,其两端可以由两个N边形来近似。多边形模型在其轮廓上的分段线性特征是这一表示法主要的视觉缺陷,改进的唯一途径是增加多边形的分辨率。对于一个复杂形体来说,为了充分表示其细节,常常要用到十万个以上的多边形。这将耗费许多数据库访问时间和绘制时间。当将多边形模型进行放大处理时,会产生连接问题。这就是所谓的“几何走样”。物体的多边形表示既可以通过交互设计人工提取,也可以通过激光扫描设备得到。总之,多边形表示的物体并不特别适合于交互操作或做自由的形状改变。当改变物体的形状时很难保证多边形表示的完整性得到保持。

  对多边形明暗着色所需要的信息存储在一个分层的数据结构中,每一个物体表面由指向多边形表的指针定义,该多边形表包含了近似该表面的一组多边形,每一个多边形由指向顶点表的指针定义,顶点表包含了每个多边形的所有顶点。具体来说需要为每个多边形存储以下信息:

  1)多边形的顶点表,每一个顶点是一个三维坐标,该坐标定义在创建该物体时的局部坐标系中。

  2)顶点的法向量表,这是明暗处理算法所要求的信息。向量由同一局部坐标系中的三分量表示。

  3)多边形的法向量,它是包含该多边形的平面的真正的几何法向量。这是背面删除操作所需要的信息。

  绘制多边形物体的传统方法是将多边形作为独立的绘制实体,这样多边形之间的共享边就要被处理两次。为避免这种情况,可采用基于边的绘制方法,这时多边形的表示是基于多边形的边而不是多边形本身。基于边的方法意味着绘制过程的组织要采用基于扫描线的算法,基于扫描线的算法将同时处理与当前扫描线相交的所有多边形。这时存储器中能存储的可被同时处理的多边形的最大数目将成为可绘制的场景复杂度的上限。使用全屏Z-buffer并将扫描线算法局限在物体所包含的多边形上就可以解决这一问题。

三、坐标系统

  绘制过程的几何处理部分可被看成应用一系列的坐标变换将物体数据库变换到一系列的坐标系下,这些坐标系对所有绘制系统都是公用的,是理解3D图形学的基础。用计算机生成图象的一系列基本操作与绘制过程要经历的一系列空间即坐标系有关。随着绘制过程的进行处理将从一个空间进入下一个空间。已完整地建立起描述这些变换的方法。在对物体实施变换时希望对顶点和顶点的法向量使用相同的变换矩阵。事实上,当变换在所有方向并不相同时,顶点法向量必须采用不同的变换矩阵。由于单位法向量经过变换之后其长度不一定仍保持不变,因而必须对其进行重新单位化处理(单位法向量是光照计算所要求的)。

  1.局部坐标系(局部空间)

  为了建模和进行局部变换的方便可选择被建模物体之内或附近的某一点作为局部坐标系的原点。例如可选择一个立方体的某一顶点作为坐标原点,三个坐标轴即是与该顶点相连的立方体的三条边。在局部坐标系选定之后,物体各顶点的局部坐标以及相对于该局部坐标系的各顶点的法向量和物体上多边形的法向量就可以被提取并存储起来。

  2.世界坐标系(世界空间)

  当每一个物体在其局部坐标系中被建立起来之后,就需要将其放置到将要绘制的场景之中。组成场景的每个物体都有自己独立的局部坐标系。整个场景的坐标系就是所谓的世界坐标系。场景中的所有物体都必须从自己的局部坐标系中变换到世界坐标系中以定义场景中物体之间的空间相对关系。如果一个物体在场景中被定义为运动的,则必须为该物体定义一个随时间变化的变换序列以便在每一帧将该物体变换到世界坐标系中的不同位置。场景中的光源也在世界坐标系中定义。如果光照计算是在世界空间中进行,则对物体法向量的变换到此为止。对物体表面属性如纹理、颜色等的定义和调整也在世界空间中进行。

  3.眼睛坐标系、相机坐标系或观察坐标系(眼睛空间)

  眼睛坐标系统是用来建立对世界空间进行观察时的观察参数和观察范围的。在图形学中通常用假想的相机来辅助对观察系统的理解。一个假想的相机可以以任意方向放置在世界空间的任何位置,胶片平面在图形学中就是观察平面,也就是场景将投影到其上的平面。建立一个普遍适用的观察空间相当繁琐,在多数情况下是对眼睛坐标空间做许多限制。一个最小的实用系统可以这样建立,首先要求眼睛坐标系的原点和投影中心是世界坐标系中的同一个坐标点;其次要求观察平面的法向量和观察方向在眼睛空间中与Z坐标轴重合;最后,观察方向必须是这样的,当相机朝着Z轴的正向时Z值的增加将远离眼睛的位置,同时在左手坐标系的前提下,X轴指向右,Y轴向上。满足这一要求的系统就可以使假想的相机以任何观察方向放置在世界坐标空间中的任何位置。图2 是有关坐标系之间的关系。

  眼睛坐标系是最适宜做背面删除的空间。背面删除操作是将背对观察者的多边形全部剔除,在场景中这些多边形对于观察者来说是不可见的。如果对一个凸物体做背面删除,则可以完全解决其隐藏面问题。对于具有凹面的物体而言这一操作并不能解决隐藏面问题。背面删除操作是通过计算多边形所在平面的法向量与视线向量之间的夹角来决定该平面是否可见。如果这两个向量的点积大于0,意味着其夹角小于90o 即该多边形是可见的,否则为不可见。视线向量是从多边形指向视点的向量。多边形平面的法向量可通过其不共线的三个顶点计算而得。多边形的法向量必须指向物体的外部,为保证这一点,多边形的顶点必须以反时针方向(从多边形外部看时)顺序存储。如图3所示。

  4.屏幕坐标系(屏幕空间)

  屏幕空间是比较难于靠直觉理解的一种空间概念。它是描述如何观察场景的方法的过程,与透视几何有关,也可以理解为怎样定义场景中能够到达眼睛(或相机)的光线的过程。将场景中的一个点投影到距离视点为D的观察平面或屏幕要用到的基本变换是透视变换,屏幕或观察平面的法向与观察方向一致。从图4可以看到,运用相似三角形原理,点P在屏幕上的投影P’(Xs= Dxe/Ze, ys=Dye/Ze)。屏幕与观察平面略有不同,屏幕是观察平面上的一块矩形区域,在经过一个与设备有关的变换之后,可以从观察平面坐标求得屏幕坐标。屏幕空间的定义使得其只对一个封闭空间中所包围的场景进行绘制处理,这个封闭的空间称作视锥台。它可以这样来描述:设想在距离视点D处的观察平面上有一尺寸为2h的正方形窗口,且该窗口关于观察方向是对称的,则平面

xe=±hze/D ye=±hze/D
ze=D ze=F

将构成一个封闭的锥台。其中xe、ye 、ze是指眼睛坐标系中的坐标,而平面ze=D和平面ze=F分别称作近处和远处的裁剪平面,它们垂直于观察方向,在此我们假设观察平面与近处的裁剪平面重合。如图4所示。对于透视投影而言,通过连接窗口角与投影中心就形成所谓的视锥体。

  有了这个视锥体,就可以用它对已变换到眼睛坐标系下的场景进行选择。这不外有三种情况,对于那些完全落在视椎台之内的物体,直接通过透视变换将其变换到屏幕坐标系下;对于那些完全落在视椎台之外的物体不作进一步的处理而直接抛弃;对于那些与视椎台的面相交的物体则应作裁剪处理,裁取其位于锥台内的部分并用透视变换将它们变换到屏幕坐标系下。在屏幕坐标系下,Z坐标将作为判断物体面之间相互遮挡的唯一判据。

注意,场景中的每个物体的每个三角形都要经过以上处理过程。

四、象素处理

  经过以上一系列的变换之后,一个多边形已变换到屏幕坐标系下。将一个屏幕多边形在屏幕上绘制出来就是多边形的象素处理过程,它包括光栅化、隐藏面消除、明暗处理。光栅化、隐藏面消除、明暗处理是整个3D图形生成过程中最内层的处理。他们是三个二维插值过程。光栅化是用屏幕空间三角形的顶点坐标插值,以求得三角形的边所截取的三角形内扫描线段的端点坐标,并进而求得所截扫描线段上的象素坐标。隐藏面消除则是通过对屏幕空间三角形顶点的深度值(Z坐标)进行插值,从而获得三角形内扫描线段上每个象素的深度值。明暗处理是用同样的方法由顶点光强求得三角形内扫描段上每个象素的光强。这三种处理的算法具有相同的数学表示形式,只需将坐标、深度或光强代入该方程就可以得到相应的结果。总之,场景的绘制过程可概括为:

  对场景中的每个物体的每个多边形做几何变换将其变换到屏幕空间;

对多边形内的每一个扫描段求出其端点及其上每个象素的坐标;

对扫描段上的每个象素做隐藏面消除处理及明暗处理。

  1.光栅化

  光栅化处理通过插值求得三角形内扫描段的x坐标的起点和终点。问题是何处是终点和起点?当使用实数坐标时在象素之内的何处进行采样,屏幕坐标是取整数还是保留小数精度?这些问题如果处理得不好,就会在多边形之间产生孔洞,产生重叠的多边形,这会在透明效果处理时产生严重问题。如果反走样处理不精确,则会在带有纹理的表面上产生纹理不连续现象。例如,如果对屏幕坐标取整,则屏幕多边形的顶点将延伸或缩回到离它最近的象素,这样多边形的大小将发生微小的变化,而且不能用密集采样进行反走样处理,动画中的“颤抖”现象便是由此而引起的。在象素内何处采样并不重要,重要的是对象素采样的处理必须一致。

  2.隐藏面消除

  全屏幕Z-Buffer(深度缓存器)算法已成为图形学事实上的标准隐藏面消除算法,他虽然简单但存储要求很高。Z-Buffer算法可看作是工作在三维屏幕空间。每一个象素有一个二维屏幕空间坐标( xs , ys )和由眼睛空间顶点的深度值插值而得到的z深度值。深度缓存器开始时被初始化为远处裁剪平面的深度,对每一个象素比较其插值得到的深度值与已存储在深度缓存中( xs , ys )处的值,如果该值小于存储值,则新计算的象素更靠近观察者。这时新计算的象素的明暗处理值将覆盖帧缓存中的旧值,深度存储器中的值也换成新计算的值。深度缓存器算法对场景数据库组织及场景复杂性没有限制。在处理复杂场景或物体时,应保证足够的深度精度。

  3.明暗处理

  首先计算多边形顶点的明暗参数,然后在多边形平面上进行插值。这样绘制出的物体不但具有很强的三维立体感,而且消除了用于近似曲面的多边形之间的公用边所形成的不连续特征。实现这一处理方式的算法有两种,一种称作Gouraud明暗处理,一种称作Phong明暗处理(均以发明者的名字命名)。这也是基于多边形的绘制日益受欢迎的一个重要原因。Gouraud明暗处理的速度快,但不能产生精确的高光效果,通常用在对速度要求高的场合,如飞行模拟、交互式CAD应用等。Phong明暗处理可以生成高质量的图像,但将耗费庞大的硬件资源。Gouraud明暗处理仅在多边形的顶点使用局部反射光照模型计算光强,然后使用顶点处的光强通过插值求出多边形内各象素的光强值。而Phong明暗处理则对顶点的法向量进行插值,并对多边形内的每一个象素用局部反射光照模型计算其光强。一般说来,多边形顶点的光强是顶点的法向量相对于光源和视点的方向的函数,这就是所谓的局部反射光照模型。顶点的法向量用来近似原物体表面在该点处的法向量,通过平均公用该顶点的所有多边形的法向量求得。

  Gouraud明暗处理仅与局部光照模型中的漫反射分量一起使用,这是因为当高光点完全落在多边形之内时,其对多边形顶点处没有任何影响。该方法是目前3D图形硬件都支持的唯一的明暗处理方法。

  4.特殊效果

纹理映射、透明以及雾化(大气效应)等真实感效果都是在象素处理阶段实现的。物体表面纹理的定义是在世界坐标系中进行的,通过预处理,每个带有纹理的多边形在其顶点数据中建立了与相应纹理图的映射关系。在绘制带有纹理的多边形时,其相应的纹理图也同时被加载到纹理存储器中,在求出物体上象素坐标的同时其相应的纹理坐标也被计算出来。用该纹理坐标从纹理存储器中读出相应纹理象素的值,将其与明暗处理的结果进行混合就得到要显示的象素值。雾化(大气效应)则是在计算出的象素值上乘上一个与深度有关的衰减因子。对落在同一屏幕位置的象素点的象素值按其所属物体的透明系数进行加权融合就可以产生透明效果。

五、结束语

  3D图形应用对计算和存储资源的巨大需求以及3D图形生成算法与传统计算机体系结构的不相适应产生了3D图形硬件。PC机上的3D图形硬件的出现只是最近几年的事,它是技术进步和市场推动的结果。目前,3D图形硬件既有高端的专用图形工作站也有入门级的图形加速卡,任何更好更快的图形效果的获得都需要付出巨大的硬件代价。

全息投影相关文章:全息投影原理


评论


相关推荐

技术专区

关闭
腿脚浮肿是什么原因引起的 活力是什么意思 指甲盖上有竖纹是什么原因 hpv检查前需要注意什么 水球是什么
生吃紫苏叶有什么功效 皮肤上有小白斑点是什么原因 小朋友口臭是什么原因 什么是君子 晚上尿次数多什么原因
好奇的什么 流火是什么原因造成的 王晶老婆叫什么名字 什么是平年什么是闰年 高血压变成低血压是什么原因
有什么故事 颈管细胞有是什么意思 咳黄痰吃什么药 哺乳期可以喝什么饮料 热毒吃什么药
子宫肌瘤吃什么好hcv8jop6ns3r.cn 判决书什么时候生效hcv8jop2ns3r.cn 红色加黄色是什么颜色hcv8jop3ns9r.cn mdzz是什么意思hcv9jop3ns9r.cn 大便干吃什么药hcv9jop6ns2r.cn
电磁炉用什么锅hcv9jop1ns8r.cn 10月21是什么星座hcv8jop2ns3r.cn 腊月是什么星座hcv9jop8ns0r.cn 小孩贫血有什么症状hkuteam.com 什么地问填词语hcv7jop9ns5r.cn
闰月鞋买什么颜色sanhestory.com 梦见车丢了是什么征兆hcv9jop4ns4r.cn 虫草什么时候吃最好shenchushe.com 发物有什么hcv7jop4ns6r.cn complex是什么意思hcv8jop2ns3r.cn
青少年吃什么钙片有助于长高hcv9jop0ns8r.cn 柔软的近义词是什么hcv7jop4ns7r.cn 短杆菌是什么意思hcv9jop1ns9r.cn 中科院是干什么的hcv9jop5ns4r.cn 今天中午吃什么hcv8jop6ns1r.cn
百度