3D圖形晶片及3D圖像生成算法的原理分析

2021-01-08 電子產品世界

一、引言

  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圖形硬體既有高端的專用圖形工作站也有入門級的圖形加速卡,任何更好更快的圖形效果的獲得都需要付出巨大的硬體代價。

相關焦點

  • 3d手機原理及發展趨勢介紹分析【圖文】
    今天就來為大家介紹一款智慧型手機界燃起的新星——3d手機,本期小編將帶領認識一下裸眼3D技術、3d手機的發展趨勢、產品簡介以及案例分析,希望大家在了解相關信息的同時能夠有所幫助。這種技術原理是在屏幕前加了一個狹縫式光柵之後,應該由左眼看到的圖像顯示在液晶屏上時,不透明的條紋會遮擋右眼;同理,應該由右眼看到的圖像顯示在液晶屏上時,不透明的條紋會遮擋左眼,通過將左眼和右眼的可視畫面分開,使觀者看到3D影像。  2、柱狀稜鏡這種技術原理是通過透鏡的折射原理,將左右眼對應的像素點分別投射在左右眼中,實現圖像分離。
  • 3D全息投影、裸眼3D以及VR各自的區別
    3D全息投影也稱為虛擬成像技術,是一種利用幹涉和衍射原理來記錄和再現物體真實3D圖像的技術。全息投影技術不僅能產生立體空中幻覺,還能使幻像與表演者互動,共同完成表演,產生震撼的表演效果。3d全息投影技術裸眼3D是一種三維圖形,裸眼3D使用戶無需戴3D眼鏡就能看到3D圖片。
  • 全彩LED顯示屏適合於哪種3D方案?主動式3D還是偏光3D立體
    全彩LED顯示屏由一個一個模塊RGB燈板拼裝而成的,原理上是可以實現3D的,但由於LED屏屬於大屏如做做成偏光立體就得在LED燈板前貼一片柵格式的偏光片,為了區分左右眼鏡圖像,只能把用個兩個點當一個點使用,從而會使像素減半,這就是類式於偏光3D電視的做法.我們建議採用主動立體3D方案比較好
  • 「3d掃描儀結合3d列印技術」學校3d創新教育的一把利器
    3d創新教育是以培養學生創新精神、創新能力、動手實踐能力為價值取向的新型教育。在3d創新教育中,我們要如何讓「3d掃描儀、3d列印技術」這兩把利器發揮重要作用呢?從提供3d掃描獲取數據到3d設計、數據再創造再到3d列印創意實現的完整解決方案是廣大師生的呼聲,更是教育改革時代背景下的一條創新之路。
  • 什麼是3d投影機 3d投影機怎麼使用【使用方法】
    一、什麼是3d投影機  3D投影機主要採用 TI 的DLP Link技術,其原理是通過DMD晶片輸出120Hz刷新率的畫面,左右眼交替使用,使人眼形成3D的「錯覺」。其優點是簡便易行,對硬體的要求比較低,但是在3D遊戲的配合方面,NVIDIA的 3D Vision技術和3D套件支持的遊戲會更廣泛一些。
  • 3d全息投影原理_3d全息投影視頻 - CSDN
    只需要一個晶片,就可以投射出一個可以接受的三維全息圖像,不過只要增加晶片數量,則可以投射出形狀更加複雜的三維物體,細節更加詳實,這一晶片和技術的研發還在初始階段,第一款晶片,目的是全息投影二維圖像,預計晶片可以在2015年的夏天交付給手機廠商。他們研製的第二款投影晶片,將可以實現全息三維投影,立體影像可以漂浮在空氣中,看上去就像是一個真實存在的物體。
  • 三分鐘自製3D全息投影,讓你看到目瞪口呆!
    按如圖所示在ipad膜上畫一個五邊形的圖形~然後把圖形用剪刀或者刻刀剪下來~再畫一個長方體圖形,如上剪下來用透明膠帶粘貼住;快來看看懸浮的3D世界吧!關燈之後效果更好哦~3D全息投影原理:3D全息投影系統是一種利用光的幹涉和衍射原理記錄並再現物體真實的三維圖像。我們做的透明的「金字塔」利用光的折射原理把手機上的影像折射到「金字塔」裡面,就看到漂浮在「空中」的影像了。
  • 雷射3d印表機多少錢 雷射3d印表機價格及工作原理【詳解】
    雷射3D印表機是一種新型的 高科 技產品,能夠列印一切物品,3d技術在之前的新聞報導中我們就已經見識了它的神奇程度,可以應用於不同領域,幫助人們解決很多麻煩,甚至也可以解決在生物製造技術上的難題。雷射3d印表機就是3d印表機的升級版,那麼雷射3d印表機的工作原理是否和之前的相同呢?
  • 3d投影儀原理是什麼呢【圖文】
    它的原理又是什麼呢?今天就讓我帶著大家一起來看看吧。  什麼是3D 投影機 ?  早在2006年上屆{世界盃}前夕,就有不少 酒店 、迪廳和 酒吧 突擊搶購投影機,以大屏幕的賽事轉播來吸引消費者。  2006年有所不同的是,今年世界盃將首次實現3D轉播,因此3D就成為了各大廠商的爭奪焦點。
  • 基於HTML5 的 WebGL 3D 版俄羅斯方塊
    ,我的想法是生成多個正方形,將它們組合成我們需要的圖形,通過坐標的計算來將它們擺放在相應的位置:方塊生成後,開始對圖形進行旋轉操作。這其中有兩個方案,第一種是將圖形的翻轉後的圖形坐標按順序保存在數組中,每次改變形狀時取數組中的前一組或後一組坐標來進行改變;第二種是使用 ht.Block() 對象將對應的圖元組合成一個整體,在變形時只需按對應的方向選擇 90° 即可。
  • 3D建模軟體哪個好?3D建模軟體排行榜
    傳送門:3D MAX  二、moi3d三維建模MOI3.0是一款精準的三維建模軟體,別看它的體積不大,但功能上卻非常強大,能夠讓你的建模工程更高效更快捷,對於那些對CAD軟體頭疼的人來講,MOI3.0是一個非常不錯的選擇,它與犀牛的結合更是完美,它們的生成格式甚至是完全相同的,熟悉上手後能夠做出精細的模型,可以繪製各種直線曲線矩形多邊形,繪製圓弧橢圓等圖形
  • 晶片上培養腦細胞,測試新藥,LLNL實驗室開發出3D晶片大腦
    近年來,勞倫斯利弗莫爾國家實驗室的多學科團隊試圖在晶片設備上複製人體系統,並開發出了能夠捕獲體外培養腦細胞神經活動的「晶片大腦」(brain-on-a-chip)。未來,它或許會取代動物測試。他們設計和完善了帶有「多電極陣列」的晶片大腦設備。
  • 圖像特徵點|SIFT特徵點之圖像金字塔
    ,但SIFT除了計算比較耗時以外,其他方面的優點讓其成為特徵點提取算法中的一顆璀璨的明珠。SIFT算法的介紹網上有很多比較好的博客和文章,我在學習這個算法的過程中也參看網上好些資料,即使評價比較高的文章,作者在文章中對有些比較重要的細節、公式來歷沒有提及,可能寫博客的人自己明白,也覺得簡單,因此就忽略了這些問題,但是對剛入門的人來說,看這些東西,想搞清楚這些是怎麼來的還是比較費時費力的。比如SIFT算法中一個重要的操作:求取描述子的主方向。
  • 3d常見知識科普二:3d眼鏡的類型
    說的3d眼鏡,細心的朋友可能發現,有的眼鏡很薄,有的眼鏡很厚重,需要充電。這是為什麼呢?與什麼有關呢?其實3d眼鏡的類型,和播放設備有關。首先,3d眼鏡主要分為三兩種:1,快門式快門式需要充電,工作原理是左右眼同一時間只有其中一隻眼可以看到,另一隻眼被擋住,通過快速的交替產生視覺延遲,產生3d的效果。
  • 語音驅動3D虛擬人,百度ACCV 2020最新文章解讀
    因此,有用的信息僅稀疏地存在於視頻中,這為簡單的端到端學習算法 [1、3] 從有限的錄製視頻中捕獲這種多樣性帶來了困難。近日,百度提出了一種新的方法,將給定文字或音頻轉換為具有同步、逼真、富表現力的肢體語言的實感視頻。
  • 用圖形解釋10種圖形算法
    快速介紹10種基本圖形算法以及示例和可視化在現實世界中,例如社交媒體網絡,網頁和連結以及GPS中的位置和路線,圖形已經成為一種強大的建模和捕獲數據的手段。 如果您有一組相互關聯的對象,則可以使用圖形來表示它們。
  • Facebook 開源 3D 深度學習函數庫 PyTorch3D
    Facebook表示,之所以深度學習技術較少用於3D場景,是因為缺乏足夠的工具和資源來支撐神經網絡與3D數據結合使用的複雜性,這種場景要求更多的內存與更高的算力,不像2D圖像可以使用張量表示,而且許多傳統圖形運算符不可微分,因此3D深度學習技術的研究受到了限制。
  • 這個AI系統僅憑光回聲就能得到3D圖像
    這幅圖像是由反射光所形成的亮點和暗點的集合。相比之下,一種名為「飛行時間相機(time-of-flight camera,ToF camera)」的設備可以為圖像加上深度信息,通過計算物體反射回來的一束光到達不同像素的精確時間來生成 3D 圖像。最近幾十年來,研究人員創造了很多精妙的方式,來使用單像素檢測器捕捉圖像。
  • 3d全景是什麼意思?3d全景圖怎麼做的
    3d全景便是如此,它的出現給我們帶來很多以往圖文視頻所不能達到的體驗。3d全景是什麼呢意思?3d全景圖又被很多人稱為三維全景和vr全景,實際上是一種新的展現方式,不同以往的是能夠給人帶來很好的沉浸感,對所展現的空間有一種仿佛身臨其境般的體驗。實際上目前3d全景都是由相機實景拍攝而來的,雖然也有完全使用虛擬技術來搭建完成的,但成本以及效率都要低於前者。
  • Threejs開發3D地圖實踐總結
    但這裡的一個問題是canvas圖像將會失真,原因是沒有合理的設置sprite的scale,導致圖片被拉伸或縮放失真。 問題的解決思路是要保證在3d世界中的縮放尺寸,經過一系列變換投影到相機屏幕後仍然與canvas在屏幕上的大小保持一致。這需要我們計算出屏幕像素與3d世界中的長度單位的比值,然後將sprite縮放到合適的3d長度。