在 3D 繪圖中, 一般都是以階層式資料結構 (hierarchical structure) 來儲存及處理資料, 而針對環境中不同的物件, 又可分為光源 (light source) 及一般物件 (objects):
顏色: 平常的光源是白色的, 但在特殊的環境下, 仍然會有不同的光線. 一般光線的顏色及強度是以 RGB (紅綠藍) 三原色來表示的.
光的種類: 一般光可分為四種: 環境光 (ambient light), 點光源 (point source), 有向光 (directional light) 及聚光燈 (spotlight).
環境光: 最簡單的一種光源, 沒有位置, 對環境中的每個物體的各個方向都具有相同的強度.
點光源: 點光源是射向四面八方的, 它具有位置 (position), 但並不具有方向的屬性 (orientation).
有向光: 這種光有方向, 但沒有位置, 最好的例子是太陽光. 這種光是平行穿過三度空間, 通常是用來模擬無限遠的光源.
聚光燈: 有方向有位置, 並以圓錐形擴散. 這個圓錐的形狀是由 umbra (陰影) 及 penumbra (半影) 的角度來決定. 舉例來說, 檯燈便是一種聚光燈.
點 (vertices): 端點和點一樣由三個值 (x, y, z) 所組成, 是用以表現位置及面的端點.
方向向量 (vector): 有時物件是以自己為座標軸, 但在環境中則會因擺設的方式不同, 而以不同的方向向量來表示.
比例 (scale): 和方向向量相同, 環境中的物件常會與建構時的大小不同, 而會對每個方向 (x, y, z) 分別縮放其尺寸.
材質 (texture): 每一面都可能會有其表面的材質紋路, 如木質桌面或大理石地板等, 通常是以 2d 靜態圖形 (image) 來表示.
由於 3D 圖形顯示被應用在各種不同的領域中, 目前可見的 3D 圖形標準也非常多, 以下針對幾個常見的檔案格式加以介紹
為了要將 3D 的東西顯現在螢幕上, 我們必需將 3D 的資料投影在 2D 平面 (螢幕) 上. 因此我們必須知道觀察者 (或攝影機) 在哪兒, 以及觀察者的可見範圍. 如此我們可以定義出一個長方體 (平行投影) 或金字塔 (透視投影) (View Frustum). 觀察者位在長方體的一個側面或是金字塔的頂端. 一般為了表現出真實的環境顯像結果, 通常大多使用透視投影.
當 3D 的資料轉換為 2D 之後, 我們還必需加以著色, 如果不加以上色, 所有的表面都會是黑色的. 著色的步驟稱為 Shading (著色) 或 Rendering (成像). 一般著色的方法有以下幾種:
以上幾種方法中, 除了
Phong 著色法外, 在一般的 3D 顯示加速卡中都已在硬體中提供了這些功能.
以下介紹的這兩種著色法, 一般稱之為全域照明 (global illumination), global illumination 和一般的著色法最大的不同點在於, shading 只考慮物件和光源之間的關係, 但是這些方法對於非光源物體間彼此的相互影響﹐只以一項固定的漫射光取代﹐以致於一些特殊的效果﹐如陰影及透明等﹐均不易表現出來。
80 年代初期﹐美國的學者提出了光線追蹤成像法以解決上述的問題﹐且成功地製作了一些高品質的合成影像。基本上這個方法是根據人類瞳孔成像的原理﹐與物體表面的聚射光
(specular)﹐藉多重反射的效果﹐達到成像的目的。其方法是由觀察者的眼睛﹐朝螢幕上每一圖素
(pixel) 射出一條主線 (primary ray) 然後沿著主線方向追蹤﹐設法計算光線在物體上的落點﹐並求出光源對物體亮度的貢獻。若直線碰到物體而產生反射線或折射線
(均稱為副線 secondary ray) 時﹐則再沿著反射線或折射線的方向繼續追蹤。各受光點的亮度﹐將由主線的亮度與各副線的亮度累加而成。雖然此種方法可以得到高品質的影像﹐但是特別在複雜的環境中﹐單是求光線在物體上的落點﹐便是一個十分龐大的計算量﹐這使得光線追蹤法常需要耗費數小時﹐甚至數天的時間來計算所要的影像。
由於輻射量計算成像法在模擬物體表面對光的散射情形時﹐其建構與視角無關﹐它最常被應用在虛擬實境中空間巡訪之製作﹐因此是目前最受歡迎的成像模式之一。