当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]一、引言3D芯片的处理对象是多边形表示的物体。用多边形表示物体有两个优点:首先是直接(尽管繁琐),多边形表示的物体其表面的分段线性特征除轮廓外可以通过明暗处理(shadi

一、引言

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所示。[!--empirenews.page--]

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坐标) 进行插值,从而获得三角形内扫描线段上每个象素的深度值。明暗处理是用同样的方法由顶点光强求得三角形内扫描段上每个象素的光强。这三种处理的算法具有相同的数学表示形式,只需将坐标、深度或光强代入该方程就可以得到相应的结果。总之,场景的绘制过程可概括为:

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

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

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

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为抢攻AI PC商机,苹果(Apple)预计7日亮相的新iPad Pro率先搭载自研M4芯片,并挟M4芯片强势登场之势为Mac全系列改头换面,首批M4 Mac估今年底至明年初陆续上线;据悉苹果M4采台积电N3E制程,随苹...

关键字: 台积电 3nm 苹果 M4 芯片

4月30日消息,西安紫光国芯UniIC宣布正式推出全新SSD产品,共有四大系列,包括面向行业应用的高端产品“CTD700”、

关键字: 紫光展锐 芯片

TWSC 2985系列SD6.0存储芯片 国内首颗支持4K LDPC纠错技术 增强纠错、耐久可靠、性能升级

关键字: 德明利 半导体 存储 芯片 国产存储企业

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

其最新一代开创性系统集成芯片及配套软件将为4600万辆汽车提供更多安全和便利功能 上海2024年4月17日 /美通社/ -- Mobileye今日宣布,其已向客户交付其最新的EyeQ™6 Lite (EyeQ...

关键字: 芯片 MOBILEYE ADAS 自动驾驶

随着2024年的到来,北斗系统建设已走过栉风沐雨、接续奋斗的30年,几代北斗人也走过了北斗系统建设从无到有,从有源定位到无源定位,从服务中国到服务亚太,再到全球组网的“三步走”发展历程。

关键字: 华大北斗 芯片

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...

关键字: MCU 芯片 半导体

今日凌晨,中国台湾东部的花莲县连续发生地震,最高强度为6.3级,震源深度10公里,据中国地震台网分析,本次地震均为4月3日台湾花莲县海域发生的7.3级地震的余震。中国台湾地区在全球半导体供应链中扮演者重要角色,其10nm...

关键字: 固态硬盘 芯片 存储

在科技飞速发展的今天,电子设备已经成为了我们日常生活中不可或缺的一部分。而在这些电子设备的内部,一个不可或缺的组成部分便是开关电源芯片。作为电源管理集成电路的核心,开关电源芯片在电子设备中发挥着至关重要的作用。本文将深入...

关键字: 开关电源 芯片

开关电源芯片作为电子设备中的重要组成部分,是实现电源转换和管理的核心器件。随着科技的不断进步,开关电源芯片的种类也在不断增加,各具特色,满足了不同设备和应用场景的需求。本文将深入探讨开关电源芯片的种类及其科技应用,带领读...

关键字: 开关电源 芯片
关闭
关闭