3D API (3D应用程序接口)
IR JN
Application Programming Interface(API)应用程序接口,是许多程序的大集合。3D API能让编程人员所设计的3D软件只要调用其API内的程序,从而让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。几乎所有的3D加速芯片都有自己专用的3D API,目前普遍应用的3D API有DirectX、OpenGL、Glide、Heidi等。 idsBw!DB
gxnIur)
Direct 3D X1*f#3cm#
微软公司于1996年为PC开发的API,与Windows 95 、Windows NT和Power Mac操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基本上是免费使用的。由于要考虑与各方面的兼容性,DirectX用起来比较麻烦、在执行效率上也未见得最优,在实际3DS MAX的运用中效果一般,还会发生显示错误,不过总比用软件加速快。 WbJ|]}hJ\
+@] ,JlYf
OpenGL (开放式图形接口) X* 4C?v
是由SGI公司开发的IRIS GL演变而来的复杂3D图形设计的标准应用程序接口。它的特点是可以在不同的平台之间进行移植;还可以在客户机/服务器系统中并行工作。效率远比Direct 3D高,所以是各3D游戏开发商优先选用的3D API。不过,这样一来就使得许多精美的3D游戏在刚推出时,只支持3Dfx公司的VOODOO系列3D加速卡,而其它类型的3D加速卡则要等待其生产厂商提供该游戏的补丁程序。由于游戏用的3D加速卡提供的OpenGL库都不完整,因此,在3DS MAX中也会发生显示错误,但要比Direct 3D强多了! ]2E#P.-!b
%#t*3[
Heidi 'h}(> %
又称为Quick Draw 3D,是由Autodesk公司提出来的规格。它是采用纯粹的立即模式接口,能够直接对图形硬件进行控制;可以调用所有显示卡的硬件加速功能。目前,采用Heidi系统的应用程序包括3D Studio MAX动画制作程序、Auto CAD和3D Studio VIZ等软件。Autodesk公司为这些软件单独开发WHIP加速驱动程序,因此性能优异是非常明显的! .`p,pt;
E' -lpE
Glide s.|OdC>U =
是由3dfx公司开发的Voodoo系列专用的3D API。它是第一个PC游戏领域中得到广泛应用的程序接口,它的最大特点是易用和稳定。随着D3D和OpenGL的兴起,已逐渐失去了原来的地位。 6-E>-9]'E
.A6D&-&z
PowerSGL H(?)v.%
是NEC公司PowerVR系列芯片专用的程序接口。 M.FY4~
Cv[_N%3[
3D特性: Alpha Blending (α混合) R?{f:,3R
简单地说这是一种让3D物件产生透明感的技术。屏幕上显示的3D物件,每个像素中有红、绿、蓝三组数值。若3D环境中允许像素能拥有一组α值,我们就称它拥有一个α通道。α值的内容,是记载像素的透明度。这样一来使得每一个物件都可以拥有不同的透明程度。比如说,玻璃会拥有很高的透明度,而一块木头可能就没什么透明度可言。α混合这个功能,就是处理两个物件在萤幕画面上叠加的时候,还会将α值列入考虑,使其呈现接近真实物件的效果。 =/5^/vwgY
GFGW'}w-
Fog Effect (雾化效果) ycq+C8J+Ep
雾化效果是3D的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果。它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果,这样可以保证远景的真实性,而且也减小了3D图形的渲染工作量。 !$u:[T_8
i?wEd!=w
Attenuation (衰减) b :WA}x V
在真实世界中,光线的强度会随距离的增大而递减。这是因为受到了空气中微粒的衍射影响,而在3D Studio MAX中,场景处于理想的“真空”中,理论上无这种现象出现。但这种现象与现实世界不符,因此为了达到模拟真实的效果,在灯光中加入该选项,就能人为的产生这种效果! 8:t!m>(*
2#
72B
Perspective Correction (透视角修正处理) .;\uh$c
它是采用数学运算的方式,以确保贴在物件上的部分影像图,会向透视的消失方向贴出正确的收敛。 F(O"S@
joz0D!-"#
Anti-aliasing (抗锯齿处理) 3</W}]$)p
简单地说主要是应用调色技术将图形边缘的“锯齿”缓和,边缘更平滑。抗锯齿是相对来来说较复杂的技术,一直是高档加速卡的一个主要特征。目前的低档3D加速卡大多不支持反锯齿。 A"tE~m;"7
nsL"'iQ
Adaptive Degradation (显示适度降级) C5Vlqc;
在处理复杂的场景时,当用户调整摄象机,由于需要计算的物体过多,不能很流畅的完整整个动态显示过程,影响了显示速度。为了避免这种现象的出现,当打开在3D Studio MAX中打开Adaptive Degradation时,系统自动把场景中的物体以简化方式显示,以加快运算速度,当然如果你用的是2-3万的专业显卡,完全不用理会! 5GK> ~2c(
^(kmF UV,Z
Z-Buffer (Z缓存) @.&KRAZ
Z-buffering是在为物件进行着色时,执行“隐藏面消除”工作的一项技术,所以隐藏物件背后的部分就不会被显示出来。 |LV}kG(2
在3D环境中每个像素中会利用一组数据资料来定义像素在显示时的纵深度(即Z轴座标值)。Z Buffer所用的位数越高,则代表该显示卡所提供的物件纵深感也越精确。目前的3D加速卡一般都可支持16位的Z Buffer,新推出的一些高级的卡已经可支持到32位的Z Buffer。对一个含有很多物体连接的较复杂3D模型而言,能拥有较多的位数来表现深度感是相当重要的事情,3D Studio MAX最高支持64位的Z-buffer。 ^HhV?Iqg
;n q"jm
W-Buffer (W缓存) DD5cUlOSu
与Z-buffer作用相似,但精度更高,作用范围更小,可更为细致的对物体位置进行处理。 ;fW`#aE
8vkCmV
G-Buffer (G缓存) EtnuEU
G-buffering是一种在Video Post中基于图象过滤和图层事件中可使用的物体蒙板的一种着色技术。用户可以通过标记物体ID或材质ID来得到专用的图象通道! redMlHM
WA6reZ
A-Buffer (A缓存) `h%K8];<6f
采用超级采样方式来解决锯齿问题。具体方法是:使用多次渲染场景,并使每次渲染的图象位置轻微的移动,当整个渲染过程完结后,再把所有图象叠加起来,由于每个图象的位置不同,正好可以填补图象之间的间隙。该效果支持区域景深、柔光、运动模糊等特效。由于该方式对系统要求过高,因此只限于高端图形工作站。 dQn,0
s6F0&L;N&
T-Buffer (T缓存) cYgd1
由3DFX所公布的一种类似于A缓存的效果,但运算上大大简化。支持全场景抗锯齿、运动模糊、焦点模糊、柔光和反射效果。 kyi"U A82
z"nMR_TTu
Double Buffering (双重缓冲区处理) YEa<zhO8
绝大多数可支持OpenGl的3D加速卡都会提供两组图形画面信息。这两组图形画面信息通常被看着“前台缓存”和“后台缓存”。显示卡用“前台缓存”存放正在显示的这格画面,而同时下一格画面已经在“后台缓存”待命。然后显示卡会将两个缓存互换,“后台缓存”的画面会显示出来,且同时再于“前台缓存”中画好下一格待命,如此形成一种互补的工作方式不断地进行,以很快的速度对画面的改变做出反应。 f
AY(ro9Q(
A]laS7Q
IK (反向运动) }<qZXb1
Inverse kinematics(IK)反向运动是使用计算父物体的位移和运动方向,从而将所得信息继承给其子物体的一种物理运动方式。 ,|g&v/WlC%
g@'2 :'\
Kinematic Chain (正向链接运动) (A )f
r4
Kinematic Chain正向链接运动是定义一个单一层级分支,使其分支下的子物体沿父物体的链接点运动。 Nwj M=GG
q`VkA
\
NURBS x4i&;SP0
Non-Uniform Rational B-Splines(NURBS)是一种交互式3D模型曲线&表面技术。现在NURBS已经是3D造型业的标准了。 \9fJ)*-
;m=k
FZ?
2-sided (双面) n8E3w:A-
在进行着色渲染时,由于物体一般都是部分面向摄象机的,因此为了加快渲染速度,计算时常忽略物体内部的细节。当然这对于实体来说,不影响最终的渲染结果;但是,如果该物体时透明时,缺陷就会暴露无疑,所以选择计算双面后,程序自动把物体法线相反的面(即物体内部)也进行计算,最终得到完整的图象。 An_3DrUFV_
B)*1[Jf{4
Material ID (材质标识码) }hE!0q~MfM
通过定义物体(也可以是子物体)材质标识码,来实现对子物体贴图或是附加特殊效果,重要的是现在一些非线型视频编辑软件也支持材质标识码。 ;qO3m-(d
Mp QsM-iW
Voxels (三维像素) F}.R-j#
三维像素是一种基于体积概念的像素。通常的普通像素只需要X、Y轴两个坐标来定位它在空间中的方位。而它还需要加进一个额外的Z轴坐标,相当于空间中一个非常小的立方体。由于它本身就有很多细节可以单独描写,所以直接就能生成物体。但是,这种技术应用不广泛,原因在于它的运算量相当大,但是效果相当理想。 ]VR79l
[b+B"f6
Polygon (多边形) K]1|#`n
Polygon是由许多线段首尾相连构成的封闭图形,其中每两条线段所构成的点被称为Vertices(顶点)。许许多多的多边形搭配在一起就构成了各种各样的三维物体,数量越多则细节描写越清晰。 p//mVH%
9?q ^yy
Alpha Channel (Alpha通道) JXjH}C
在24位真彩色的基础上,外加了8位的Alpha数值来描述物体的透明程度。 ? o&goiM
4k9$'
k
Dithering (抖动显示) HVdB*QEH
它是一种欺骗你眼睛,使用有限的色彩让你看到比实际图象更多色彩的显示方式。通过在相邻像素间随机的加入不同的颜色来修饰图象,通常这种方式被用颜色较少的情况下。 t3 3\f<e
PMi.)%++
MMX指令集 #
0d7
MMX指令集实质是一种SIMD数据处理方式(单指令流,多数据流)。由Intel公司开发,它允许CPU同时对2-4个甚至8个数据进行并行处理。它有效的提高了CPU对视频、音频等多媒体方面的处理速度,但3D运算多为浮点运算,而MMX指令集对CPU的浮点运算能力没有什么贡献,因此MMX指令集在制作3D上没有实际意义。 HzL~B#
3D Now!指令集 !UR3`Xk
3D Now!是一种3D加速指令集,由AMD公司开发。它也是一种SIMD数据处理方式,但它的加速对象却是CPU浮点运算。它是一个时钟周期内可以同时处理4个浮点运算指令或两条MMX指令。 s",G
w]8
Q,M,^_
SSE指令集 T_qM@/f
SSE是Streaming SIMD Extension的缩写,也叫KNI指令集。它是被嵌套在Intel Pentium III处理器中的第二套多媒体专用指令集。与MMX指令集不同的是SSE的主要作用是加速CPU的3D运算能力。它总计包括70条指令,50条SIMD浮点指令,主要用于3D处理。12条新MMX指令,8条系统内存数据流传输优化指令。 ?\I@w4
XqU0AbQ
AGP DR
@yd,
AGP是Accelerated Graphics Port(加速图形端口)的缩写,由Intel公司开发的新一代局部图形总线技术。它允许显卡在显存不足的情况下,直接调用系统主内存。AGP分为:1x、2x、4x三个标准,AGP1x标准为66MHz,2x标准为133MHz,4x标准为266MHz。 HWIn.ij
1,:QrhC
GPU (图形处理器) fRxn,HyV
n VIDIA公司新一代3D加速芯片GeForce 256。它是集成有几何引擎、光照引擎、三角形设置、图形裁剪引擎、纹理渲染引擎,处理能力为每秒1000万个以上多边形的单芯片图形处理器。 n2dOCntN>
D^xg2D
显存类型 :]4s;q:m
1.FPM DRAM(快页RAM) r:PYAb=g
FPM是Fast Page Mode RAM的缩写。它是早期的标准,后被比它快5%的EDO DRAM所取代。 g##<d(e!}
2.EDO DRAM(扩展数据输出DRAM) JC`;hY
EDO DRAM是Extended Data Out DRAM的缩写。对DRAM的访问模式进行一些修改,缩短了内存有效访问时间。 KSJ+3_7]k
3.VRAM(视频RAM) gil:SUW1r
VRAM是Video RAM的缩写。这是专门为了图形引用优化的双端口存储器(可同时与RAMDAC以及CPU进行数据交换),能有效的防止在访问其他类型的内存时发生的冲突。 /l$fQ:l
4.WRAM(增强型VRRAM) ;s #I b_
WRAM是Windows RAM的缩写。其性能比VRAM提高20%,可加速常用的如传输和模式填充等视频功能。 )Y&B63]B
5.SDRAM(同步DRAM) k%8kt4\wn6
SDRAM是Synchronous DRAM的缩写。它与图总线同步工作,避免了在系统总线对异步DRAM进行操作时间步所需的额外等待时间,可加快数据的传输速度。 U# IPYyV
6.SGRAM(同步图形RAM) 2s=zT5
SGRAM是Synchronous Graphics DRAM的缩写。它支持写掩码和块写能够减少或消除对内存的读-修改-写的操作。SGRAM大大加快了显存与总线之间的数据交换速度。 I]HLWF
7.MDRAM(多段DRAM) c_,pd
MDRAM是Multibank RAM的缩写。它可以划分多个独立的有效区段,减少了每个进程在进行显示刷新、视频输出或图形加速时的耗费。 QE pCU)
8.RDRAM TD-B\ @_
主要用于特别高速的突发操作,访问频率高达500MHz,而传统的内存只能以50MHz或75MHz进行访问。RDRAM的16Bit带宽可达1.6Gbps(EDO的极限带宽是533Mbps),32Bit带宽更是高达4Gbps。 r oPC
^Q
R%~~'/2V
IGES (初始化图形交换规范) '"XVe+.O
The Initial Graphics Exchange Specification(IGES)是被定义基于Computer-Aided Design (CAD)&Computer-Aided Manufacturing (CAM) systems (电脑辅助设计&电脑辅助制造系统)不同电脑系统之间的通用ANSI信息交换标准。3D Studio MAX可以实现这种IGES格式以用于机械、工程、娱乐和研究等不同领域。用户使用了IGES格式特性后,你可以读取从不同平台来的NURBS数据,例如:Maya、Pro/ENGINEER, SOFTIMAGE, CATIA等等软件。为了得到完整的数据,建议使用5.3版本的IGES格式。 A6+qS
[
>0u*E *Y
NTSC (全国电视系统委员会制式) eY%Ep=J
National Television Standards Committee(NTSC),它是用于北美、中南美洲大部分地区和日本的一种视频标准。它定义帧速为30/S或60扫描场,并且在电视上以隔行扫描。 q,_EHPc
tKeozV[V
PAL (逐行倒相制式) ?9 W2ax-4
Phase Alternating Line(PAL)是一种用于大多数欧洲和亚洲、南亚、中亚等国家的视频标准。它定义帧速为25/S或50扫描场,并且在电视上以逐行扫描。 EiP N44(
|9F-ZH~6
Mapping(贴图处理) aO}p"-'
vXZP>
Texture Mapping (纹理贴图) (uX"n`Dk
在物体着色方面最引人注意、也是最拟真的方法,同时也多为目前的游戏软件所采用。一张平面图像(可以是数字化图像、小图标或点阵位图)会被贴到多边形上。例如,在赛车游戏的开发上,可用这项技术来绘制轮胎胎面及车体着装。 I.Xbowl
unRFcjEa
Mip Mapping (Mip贴图) Ki1 zi~
这项材质贴图的技术,是依据不同精度的要求,而使用不同版本的材质图样进行贴图。例如:当物体移近使用者时,程序会在物体表面贴上较精细、清晰度较高的材质图案,于是让物体呈现出更高层、更加真实的效果;而当物体远离使用者时,程序就会贴上较单纯、清晰度较低的材质图样,进而提升图形处理的整体效率。LOD(细节水平)是协调纹理像素和实际像素之间关系的一个标准。一般用于中、低档显卡中。 *>!-t
*y(UI/c
fB&i{_J
Bump Mapping (凹凸贴图) S;/pm$?/
这是一种在3D场景中模拟粗糙外表面的技术。将深度的变化保存到一张贴图中,然后再对3D模型进行标准的混合贴图处理,即可得到具有凹凸感的表面效果。一般这种特效只有高档显示卡支持。(注:GeForce256支持的只是显示和演算该效果,不是生成特效) foBF]7Bz?
Q<DXDvL
Video Texture Mapping ( 视频材质贴图) s'd\"WaQV
这是目前最好的材质贴图效果。具有此种功能的图形图像加速卡,采用高速的图像处理方式,将一段连续的图像(可能是即时运算或来自一个AVI或MPEG的档案)以材质的方法处理,然后贴到3D物件的表面上去。 l^%52m@{
/XA*:8~!
Texture Map Interpolation (材质影像过滤处理) \ [M4[Qlq
当材质被贴到屏幕所显示的一个3D模型上时,材质处理器必须决定哪个图素要贴在哪个像素的位置。由于材质是2D图片,而模型是3D物件,所以通常图素的范围与像素范围不会是恰好相同的。此时要解决这个像素的贴图问题,就得用插补处理的方式来解决。 KZ1m2R}'
这种处理的方式共分三种:“近邻取样”、“双线过滤”、“三线过滤”以及“各向异性过滤”。 !b+!] 2~g}
[z*1#lj S
1.Nearest Neighbor (近邻取样) bSQj=|h1
又被称为Point sampling(点取样),是一种较简单材质影像插补的处理方式。会使用包含像素最多部分的图素来贴图。换句话说就是哪一个图素占到最多的像素,就用那个图素来贴图。这种处理方式因为速度比较快,常被用于早期3D游戏开发,不过材质的品质较差。 Z#l6BXK
Z^Wv(:Nr
2.Bilinear Interpolation (双线过滤) /!.]Y8yEH
这是一种较好的材质影像插补的处理方式,会先找出最接近像素的四个图素,然后在它们之间作差补效果,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”现象。这种处理方式较适用于有一定景深的静态影像,不过无法提供最佳品质。其最大问题在于,当三维物体变得非常小时,一种被称为Depth Aliasing artifacts(深度赝样锯齿),也不适用于移动中的物件。
;5
M$Rh]3vqR
3.Trilinear Interpolation (三线过滤) 5Q:49S47
这是一种更复杂材质影像插补处理方式,会用到相当多的材质影像,而每张的大小恰好会是另一张的四分之一。例如有一张材质影像是512×512个图素,第二张就会是256×256个图素,第三张就会是128×128个图素等等,总之最小的一张是1×1。凭借这些多重解析度的材质影像,当遇到景深极大的场景时(如飞行模拟),就能提供高品质的贴图效果。一个“双线过滤”需要三次混合,而“三线过滤”就得作七次混合处理,所以每个像素就需要多用21/3倍以上的计算时间。还需要两倍大的存储器时钟带宽。但是“三线过滤”可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,只有“三线过滤”才能提供可接受的材质品质。 #Uep|A
XWX]/j2jA
4.Anisotropic Interpolation (各向异性过滤) EY.m,@{
它在取样时候,会取8个甚至更多的像素来加以处理,所得到的质量最好。 @7;}6,)
b7">IzAe
+VJyGbOcC
Shading(着色处理) ynf!1!4
m?1r@!/y
绝大多数的3D物体是由多边形(polygon)所构成的,它们都必须经过某些着色处理的手续,才不会以线结构(wire frame)的方式显示。这些着色处理方式有差到好,依次主要分为Flat Shading、Gouraud Shading 、Phone Shading、Scanline Renderer、Ray-Traced 。 G)f!AuN=
5 /T#>l<
Flat Shading (平面着色) uJ fXe
也叫做“恒量着色”,平面着色是最简单也是最快速的着色方法,每个多边形都会被指定一个单一且没有变化的颜色。这种方法虽然会产生出不真实的效果,不过它非常适用于快速成像及其它要求速度重于细致度的场合,如:生成预览动画。 \IEuu^
$"}[\>e*{
Gouraud Shading (高洛德着色/高氏着色) |N3#of(
这种着色的效果要好得多,也是在游戏中使用最广泛的一种着色方式。它可对3D模型各顶点的颜色进行平滑、融合处理,将每个多边形上的每个点赋以一组色调值,同时将多边形着上较为顺滑的渐变色,使其外观具有更强烈的实时感和立体动感,不过其着色速度比平面着色慢得多。 {qU;>;(
)4hA Fy6l
Phone Shading (补色着色) Okd. ~
首先,找出每个多边形顶点,然后根据内插值的方法,算出顶点间算连线上像素的光影值,接着再次运用线性的插值处理,算出其他所有像素高氏着色在取样计算时,只顾及每个多边形顶点的光影效果,而补色着色却会把所有的点都计算进去。 ?5^DQ|Hg ^
I"QU{]|J
Scanline Renderer (扫描线着色) )c 79&S
这是3DS MAX的默认渲染方式,它是一种基于一组连续水平线的着色方式,由于它渲染速度较快,一般被使用在预览场景中。 rJB/)4
mE
V&/Cb&~Uw
Ray-Traced (光线跟踪着色) b.8T<@a
光线跟踪是真实按照物理照射光线的入射路径投射在物体上,最终反射回摄象机所得到每一个象素的真实值的着色算法,由于它计算精确,所得到的图象效果优质,因此制作CG一定要使用该选项。 I47sq z7
ytb1h Fs
Radiosity (辐射着色) sXT8jLIf
这是一种类似光线跟踪的特效。它通过制定在场景中光线的来源并且根据物体的位置和反射情况来计算从观察者到光源的整个路径上的光影效果。在这条线路上,光线受到不同物体的相互影响,如:反射、吸收、折射等情况都被计算在内。