TWI695188B - 用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 - Google Patents
用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 Download PDFInfo
- Publication number
- TWI695188B TWI695188B TW107119252A TW107119252A TWI695188B TW I695188 B TWI695188 B TW I695188B TW 107119252 A TW107119252 A TW 107119252A TW 107119252 A TW107119252 A TW 107119252A TW I695188 B TWI695188 B TW I695188B
- Authority
- TW
- Taiwan
- Prior art keywords
- slm
- pixel
- rendering
- specific embodiment
- array
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000009877 rendering Methods 0.000 title claims abstract description 75
- 230000002452 interceptive effect Effects 0.000 title description 3
- 238000012545 processing Methods 0.000 claims description 91
- 238000005286 illumination Methods 0.000 claims description 26
- 238000005520 cutting process Methods 0.000 claims description 22
- 230000000007 visual effect Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 99
- 238000010586 diagram Methods 0.000 description 41
- 239000012634 fragment Substances 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 239000000872 buffer Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 238000005070 sampling Methods 0.000 description 15
- 238000009826 distribution Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 239000004065 semiconductor Substances 0.000 description 9
- 230000010076 replication Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000004040 coloring Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000005684 electric field Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005227 gel permeation chromatography Methods 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000001093 holography Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000011295 pitch Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000007876 drug discovery Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000000329 molecular dynamics simulation Methods 0.000 description 1
- 238000012900 molecular simulation Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010587 phase diagram Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H1/00—Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
- G03H1/02—Details of features involved during the holographic process; Replication of holograms without interference recording
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H1/00—Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
- G03H1/04—Processes or apparatus for producing holograms
- G03H1/08—Synthesising holograms, i.e. holograms synthesized from objects or objects from holograms
- G03H1/0808—Methods of numerical synthesis, e.g. coherent ray tracing [CRT], diffraction specific
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H1/00—Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
- G03H1/22—Processes or apparatus for obtaining an optical image from holograms
- G03H1/2294—Addressing the hologram to an active spatial light modulator
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0123—Head-up displays characterised by optical features comprising devices increasing the field of view
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0147—Head-up displays characterised by optical features comprising a device modifying the resolution of the displayed image
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
- G02B2027/0174—Head mounted characterised by optical features holographic
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H1/00—Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
- G03H1/02—Details of features involved during the holographic process; Replication of holograms without interference recording
- G03H2001/0208—Individual components other than the hologram
- G03H2001/0224—Active addressable light modulator, i.e. Spatial Light Modulator [SLM]
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H2210/00—Object characteristics
- G03H2210/30—3D object
- G03H2210/36—Occluded features resolved due to parallax selectivity
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H2210/00—Object characteristics
- G03H2210/40—Synthetic representation, i.e. digital or optical object decomposition
- G03H2210/45—Representation of the decomposed object
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Holo Graphy (AREA)
- Image Generation (AREA)
Abstract
本發明揭示一種渲染一光場的方法,包括:從位於一空間光調變器(SLM)的一第一側上之一視點將射線投射至位於該SLM的一相對側上之一裁切平面,來在一三維場景之內形成一元素視體,並在該元素視體之內渲染物體,來產生用於該第一元素區的一第一元素影像之分量。該SLM包含不重疊元素區的陣列拼貼,並且該不重疊元素區的第一元素區之頂緣以及底緣與該光線交叉來形成該元素視體。更進一步,該光場可包括該第一元素影像以及對應至元素區陣列的額外元素影像,並且使用一額外元素視體渲染該等額外元素影像之每一者。
Description
本申請案主張於2017年6月27日所提出之美國臨時專利申請案號62/525,644以及於2018年4月5日所提出美國專利申請案號15/946576之利益,其完整內容以引用方式併入本文中。
本發明係關於電腦產生的全息術,尤其係關於用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法。
現在虛擬實境(VR,virtual reality)與擴增實境(AR,augmented reality)系統的成功要素就是建立舒適的視覺體驗。寬視野、高解析度、互動性、視點相依遮蔽以及連續聚焦提示為提供舒適視覺體驗的顯著特徵。然而,傳統VR系統通常無法提供許多這些特徵,導致使用者不適。因此,需要解決先前技術所伴隨的這些問題及/或其他問題。
設置一方法、電腦可讀取媒體以及系統來渲染一光場。該方法包括將來自一空間光調變器(SLM,spatial light modulator)的第一側上一視點的光線投射至該SLM的相對側上的一裁切平面,以在三維場景之內形成一元素視體。渲染該元素視體之內的物體,以產生用於第一元素區域的第一元素影像之分量。在一個具體實施例內,該SLM與元素區的陣列拼貼,並且該不重疊元素區的第一元素區之頂緣以及底緣與該光線交叉來形成該元素視體。在特定具體實施例內,該光場包含該第一元素影像以及對應至元素區陣列的額外元素影像,並且使用一額外元素視體渲染該等額外元素 影像之每一者。
該電腦可讀取媒體包含指令,當由一處理單元執行時會執行該方法。進一步,該系統包含設置成執行該方法的電路。
設置一第二方法、第二電腦可讀取媒體以及第二系統來渲染一光場。該第二方法包括根據一空間光調變器(SLM)的大小與一全息圖元素寬度,計算一觀看位置與該SLM之間的橫向偏移。從該觀看位置渲染一三維場景,來產生元素影像的陣列。在一個具體實施例內,全息圖元素的陣列涵蓋該SLM的表面。
該第二電腦可讀取媒體包含指令,當由一處理單元執行時會執行該方法。進一步,該第二系統包含設置成執行該第二方法的電路。
140‧‧‧場景物體
142‧‧‧虛擬相機
144‧‧‧SLM
200‧‧‧渲染組態
203‧‧‧SLM
204‧‧‧近裁切平面
206‧‧‧遠裁切平面
210‧‧‧虛擬相機
212‧‧‧傳統視體
214‧‧‧視體
215‧‧‧區域
216‧‧‧視體
217‧‧‧區域
218‧‧‧全息元素
219‧‧‧全息元素
220‧‧‧渲染組態
223‧‧‧SLM
224‧‧‧近裁切平面
226‧‧‧遠裁切平面
230‧‧‧虛擬相機
232‧‧‧視體
234‧‧‧投影
238‧‧‧全息元素
239‧‧‧全息元素
240‧‧‧區域
242‧‧‧模糊區段
244‧‧‧除外區
245‧‧‧包含區
250‧‧‧渲染組態
253‧‧‧SLM
254‧‧‧近裁切平面
256‧‧‧遠裁切平面
260‧‧‧虛擬相機
261‧‧‧使用者眼睛
262‧‧‧視體
264‧‧‧投影
268‧‧‧全息元素
269‧‧‧全息元素
270‧‧‧區域
272‧‧‧模糊區段
274‧‧‧除外區
275‧‧‧包含區
300‧‧‧並行處理單元
302‧‧‧互連
304‧‧‧記憶體
305‧‧‧輸入/輸出單元
310‧‧‧NVLink
315‧‧‧前端單元
320‧‧‧排程器單元
325‧‧‧工作分配單元
330‧‧‧集線器
350‧‧‧一般用途叢集
370‧‧‧橫桿
380‧‧‧分割單元
410‧‧‧管線管理員
415‧‧‧預先光柵運算單元
420‧‧‧資料處理叢集
425‧‧‧光柵引擎
430‧‧‧M-Pipe控制器
435‧‧‧圖元引擎
440‧‧‧串流多重處理器
450‧‧‧光柵運算單元
460‧‧‧第二階快取
470‧‧‧記憶體介面
480‧‧‧工作分配橫桿
490‧‧‧MMU
500‧‧‧處理系統
505‧‧‧指令快取
510‧‧‧交換器
510(K)‧‧‧排程器單元
515‧‧‧派遣單元
520‧‧‧暫存檔
530‧‧‧CPU
535‧‧‧網路介面
540‧‧‧主記憶體
545‧‧‧顯示裝置
550‧‧‧處理核心
552‧‧‧特殊功能單元
554‧‧‧載入/儲存單元
560‧‧‧輸入裝置
565‧‧‧示範系統
570‧‧‧共享記憶體/L1快取
575‧‧‧通訊匯流排
580‧‧‧互連網路
600‧‧‧圖形處理管線
601‧‧‧輸入資料
602‧‧‧輸出資料
610‧‧‧資料組裝階段
620‧‧‧頂點著色階段
630‧‧‧圖元組裝階段
640‧‧‧幾何著色階段
650‧‧‧視點比例縮放、消隱與裁切階段
660‧‧‧光柵化階段
670‧‧‧片段著色階段
680‧‧‧光柵運算階段
第一A圖根據一個具體實施例,例示渲染一光場的方法流程圖。
第一B圖根據一個具體實施例,例示渲染一元素視體之內一物體的方法流程圖。
第一C圖根據一個具體實施例,例示電腦產生的全息圖。
第一D圖根據一個具體實施例,例示一全息圖元素。
第二A圖根據先前技術,例示傳統全息元素(hogel)渲染。
第二B圖根據一個具體實施例,例示具備平面波照明的全息元素渲染。
第二C圖根據一個具體實施例,例示一模糊區段的區域。
第二D圖根據一個具體實施例,例示具備球體波照明的全息元素渲染。
第二E圖根據一個具體實施例,例示一模糊區段的區域。
第二F圖根據一個具體實施例,例示使用球體照明渲染一光場的方法之演算操作。
第二G圖根據一個具體實施例,例示元素影像解析度結果的比較。
第二H圖根據一個具體實施例,例示渲染一光場的方法流 程圖。
第三圖根據一個具體實施例,例示一並行處理單元。
第四A圖根據一個具體實施例,例示第三圖的該並行處理單元內之一般處理叢集。
第四B圖根據一個具體實施例,例示第三圖的該並行處理單元之一記憶體分割單元。
第五A圖根據一個具體實施例,例示第四A圖的該串流多處理器。
第五B圖根據一個具體實施例,例示使用第三圖中該PPU來實現的一處理系統之概念圖。
第五C圖例示其中可實施該許多先前具體實施例的許多架構及/或功能性之示範系統。
第六圖根據一個具體實施例,例示通過第三圖中該PPU來實現的一圖形處理管線之概念圖。
本發明的具體實施例改善電腦產生的全息圖(CGH,computer generated holography)之視野、高解析度上之互動性以及視點相依遮蔽。更進一步,許多具體實施例有利地提供連續聚焦提示,因此基本上避免近眼顯示器內的聚散度調節衝突。在一個具體實施例內,一近眼顯示器包括液晶(LC,liquid crystal)及/或空間光調變器(SLM)結構,設置成顯示一CGH光場給使用者。該CGH光場可根據平面波照明、球體波照明或任何其他技術可行波傳播照明模型來計算得出。
根據參考波,CGH光場提供物體波給三維(3D,three-dimensional)場景內一已知的可觀察點。該參考波(例如平面波)的波形可指定,並且CGH處理計算一衍射模式,其將在全息圖之內已知位置上執行從該參考波到物體波的轉換。在一個具體實施例內,計算該物體波包含將來自位於SLM前方的視點(例如,渲染相機位置)的射線投射到位於SLM後面的裁切平面。一般而言,該視點以及該裁切平面可位於該SLM的相反側上。一已知的射線可計算成具有與其他射線相關的幅度與相位。該SLM 的區域可組織成元素影像,每一影像都具有該3D場景之內的一元素視體,如此每一元素影像都可包括一單一、不同的3D場景代表性視圖。更進一步,可渲染多個元素影像,來形成一完整3D場景呈現給使用者。
第一A圖根據一個具體實施例,例示渲染一光場的方法110之流程圖。雖然以一處理單元的範疇來描述方法110,不過方法110也可由一程式、自訂電路或自訂電路與一程式的組合來執行。例如:方法110可由一GPU(圖形處理單元)、一CPU(中央處理單元)或任何其他技術可行的處理器來執行。更進一步,精通技術人士將了解,執行方法110的任何系統都在本發明具體實施例的領域與精神之內。
在步驟112上,該處理單元從位於SLM前面的一視點將射線投射至位於該SLM後面的一裁切平面,來在一3D場景之內形成一元素視體。尤其是,該視點可位於該SLM的第一側上,並且該裁切平面可位於該SLM的相反側上。在一個具體實施例內,視點位於該SLM的觀察者側上,並且該近裁切平面位於該SLM的相反側上(相對於該觀察者的相反側)。在一個具體實施例內,該近裁切平面與該SLM的表面重疊。在一個具體實施例內,該SLM與不重疊元素區的陣列拼貼,並且該不重疊元素區的第一元素區之頂緣以及底緣與該光線交叉來形成該元素視體。
在步驟114上,該處理單元渲染該元素視體之內的物件,來產生用於該第一元素區域的一第一元素影像分量。在一個具體實施例內,該光場包含該第一元素影像以及對應至元素區陣列的額外元素影像,並且使用一額外元素視體渲染該等額外元素影像之每一者。
在步驟116上,該處理單元計算用於驅動該SLM的相位和振幅分量,作為物體波和共軛參考波的乘積。更進一步,該等分量可包含該3D場景之內的顏色與位置。在一個具體實施例內,該共軛參考波包括一平面波照明源。在另一個具體實施例內,該共軛參考波包括一球體波照明源。在其他具體實施例內,該共軛參考波包括一任意照明源。
在一個具體實施例內,針對該第一元素區域之內該SLM每個像素,渲染包括投射來自該SLM該像素的第二射線至該裁切平面,來定義具有第一寬度基底的一像素衍射錐,並且移除該第一元素影像分量超出 該像素衍射錐之外的部分,來執行任意區段消隱。
第一B圖根據一個具體實施例,例示渲染一元素視體之內一物體的方法120之流程圖。雖然以一處理單元的範疇來描述方法120,不過方法120也可由一程式、自訂電路或自訂電路與一程式的組合來執行。例如:方法120可由一GPU、CPU或任何其他技術可行的處理器來執行。更進一步,精通技術人士將了解,執行方法120的任何系統都在本發明具體實施例的領域與精神之內。如第一B圖內所見,在一個具體實施例內,方法110的步驟114包括步驟122和124。
在步驟122上,該處理單元投射來自該SLM像素的第二射線至該裁切平面,來定義具有第一寬度基底的一像素衍射錐。在步驟124上,該處理單元移除該第一元素影像分量超出該像素衍射錐之外的部分。在一個具體實施例內,利用移除超出該像素衍射錐之外的分量部分來執行任意區段消隱。
方法110和120可在電腦產生的全息圖(CGH)之範疇內執行,來產生用於驅動一SLM裝置的光場資料。底下搭配有關許多具體實施例的實施細節,揭示CGH的說明。
第一C圖根據一個具體實施例,例示電腦產生的全息圖(CGH)。如所示,由一虛擬相機142指出一渲染視點,該相機定位成通過SLM 144觀看一場景物體140。場景物體140上顯示一點j,並且該點j與SLM 144上一像素位置x相距r的距離。
一般而言,一全息圖將一輸入參考光波E R (x)轉換成一適當輸出物體光波E O (x)。在CGH中,產生該輸出物體光波需要知道該參考光波以及該物體光波。該參考光波的波形可已知,並且許多CGH技術可應用於計算一衍射圖案,來在SLM 144的每一位置上產生該物體光波。針對每一位置,根據SLM 144上該位置的所要輸出波形,可計算一衍射圖案。若要計算來自場景物體140的一已知輸出波形,使用Fresnel衍射積分將光往後傳播到SLM 144。針對包括離散點j的場景物體140,源自於該點j的球體波之總和可運算來取代一衍射積分。此總和由等式1計算得出。
在等式1內,λ為單色光源的波長,A j 為場景物體140上該點j的振幅,並且r j (x)為從SLM 144上該點j至一像素位置x到場景物體140上一已知點j之歐幾里德距離。更進一步,為關聯於每一點j的隨機初始相位。
該結果電場E O (x)為複值。在CGH內,將該結果電場乘上一適當照明場,產生一對應照明波形。例如:在平面波(準直光束)照明中,該結果電場乘上一常數(例如1)。針對球體波照明,該電場可以乘以具有二次相位的複指數,以抵消球體參考波的二次相位。根據一結果乘積,利用振幅與相位延遲的空間變化,來提供在SLM 144上顯示一正確衍射圖案。
在一個具體實施例內,一CGH渲染並顯示以基於多邊形的全息光場渲染開頭之管線,並且包含基於點的方法(即來自場景物體140上點的傳播場之總和)與用於視點相關效果的局部分割。透過管線使用一z緩衝區來處理遮蔽。取樣片段允許以高解析度(例如,1080p)影像品質,用交互速度在GPU上進行並行全視差CGH計算。在特定具體實施例內,一CGH渲染管線包含一多邊形表面方式(即來自包括場景物體140的可見多邊形表面之傳播場加總),其可單獨操作或與該點型方式結合。任何技術可行的技術都可執行來計算來自SLM 144的不同像素上多邊形表面的場。更進一步,雖然本文所教導的技術係參考一場景物體上的點來說明,不過精通技術人士將了解,在不背離許多具體實施例的範圍與精神之下,該等技術可應用在多邊形及/或任意形狀或表面。
渲染一全光場會產生高度重疊視圖用於相鄰全息圖像素,並且通常導致顯著的計算冗餘。例如在點型方式中,傳統渲染需要依序掃描該場景,來累積從深度排序場景點所發出的波前。這種操作相當於在傳統光場渲染中添加密集取樣的角度視圖,也就是技術領域內已知對於即時圖形在計算上不切實際的方法。
然而,假設Lambertian表面用於場景物體140,每個點的單一記錄就足以確定波前。利用這一觀察結果,全息圖可以在空間上分割成 鄰接網格,其中單個網格在本文中稱為全息元素(hogel),如第一D圖內所例示。
第一D圖根據一個具體實施例,例示一全息圖元素。如所示,一顏色亮度圖包含元素影像的相鄰網格。每一元素影像都包括3D場景的單一代表性視圖。一位置與深度圖包含該等元素影像的深度資訊之對應網格。一已知的元素影像已渲染並且用來計算每一全息元素,假設所有擷取點對於該全息元素內所有像素都可見。在一個具體實施例內,每一全息元素都具有一相關相位圖以及一相關振幅圖。該相位圖與該振幅圖可根據該顏色亮度圖以及該位置與深度圖來計算。
單眼遮蔽視差由一眼盒之內全息元素尺寸(w h )所限定。在一個具體實施例內,一眼盒為使用者眼睛位置上足夠大讓使用者眼睛自由移動的區域,讓使用者(觀看者)能夠看見SLM 144所描繪的完整3D場景(例如場景物體140上所有點)。將一個完整的全息光場顯示器近似為全息元素的一個網格,大大減少了渲染過程和計算量,使傳統GPU系統能夠支援即時渲染應用。然而,傳統全息元素渲染投射至一已知的全息元素中心,由此未能呈現精確的每像素衍射錐聚集,並且傳統全息元素渲染可能無法在球體照明場景中有正確比例。
第二A圖根據先前技術,例示傳統全息元素渲染。如所示,一渲染組態200包含一虛擬相機210,該相機位於包含在SLM 203之內的一全息元素218之中心上。虛擬相機210聚焦在要渲染的一場景上。虛擬相機210的位置產生一傳統視體212,其只提供精準的渲染給在全息元素218之內置中的像素。在先前技術全息元素渲染系統中,傳統視體212用來渲染全息元素218內的所有像素,因為虛擬相機210靜止在全息元素218的中心上。因此,針對全息元素218內一底部像素,在渲染期間將區域215錯誤併入該像素內,而在渲染期間將區域217從該像素錯誤排除。若要精準渲染全息元素218內該底部像素,則應使用視體216。類似地,若要精準渲染全息元素218內的該頂部像素,則應使用視體214。
如所示,SLM 203上的全息元素218、219都具有一全息元素大小w h 。更進一步,一近裁切平面204位於距離SLM 203的距離d 1之處, 並且一遠裁切平面206位於距離SLM 203的距離d 2之處。全息元素尺寸w h 設定z d min 的深度限制給場景物體和該近裁切平面204,以避免幾何裁切。在特定場景中,此深度限制加上潛在的幾何裁切、不精準的每像素衍射錐收集及/或傳統全息元素渲染的額外限制,降低使用者體驗的舒適度以及品質。
第二B圖根據一個具體實施例,例示具備平面波照明的全息元素渲染。如所示,一渲染組態220包含一虛擬相機230,該相機相對於一SLM 223沿該Z(深度)軸定位在一橫向偏移d CZ 處。相較之下,運用傳統技術,如第二A圖內所示,在此虛擬相機210位於零的橫向偏移上,該橫向偏移d CZ 大於零。虛擬相機230聚焦在要渲染的場景上,包括一近裁切平面224以及一遠裁切平面226。虛擬相機230的位置產生一視體232,其與SLM 223上至少全息元素238交叉。SLM 223上的全息元素238、239都具有一全息元素大小w h 。近裁切平面224位於距離SLM 223的距離d 1之處,並且遠裁切平面226位於距離SLM 203的距離d 2之處。相對於場景物體以及近裁切平面224,該橫向偏移d CZ 可等於z d min 的深度限制。在一個具體實施例內,根據等式2計算該橫向偏移:
在等式2內,Δp為SLM 223的像素間距尺寸,並且λ為一單色光源的波長,像是用於渲染的光源。如所示,虛擬相機230的該偏移位置允許渲染視體232的該完整可見區域。此可見區域由w 1指示,並且用等式3計算得出:
在一個具體實施例內,視體232與全息元素238的邊緣以及近裁切平面224交叉,範圍為w 1。更進一步,只使用由投影234所界定的有效衍射錐,就可產生SLM 223內每一像素。利用將遠裁切平面226內的該衍射錐對齊由w 3界定的一滑動視窗,可獲得一每像素透視。該滑動視窗(w 3)可依照等式4計算得出:
衍射消隱可用在模糊區段上,第二C圖內詳細顯示的區域240,以提供更精準的渲染。衍射消隱可包含但不限於:將與模糊區段相關聯的某些覆蓋場景物體幾何形狀從對於SLM 223上已知像素的貢獻當中移除。利用將該滑動視窗擴展至w 2可獲得該模糊區段,如等式5內所計算。更進一步,w 3和w 2界定投影234。
根據所公開的組態佈置虛擬相機230的陣列(例如,每個元素視圖或元素區域一個虛擬相機),允許場景物體的無限制佈置。橫向偏移d CZ 確保相鄰相機視野立即在SLM 223前重疊,並且得到的拼貼體陣列完全覆蓋整個全息圖(整個3D場景)的視野。這允許近裁切平面224有利地設定在SLM 223前面的任意深度上。
第二C圖根據一個具體實施例,例示一模糊區段242的區域240。投影234與近裁切平面224以及遠裁切平面226交叉。投影234可定義具有特定寬度基座的一像素衍射錐。更進一步,投影234可與應含在渲染SLM 223上一相關像素內的一包含區245(在寬度之內)交叉,並且與應排除在渲染該像素外的一除外區244(在寬度之外)交叉。在該像素衍射錐之外的分量可移除,當成渲染該像素衍射錐之內一或多個像素的一部分。
第二D圖根據一個具體實施例,例示具備球體波照明的全息元素渲染。如所示,一渲染組態250包含一虛擬相機260,該相機相對於一SLM 263沿該Z(深度)軸定位在一橫向偏移d CZ 處。虛擬相機260聚焦在要渲染的場景上,包括一近裁切平面254以及一遠裁切平面256。虛擬相機260的位置產生一視體262,其與SLM 263上至少全息元素268交叉。SLM 263上的全息元素268、269都具有一全息元素大小w h 。近裁切平面254沿著該Z軸位於距離虛擬相機260的距離d 3之處,並且遠裁切平面256沿著該Z軸位於距離虛擬相機260的距離d 4之處。使用者眼睛261沿著該Z軸位於距離SLM 263的距離d F 之處。如所示,一眼盒的尺寸顯示為。在一個具體實施例內,視體262透過虛擬相機260的投影至少與該眼盒一樣大。
在實施球體照明的許多具體實施內,視體262(以及與虛擬相機陣列或相機位置相關連的其他視體)可經歷空間變化轉換,因為針對虛擬相機260的已知位置,球體照明波前導入曲率以及離軸旋轉至一衍射錐的局部入射射線方向。這種衍射錐集中加寬已知全息元素的視野。
將第二C圖的渲染組態220擴展到球體照明的渲染組態250,將虛擬相機260設定在受該眼盒所限制並且歪斜可用視野的邊緣射線之交叉點上。在一個具體實施例內,虛擬相機260相對於SLM 263的位置之橫向偏移d cz 由等式6得出:
虛擬相機260的中央視野與全息元素中心之間沿著該X軸和Y軸的偏移取決於該全息元素相對於該眼盒的位置。假設SLM 263分別沿著X軸和Y軸的2m+1乘2n+1分割,從第(m,n)全息元素中心至對應虛擬相機的置換由等式7和8得出:
衍射消隱可用在模糊區段上,第二E圖內詳細顯示的區域 270,以提供更精準的渲染。衍射消隱可包含但不限於:將與模糊區段相關聯的某些覆蓋場景物體幾何形狀從對於SLM 263上已知像素的貢獻當中移除。
全息元素尺寸對於視覺品質以及計算工作有重大影響。在全息元素尺寸的一個極端案例中,一全息元素為SLM 263之內一個像素。在此第一案例中,該全息光場渲染擴展至全光場渲染,這可能是不切實際的。在全息元素尺寸的另一個極端案例中,一全息元素擴展至SLM 263的整個大小。在此第二案例中,該已渲染的光場退至從觀察者(例如使用者)可完整看見SLM 263的最短距離所渲染之單點圖。在實際情況下,從這兩極端之間選擇全息元素尺寸,如連結第二G圖的進一步討論。
在全息光場內,如第一D圖所示,在SLM上一全息元素與對應的可見元素影像之間的一對一映射有助於使用點型方法進行用於菲涅耳積分(即,求和)的並行計算。例如:光場計算可當成像素上並行操作來處理,包括一全息元素、在不同虛擬相機視圖上的並行操作或這些的組合。更進一步,像素上的並行操作可包含菲涅耳積分/加總的加總項之並行計算。在一個具體實施例內,像是第三圖內所示PPU 300這類並行處理單元,可用來執行該並行計算。
第二E圖根據一個具體實施例,例示一模糊區段272的區域270。投影264與近裁切平面254以及遠裁切平面256交叉。投影264可定義具有特定寬度基座的一像素衍射錐。更進一步,投影264可與應含在渲染SLM263上一相關像素內的一包含區275(在寬度之內)交叉,並且與應排除在渲染該像素外的一除外區274(在寬度之外)交叉。在該像素衍射錐之外的分量可移除,當成渲染該像素衍射錐之內一或多個像素的一部分。
第二F圖根據一個具體實施例,例示使用球體照明渲染一光場的方法之演算操作。在該演算操作上,p代表第(m,n)個全息元素內一 SLM像素,與該全息元素中心具有置換(Δx,Δy)。球體照明下每一SLM像素的E(p)之一CGH條紋計算為該物體波E o (p)乘上一共軛參考波(p)。一位置q位於要渲染的一場景物體上,該位置由一索引j來識別。在球體照明底下的一相關虛擬相機空間內,p的空間座標由(Δx+d CX ,Δy+d CY ,-d CZ )所賦予。在一個具體實施例內,p的評估視圖為k×k像素的滑動視窗。更進一步,q j 為該元素像素,具有位於(x qj ,y qj ,z qj )上的一渲染點、一振幅A qj 以及一初始相位。此計算係根據等式1,並且詳細顯示於等式12-16。
在等式12內,可根據等式13計算E o (p)。
在第二F圖的步驟1-4內,i定義為一SLM(例如SLM 263)之內一像素的像素索引,並且像素的子集識別為在一全息元素之內。在該全息元素的滑動視窗之內的像素會給予索引j。步驟5內的迴圈設置為反覆該滑動視窗之內的像素,來計算每一像素的場值。在步驟8內計算從一點q至該SLM之內一像素的一波前相位( ),而在步驟9內計算該波前的一振幅(A )。在步驟11內完成等式12的場加總。
第二G圖根據一個具體實施例,例示元素影像解析度結果的比較。角度取樣率(每觀察角度的像素)已改變,其中影像(a)具有6的角度取樣率、影像(b)具有18的角度取樣率、影像(c)具有30的角度取樣率以及 影像(d)具有45的角度取樣率。每個圖像的插圖(左下)描繪解析度的渲染元素影像,來改變具有對應角度取樣率的解析度,而細節(右上)則顯示在對應角度取樣率下的重建。較低解析度的重建(第一列影像)表現出明顯的混疊;然而,較高解析度的重建(影像底列)外觀平滑,沒有明顯的混疊跡象。一般而言,每度30像素以上的角度取樣率提供很好的近似值,幾乎沒有明顯的混疊。因此在一個具體實施例內,實施高於每度30像素的角度取樣率。
雖然小全息元素尺寸(w h )以及密集分割會增加所需渲染視圖數量,不過較小的全息元素尺寸也會減少模糊區域,並且為眼內消隱產生更精準的透視。通過根據無誤差區段與近似滑動視窗之間一比例來評估全息元素尺寸,可在競爭參數之間達成平衡。在一個具體實施例內,該SLM包含3840x2160的解析度以及w h 1mm。此組態可產生小於0.16%的模糊區域給具有16x9全息元素分割的二維視圖。請注意,較大像素間距可能需要更密集的全息元素分割。
第二H圖根據一個具體實施例,例示渲染一光場的方法280之流程圖。雖然以一處理單元的範疇來描述方法280,不過方法280也可由一程式、自訂電路或自訂電路與一程式的組合來執行。例如:方法280可由一GPU、CPU或任何其他技術可行的處理器來執行。更進一步,精通技術人士將了解,執行方法280的任何系統都在本發明具體實施例的領域與精神之內。
在步驟282上,該處理單元根據一SLM的尺寸以及一全息元素(hogel)的寬度,計算一視點位置與該SLM(例如SLM223、SLM263)之間一橫向偏移(例如d CZ )。在一個具體實施例內,該視點位置指定虛擬相機(例如虛擬相機230、虛擬相機260)的視點位置。更進一步在一個具體實施例內,全息元素的陣列涵蓋該SLM的表面。在步驟284上,該處理單元從該視點位置渲染一三維場景,來產生包含在元素影像陣列之內的一元素影像。該處理單元可渲染元素影像陣列之內的每一元素影像。在一個具體實施例內,元素影像陣列包含一對應的深度圖陣列(例如與元素影像一起渲染)。然後從該元素影像與深度圖計算出一相位圖與一振幅圖,如第一D圖內所述。該相位圖與振幅圖可分割,以形成至該全息元素陣列的一對一映 射。任何技術上可行的技術都可實施來計算該相位圖與該振幅圖。
此時將公佈有關許多選擇架構和功能,如此可依照使用者意願實施或不實施前述結構之更多說明資訊。吾人應該特別注意,下列資訊僅供說明,不應解釋為以任何方式進行限制。下列任何功能都可在排除或不排除所說明其他功能之下選擇性併入。
第三圖根據一個具體實施例,例示一並行處理單元(PPU)300。在一個具體實施例內,PPU 300為多執行緒處理器,實現於一或多個積體電路裝置上。PPU 300為延遲隱藏架構,設計來並行處理許多執行緒。一執行緒(即一執行的執行緒)為設置成由PPU 300執行的指令集之實例。在一個具體實施例內,PPU 300為一圖形處理單元(GPU)。設置成實施一圖形渲染管線來處理三維(3D)圖形資料,以便產生二維(2D)影像資料來顯示於一顯示裝置上,像是液晶顯示器(LCD)裝置。在其他具體實施例內,PPU 300可用來執行一般用途計算。雖然本文為了例示目的而提供一個示範並行處理器,但應強烈指出,此類處理器僅出於說明性目的而闡述,並且可使用任何處理器來補充及/或替代該處理器。
一或多個PPU 300可設置成加速數千個高效能計算(HPC,High Performance Computing)、資料中心以及機器學習應用。PPU 300可設置成加速許多深度學習系統以及應用,包括自主車輛平台、深度學習、高精度語音、影像和文字辨識系統、智慧視頻分析、分子模擬、毒品發現、疾病診斷、天氣預報、大數據分析、天文學、分子動力學模擬、財務建模、機器人技術、工廠自動化、即時語言翻譯、線上搜索優化和個性化用戶推薦等等。
如第三圖內所示,PPU 300包含一輸入/輸出(I/O)單元305、一前端單元315、一排程單元320、一工作分配單元325、一集線器330、一橫桿(Xbar)370、一或多個一般處理叢集(GPC,general processing cluster)350以及一或多個分割單元380。PPU 300可透過一或多個高速NVLink 310互連,連接至一主機處理器或其他PPU 300。PPU 300可透過一互連302連接至一主機處理器或其他週邊裝置,PPU 300也可連接至包含許多記憶體裝 置304的一本機記憶體。在一個具體實施例內,該本機記憶體可包括許多動態隨機存取記憶體(DRAM,dynamic random access memory)裝置。該等DRAM裝置設置成一高頻寬記憶體(HBM,high-bandwidth memory)子系統,每一裝置之內都堆疊多個DRAM晶粒。
NVLink 310互連可讓系統擴展並且包含一或多個PPU 300與一或多個CPU結合,支援PPU 300與CPU之間快取一致性以及CPU主控。資料及/或指令可由NVLink 310通過集線器330傳輸至/來自其他PPU 300的單元,像是一或多個複製引擎、一視頻編碼器、一視頻解碼器、一電源管理單元等等(未明確顯示)。底下結合第五B圖更詳細說明NVLink 310。
I/O單元305設置成透過互連302傳輸與接收來自一主機處理器(未顯示)的通訊(即指令、資料等等)。I/O單元305可直接透過互連302或通過一或多個中間裝置,像是記憶體橋接器,來與該主機處理器通訊。在一個具體實施例內,I/O單元305可透過互連302與一或多個其他處理器通訊,像是一或多個PPU 300。在一個具體實施例內,I/O單元305實現一快速週邊組件互連(PCIe,Peripheral Component Interconnect Express)介面來通過一PCIe匯流排通訊,並且互連302為PCIe匯流排。在替代具體實施例內,I/O單元305可實現其他種已知的介面來與外部裝置通訊。
I/O單元305解碼透過互連302接收的封包。在一個具體實施例內,該等封包代表設置成導致PPU 300執行許多操作的指令。I/O單元305依照該等指令所指示,將已解碼的指令傳輸至PPU 300的許多其他單元。例如:某些指令可傳輸至前端單元315。其他指令可傳輸至集線器330或其他PPU 300的單元,像是一或多個複製引擎、一視頻編碼器、一視頻解碼器、一電源管理單元等等(未明確顯示)。換言之,I/O單元305設置成在PPU 300的許多邏輯單元之間繞送通訊。
在一個具體實施例內,由該主機處理器執行的一程式編碼緩衝區內一指令串流,提供工作負載給PPU 300來進行處理。一工作負載可包括許多指令以及要由這些指令處理的資料。該緩衝區為記憶體內該主機處理器與PPU 300能夠存取(即讀/寫)的一個區域。例如:主機介面單元310可設置成透過由I/O單元305傳輸過互連302的記憶體要求,來存取已連接 至互連302的系統記憶體內之該緩衝區。在一個具體實施例內,該主機處理器將該指令串流寫入至該緩衝區,然後將該指令串流開頭的指標器傳送給PPU 300。前端單元315接收一或多個指令串流的指標器。前端單元315管理該等一或多個串流、讀取來自該等串流的指令以及將指令轉送至PPU 300的許多單元。
前端單元315已連結至一排程單元320,來設置許多GPC 350來處理由該等一或多個串流所定義的處理任務。排程單元320設置成追蹤與排程單元320所管理的許多任務相關之狀態資訊。該狀態可指出任務指派給哪個GPC 350、該任務開始或關閉、與該任務相關連的優先等級等等。排程單元320管理一或多個GPC 350上複數個任務的執行。
排程單元320已連結至工作分配單元325,該分配單元設置成分派任務來在GPC 350上執行。工作分配單元325可追蹤從排程單元320接收到的許多已排程任務。在一個具體實施例內,工作分配單元325為每一GPC 350管理一待決任務池以及一活動任務池。該待決任務池可包括許多槽(例如32個槽),其內含已經指派由一特定GPC 350處理的任務。該活動任務池可包括許多槽(例如4個槽),用於已經由GPC 350處理過的活動任務。當GPC 350完成任務的執行,則該任務會從GPC 350的該活動任務池排除,然後從該待決任務池中選取其他任務之一者,並排定在GPC 350上執行。若一活動任務已經在GPC 350上待命,像是等待解決一資料延遲,則該活動任務會從GPC 350中排除並回到該待決任務池,而該待決任務池中另一個任務獲選並排定在GPC 350上執行。
工作分配單元325透過XBar 370與一或多個GPC 350通訊。XBar 370為一互連網路,將PPU 300的許多單元連結至PPU 300的其他單元。例如:XBar 370可設置成將工作分配單元325連結至特定GPC 350。雖然未明確顯示,不過PPU 300的一或多個其他單元也可透過集線器330連接至XBar 370。
該等任務由排程單元320管理,並且由工作分配單元325派遣至一GPC 350。GPC 350設置成處理該任務並產生結果。該等結果可用於GPC 350之內其他任務、透過XBar 370繞送至不同GPC 350或儲存在記 憶體304內。該等結果可透過分割單元380寫入至記憶體304,該單元實現用於讀取與寫入資料至/來自記憶體304的一記憶體介面。該等結果可透過NVLink 310傳輸至其他PPU 300或CPU。在一個具體實施例內,PPU 300包含數量U的分割單元380,這等於已連結至PPU 300的個別與離散記憶體304之數量。底下結合第四B圖更詳細說明分割單元380。
在一個具體實施例內,一主機處理器執行一驅動程式核心,其實現一應用程式編輯介面(API,application programming interface)來讓一或多個應用程式在該主機處理器上執行,以排定座在PPU 300上執行。在一個具體實施例內,多個計算應用程式同時由PPU 300執行,並且PPU 300提供隔離、服務品質(QoS,quality of service)以及獨立解決空間給該等多個計算應用程式。應用程式可產生指令(即API呼叫),導致該驅動程式核心產生一或多個任務給PPU 300執行。該驅動程式核心輸出任務至已經由PPU 300處理過的一或多個串流。每一個任務都可包括一或多個相關執行緒的群組,在此稱為包覆。在一個具體實施例內,一包覆包括32個可並行執行的執行緒。協作執行緒可以指包括用於執行任務並且可以通過共享記憶體交換資料的指令之複數個執行緒。底下結合第五A圖更詳細說明執行緒以及協作執行緒。
第四A圖根據一個具體實施例,例示第三圖的PPU 300之GPU 350。如第四A圖內所示,每一GPC 350都包含用來處理任務的一些硬體單元。在一個具體實施例內,每一GPC 350都包含一管線管理員410、一預先光柵運算單元(PROP)415、一光柵引擎425、一工作分配橫桿(WDX)480、一記憶體管理單元(MMU)490以及一或多個資料處理叢集(DPC)420。應該了解,第四A圖的GPC 350可包含代替或除了第四A圖中所示單元之外的其他硬體單元。
在一個具體實施例內,GPC 350的操作受到管線管理員410的控制。管線管理員410管理一或多個DPC 420用來處理分配給GPC 350的任一隻組態。在一個具體實施例內,管線管理員410可設置至少一或多個DPC 420之一者來實現至少一圖形渲染管線的一部分。例如:DPC 420可設置成在可程式串流多重處理器(SM,streaming multiprocessor)440上執 行一向量著色器程式。管線管理員410也可設置成將從工作分配單元325接收的封包繞送至GPC 350之內該等適當邏輯單元。例如:某些封包可繞送至PROP 415及/或光柵引擎425內的固定功能硬體單元,而其他封包則可繞送至DPC 420,由圖元引擎435或SM 440進行處理。在一個具體實施例內,管線管理員410可設置至少一或多個DPC 420之一者,來實現一神經網路模型及/或一計算管線。
PROP單元415設置成繞送光柵引擎425以及DPC 420所產生的資料至分歌單元380內的一光柵運算(ROP,Raster Operation)單元,結合第四B圖有更詳細的說明。PROP單元415也可設置成執行混色、組織像素資料、執行位址轉譯等等的最佳化。
光柵引擎425包含一些設置成執行許多光柵運算的固定功能硬體單元。在一個具體實施例內,光柵引擎425包含一設定引擎、一粗光柵引擎、一消隱引擎、一裁切引擎、一細光柵引擎以及一拼貼合併引擎。該設定引擎接收已轉換的向量,並產生由該等向量所定義的該幾河圖元相關連之平面等式。該平面等式傳送至該粗光柵引擎,來產生該圖元的涵蓋資訊(例如用於拼貼的x,y涵蓋標記)。該粗光柵引擎的輸出傳輸至該消隱引擎,在此消隱與未通過z測試的圖元相關連之片段,並且傳輸至一裁切引擎,來裁切超出視體之外的片段。這些通過裁切與消隱的片段可傳遞至該細光柵引擎,根據該設定引擎所產生的該平面等式,產生該等像素片段的屬性。光柵引擎425的輸出包括要處理的片段,例如由DPC 420之內實現的一片段著色器處理。
GPC 350內含的每一DPC 420都包含一M-Pipe控制器(MPC)430、一圖元引擎435以及一或多個SM 440。MPC 430控制DPC 420的操作,將接收自管線管理員410的封包繞送至DPC 420內適當的單元。例如:關聯於一向量的封包可繞送至圖元引擎435,該引擎設置成從記憶體304當中擷取與該向量相關聯的向量屬性。相較之下,關聯於一著色器程式的封包可傳輸至SM 440。
SM 440包括一可程式串流處理器,其設置成來處理由一些執行緒所代表的任務。每一SM 440都是多執行緒並且設置成執行同時來自 特定執行緒群組的複數個執行緒(例如32個執行緒)。在一個具體實施例內,SM 440實現一SIMD(單一指令,多重資料)架構,其中一執行緒群組(即一包覆)內的每一執行緒都設置成根據相同指令集,處理不同的資料集。該執行緒群組內的所有執行緒執行相同的指令。在另一個具體實施例內,SM 440實現一SIMT(單一指令,多重執行緒)架構,其中執行緒群組內的每一執行緒都設置成根據相同指令集來處理不同的資料集,但是其中允許在執行期間發散該執行緒群組內的個別執行緒。在一個具體實施例內,針對每一包覆維持一程式計數器、呼叫堆疊以及執行狀態,當該包覆之內的執行緒發散時,啟用包覆之間的並行以及包覆之內的序列執行。在另一個具體實施例內,針對每一個別執行緒維持一程式計數器、呼叫堆疊以及執行狀態,啟用在包覆之內與之間的所有執行緒間之等量並行。當針對每一個別執行緒維持執行狀態時,執行相同指令的執行緒可收斂並且並行執行,以便有最大效率。底下結合第五A圖更詳細說明SM 440。
MMU 490提供GPC 350與分割單元380之間的介面。MMU 490可提供虛擬位址轉譯成實體位置、記憶體保護以及記憶體要求仲裁。在一個具體實施例內,MMU 490提供一或多個轉譯後備緩衝器(TLB,translation lookaside buffer),用來執行記憶體304內虛擬位址至實體位置的轉譯。
第四B圖根據一個具體實施例,例示第三圖中PPU 300的一記憶體分割單元380。如第四B圖內所示,記憶體分割單元380包含一光柵運算(ROP)單元450、一第二階(L2)快取460以及一記憶體介面470。記憶體介面470已連結至記憶體304。記憶體介面470可實現32、64、128、1024位元資料匯流排等等,用於高速資料傳輸。在一個具體實施例內,PPU 300合併U記憶體介面470,每一分割單元380配對一個記憶體介面470,其中每一分割單元380配對都連接至一對應記憶體裝置304。例如:PPU 300可連接至最多Y個記憶體裝置304,像是高頻寬記憶體堆疊或圖形雙資料率第5版同步動態隨機存取記憶體(GDDR5 SDRAM)。
在一個具體實施例內,記憶體介面470實現一HBM2記憶體介面,並且Y等於U的一半。在一個具體實施例內,該HBM2記憶體堆 疊位於與PPU 300相同的實體封包上,提供與傳統GDDR5 SDRAM系統相比更省電並且節省面積。在一個具體實施例內,每一HBM2堆疊都包括四個記憶體晶粒並且Y等於4,其中HBM2堆疊包含每晶粒兩個128位元通道,總共8個通道並且資料匯流排寬度1024位元。
在一個具體實施例內。記憶體304支援單錯誤修正雙錯誤偵測(SECDED)錯誤修正碼(ECC)來保護資料。ECC提供較高可信賴度,給對資料毀損敏感的計算應用程式。在大比例叢集計算環境中,可信賴度特別重要,其中PPU 300處理非常大量資料集及/或運行應用程式來延長週期時。
在一個具體實施例內,PPU 300實現一多階記憶體階層。在一個具體實施例內,記憶體分割單元380支援統一記憶體,來提供單一統一虛擬位址空間給CPU和PPU 300記憶體,讓資料可在虛擬記憶體系統之間共享。在一個具體實施例內,追蹤PPU 300對位於其他處理器上記憶體的存取頻率,以確定記憶體分頁已移動至比較頻繁存取該等分頁的PPU 300之實體記憶體。在一個具體實施例內,NVLink 310支援位址轉譯服務,讓PPU 300直接存取一CPU的分頁表並提供由PPU 300完整存取CPU記憶體。
在一個具體實施例內,複製引擎在多個PPU 300之間或PPU 300與CP間傳輸資料。該等複製引擎可產生分頁故障給未映射至該分頁表的位址。然後,記憶體分割單元380可服務該分頁故障、將該等位址映射至該分頁表,之後該複製引擎可執行傳輸。在傳統系統中,記憶體固定(即不可分頁)用於多個處理器之間的多個複製引擎運算,因此大幅減少可用的記憶體。在硬體分頁故障下,位址可以傳遞到該等複製引擎而不用擔心該等記憶體分頁是否駐留,以及該複製過程是否透明。
來自記憶體304或其他系統記憶體的資料可由記憶體分割單元380擷取,並儲存在L2快取460內,其位於晶片上並且在許多GPC 350之間共享。如所示,每一記憶體分割單元380都包含一部分L2快取460關聯於一對應記憶體裝置304。然後,較低階快取可實現於GPC 350之內許多單元內。例如:每一SM 440都可實現第一階(L1)快取。該L1快取為專屬於特定SM 440的記憶體。來自L2快取460的資料可擷取並儲存在每一 L1快取內,以便在SM 440的功能單元內處理。L2快取460已連結至記憶體介面470和XBar 370。
ROP單元450執行關於像素顏色的圖形光柵運算,像是顏色壓縮、像素混合等等。ROP單元450也結合光柵引擎425實現深度測試,接收與來自光柵引擎425的該消隱引擎之一像素片段相關聯的一樣本位置之深度。針對與該片段相關聯的樣本位置深度緩衝區中之對應深度來測試深度。若該片段通過該樣本位置的深度測試,則ROP單元450更新該深度緩衝區,並將該深度測試結果傳輸至光柵引擎425。應該了解,分割單元380的數量可能與GPC 350的數量不同,因此每一ROP單元450都可連結至每一GPC 350。ROP單元45追蹤接收自不同GPC 350封包,並且決定ROP單元450所產生的結果通過Xbar 370繞送到哪個GPC 350。
第五A圖根據一個具體實施例,例示第四A圖的串流多重處理器440。如第五A圖內所示,SM 440包含一指令快取505、一或多個排程器單元510(K)、一暫存檔520、一或多個處理核心550、一或多個特殊功能單元(SFU,special function unit)552、一或多個載入/儲存單元(LSU,load/store unit)554、一互連網路580、一共享記憶體/L1快取570。
如上述,工作分配單元325派遣任務來在PPU 300的GPC 350上執行。該等任務分配給GPC 350之內的特定DPC 420,並且若該任務關聯於一著色器程式,則可將該任務分配給一SM 440。排程器單元510(K)接收來自工作分配單元325的任務,並且管理排定用於已指派至SM 440的一或多個執行緒區塊之指令。排程器單元510(K)排定執行緒區塊來當成並行執行緒的包覆來執行,其中每一執行緒區塊都分配至少一個包覆。在一個具體實施例內,每一包覆執行32個執行緒。排程器單元510(K)可管理複數個不同的執行緒區塊,分配包覆給不同的執行緒區塊,然後在每一時脈循環期間,將來自該等複數個不同協作群組的指令派遣至許多功能單元(即核心550、SFU 552以及LSU 554)。
協作群組為一程式編輯模型,用來組織通訊執行緒的群組,允許開發人員能夠表達執行緒通訊的粒度,從而實現更豐富、更高效的並行分解。協作啟動API支援執行緒區塊之間的同步,用於並行演算法的執 行。傳統程式編輯模型提供單一、簡單結構用於同步協作執行緒:一障礙跨越執行緒區塊的所有執行緒(即syncthreads( )函數)。然而,程式設計師通常喜歡將執行緒群組定義成小於執行緒區塊粒度,並且在集中群組寬函數介面的形式下,於已定義群組之內同步來產生更大效能、設計彈性以及軟體重複使用。
協作群組可讓程式設計師在子區塊(即小至單一執行緒)以及多區塊粒度上明確定義執行緒群組,並且執行集中操作,像是在協作群組內的執行緒上同步。該程式編輯模型支援乾淨成分跨越軟體邊界,如此函數庫與公用函數可在其本地範圍之內安全同步,而不用對收斂進行假設。協作群組圖元允許協作並行的新模式,包括生產者-消費者並行、機會主義並行以及全體同步跨越執行緒區塊的整個網格。
一派遣單元515設置成傳輸指令至該功能單元的一或多者。在具體實施例內,排程器單元510(K)包含兩個派遣單元515,可在每一時脈循環期間,派遣來自相同包覆的兩個不同指令。在替代具體實施例內,每一排程器單元510(K)都可包含單一派遣單元515或額外派遣單元515。
每一SM 440都包含一暫存檔520,其提供一組暫存器給SM 40的該等功能單元。在一個具體實施例內,暫存檔520在每一功能單元之間區分,如此每一功能單元都可分配給暫存檔520的專屬部分。在另一個具體實施例內,暫存檔520在SM 440所執行的不同包覆之間區分。暫存檔520提供暫存給連接至該功能單元的資料路徑之運算元。
每一SM 440都包括L個處理核心550。在一個具體實施例內,SM 440包含大量(例如128個等等)不同的處理核心550。每一核心550都可包含一完整管線、單精度、雙精度及/或混合精度處理單元,其包含一浮點算術邏輯單元以及一整數算術邏輯單元。在一個具體實施例內,該浮點算術邏輯單元實現浮點算術的IEEE 754-2008標準。在一個具體實施例內,核心550包含64個單精度(32位元)浮點核心、64個整數核心、32個雙精度(64位元)浮點核心以及8個張量核心。
張量核心設置成執行矩陣運算,並且在一個具體實施例內,核心550內包含一或多個張量核心。尤其是,該等張量核心設置成執行深 度學習矩陣算術,像是用於神經網路訓練與推理的捲積運算。在一個具體實施例內,每一張量核心都在4x4矩陣上運算,並且執行矩陣乘法與加法運算D=A×B+C,其中A、B、C和D為4x4矩陣。
在一個具體實施例內,該矩陣乘法輸入A和B為16位元浮點矩陣,而該加法矩陣C和D可為16位元浮點或32位元浮點矩陣。張量核心以32位元浮點加法在16位元浮點輸入資料上運算。該16位元浮點乘法需要64次運算,並且產生全精度乘積,然後使用32位元浮點加法與4x4x4矩陣乘法的其他中間乘積累加。實際上,張量核心用來執行更大的二維或較高維度矩陣運算,由這些較小元素構成。一API,像是CUDA 9 C++API,暴露特殊矩陣負載、矩陣乘法與加法以及矩陣儲存運算,來有效使用來自CUDA-C++程式的張量核心。在該CUDA等級上,該包覆等級介面假設大小16x16的矩陣橫跨該包覆的所有32個執行緒。
每一SM 440也包括M個SFU 552,其執行特殊功能(例如屬性評估、倒數平方根等等)。在一個具體實施例內,SFU 552可包含一樹狀橫貫單元,設置成橫貫一階層樹狀資料結構。在一個具體實施例內,SFU 552可包含紋理單元,設置成執行紋理圖篩選運算。在一個具體實施例內,該等紋理單元可設置成從記憶體304載入紋理圖(例如2D紋理陣列),並且對該等紋理圖取樣來產生取樣紋理值,用於由SM 440執行的著色器程式。在一個具體實施例內,該等紋理圖儲存在該著色的記憶體/L1快取470內。該紋理單元實現紋理運算,如此使用mip圖(即細節程度改變的紋理圖)的篩選運算。在一個具體實施例內,每一SM 440都包含兩個紋理單元。
每一SM 440也包括N個LSU 554,其實現共享記憶體/L1快取570與暫存檔520之間的載入與儲存操作。每一SM 440都包含一互連網路580,將每一功能單元連接至暫存檔520以即將LSU 554連接至暫存檔520,共享記憶體/L1快取570。在一個具體實施例內,互連網路580為一橫桿,其可設置成將任何功能單元連接至暫存檔520內任何暫存器,並且將LSU 554連接至該暫存檔與共享記憶體/L1快取570內記憶體位置。
共享記憶體/L1快取570為晶片上記憶體的陣列,允許SM 440與圖元引擎435之間以及SM 440內執行緒之間的資料儲存與通訊。在 一個具體實施例內,共享記憶體/L1快取570包括128KB的儲存容量,並且在從SM 440至分割單元380的路徑內。共享記憶體/L1快取570可用來快取讀取與寫入。共享記憶體/L1快取570、L2快取460以及記憶體304之一或多者為後被儲存裝置。
將資料快取與共享記憶體功能結合成單一記憶體區塊,提供最佳整體效能給兩種記憶體存取。該容量可用作不使用共享記憶體的程式快取,例如:若共享記憶體設置成使用該容量的一半,則紋理與載入/儲存操作可使用剩餘的容量。共享記憶體/L1快取570之內的積分可讓共享記憶體/L1快取570作用於串流資料的高產量管道,同時提供高頻寬與低延遲存取給經常重複使用的資料。
當設置用於一般用途並行計算時,與圖形處理比較起來可使用較簡單的組態。尤其是,旁通過第三圖內顯示的該固定功能圖形處理單元,建立更簡單的程式編輯模型。在意班用途並行計算組態中,工作分配單元325直接指派並分配執行緒區塊給DPC 420。一區塊內的執行緒執行相同程式,在計算當中使用獨一執行緒ID以確保每一執行緒產生獨一的結果,運用SM 440來執行該程式並執行計算,共享記憶體/L1快取570在執行緒之間通訊,並且LSU 554來讀取與寫入全體記憶體通過共享記憶體/L1快取570和記憶體分割單元380。當設置用於一般用途並行計算時,SM 440也可寫入指令,讓排程器單元320可用來在DPC 420上發表新工作。
PPU 300可包含在桌上型電腦、膝上型電腦、平板電腦、伺服器、超級電腦、智慧型手機(例如無線、手持式裝置)、個人數位助理(PDA)、數位相機、車輛、頭戴式顯示器、手持式電子裝置等等之內。在一個具體實施例內,PPU 300具體實施於單一半導體基板上。在另一個具體實施例內,PPU 300包含在晶片上系統(SoC)內,搭配一或多個其他裝置,像是額外的PPU 300、記憶體304、一精簡指令集電腦(RISC,reduced instruction set computer)CPU、一記憶體管理單元(MMU)、一數位類比轉換器(DAC)等等。
在一個具體實施例內,PPU 300可包含在含有一或多個記憶體裝置304的繪圖卡上。該繪圖卡可設置成插入桌上型電腦主機板上的PCIe插槽。尚且在另一個具體實施例內,PPU 300可為整合式圖形處理單元(iGPU) 或含在主機板晶片組內的並行處理器。
具有多個GPU和CPU的系統被廣泛應用於各個行業,因為開發人員在人工智慧計算等應用中公開並利用更多並行性。具備數十到數千計算節點的高效能GPU加速系統都佈署在資料中心、研究機構以及超級電腦內,來解決更大的問題。隨著高校疼系統內處理裝置數量增加,該通訊與資料傳輸機制需要擴展以支援所增加的。
第五B圖根據一個具體實施例,例示使用第三圖中PPU 300來實現的一處理系統500之概念圖。處理系統500可設置成實現第一A圖內顯示的方法110、第一B圖內顯示的方法120、第二H圖內顯示的方法280或這些的任意組合。處理系統500包含一CPU 530、交換器510以及多個PPU 300,每個都有個別記憶體304。NVLink 310提供每一PPU 300之間一高速通訊連結。交換器510介接在互連302與CPU 530之間。PPU 300、記憶體304以及NVLinks 310可位於單一半導體平台上,來形成一並行處理模組525。
在本說明的範圍內,單一半導體平台可稱為單體半導體式積體電路或晶片。吾人應該注意,單一半導體平台一詞也表示多晶片模組,其具備提高的連線性來模擬晶片上運算,並且運用傳統匯流排做大幅改善。當然,依照使用者的意願,許多電路或裝置也可分開或與半導體平台進行許多結合。另外,並行處理模組525可實現為一電路板基板,並且PPU 300及/或記憶體304的每一者都可為已封裝裝置。在一個具體實施例內,CPU 530、交換器510以及並行處理模組525都位於單一半導體平台上。
在一個具體實施例內,每一NVLink 310的取樣率為20至25 Gigabits/秒,並且每一PPU 300都包含六個NVLink 310介面(如第五B圖內所示,包含五個NVLink 310介面用於每一PPU 300)。每一NVLink 310在每一方向內都提供25 Gigabytes/秒的資料傳輸率。當CPU 530也包含一或多個NVLink 310介面時,NVLinks 310可專用於PPU至PPU通訊,如第五B圖內所示。
在一個具體實施例內,NVLink 310允許直接從CPU 530載 入/儲存/原子存取至每一PPU 300的記憶體304。在一個具體實施例內,NVLink 310支援一致性操作,允許將從記憶體304讀取的資料儲存在CPU 530的該快取階層內,減少CPU 530的快取存取延遲。在一個具體實施例內,NVLink 310包含支援位址轉譯服務(ATS,Address Translation Service),允許PPU 300直接存取CPU 530之內的分頁表。NVLinks 310的一或多者也可設置成在低功率模式下操作。
第五C圖說明其中可實施許多先前具體實施例的許多架構和/或功能性之示範系統565。示範系統565可設置成實現第一A圖內顯示的方法110、第一B圖內顯示的方法120、第二H圖內顯示的方法280或這些的任意組合。
如所示,提供的系統565包含至少一個中央處理單元530,其連接至通訊匯流排575。通訊匯流排575可使用任何合適的通訊協定來實施,例如PCI(週邊組件互連)、PCI-Express、AGP(加速圖形連接埠)、HyperTransport或任何其他匯流排或點對點通訊協定。系統565也包含主記憶體540。控制邏輯(軟體)以及資料都儲存在主記憶體540內,此記憶體可採用隨機存取記憶體(RAM,random access memory)。
系統565也包含輸入裝置560、並行處理系統525以及顯示裝置545,即是一傳統CRT(陰極射線管)、LCD(液晶顯示器)、LED(發光二極體)、電漿顯示器等等。使用者輸入可從輸入裝置560接收,例如鍵盤、滑鼠、觸控板、麥克風等等。每一前述模組及/或裝置都位於單一半導體平台上來形成系統565。另外,依照使用者的意願,許多模組也可分開或與半導體平台進行許多結合。
進一步,系統565可通過通訊用途的網路介面535連結至網路(例如通訊網路、區域網路(LAN,local area network)、無線網路、廣域網路(WAN,wide area network),像是網際網路、點對點網路、有線電視網路等等)。
系統565也可包含一次要儲存裝置(未顯示)。次要儲存裝置610包含例如:硬碟機以及/或可移除式儲存裝置,像是軟碟機、磁帶機、光碟機、數位多功能光碟機(DVD,digital versatile disk)、記錄裝置、萬用 序列匯流排(USB,universal serial bus)快閃記憶體。可移除式儲存裝置用已知的方式讀寫可移除式儲存單元。
電腦程式(或電腦控制邏輯)可儲存在主記憶體540及/或該次要儲存裝置內,這種電腦程式在執行時可讓系統565執行許多功能。主記憶體540、該儲存裝置及/或任何其他儲存裝置都可為電腦可讀取媒體的範例。
許多附圖的架構以及/或功能性都可在一般電腦系統、電路板系統、娛樂專用遊戲控制台系統、應用專屬系統以及/或其他任何所要系統的範圍內實施。例如:系統565可為桌上型電腦、膝上型電腦、平板電腦、伺服器、超級電腦、智慧型手機(例如無線、手持式裝置)、個人數位助理(PDA)、數位相機、車輛、頭戴式顯示器、手持式電子裝置、行動電話裝置、電視、工作站、遊戲主機、嵌入式系統及/或任何其他邏輯類型的形式。
當上面已經說明許多具體實施例時,必須了解到它們係僅藉由範例來呈現,並非構成限制。因此,較佳取體實施例之廣度及範疇並不侷限於上述任何示範性具體實施例,而應僅根據以下的申請專利範圍及其等效內容來定義。
在一個具體實施例內,PPU 300包括一圖形處理單元(GPU)。PPU 300設置成接收指令,其指定著色器程式用於處理圖形資料。圖形資料可定義為一組圖元,例如點、線、三角形、四邊形、三角條形等等。通常,一圖元包含指定圖元多個頂點的資料(例如在模型空間座標系統內),以及與該圖元每一頂點相關聯的屬性。PPU 300可設置成處理該圖形圖元,來產生一訊框緩衝區(即顯示器每個像素的像素資料)。在一個具體實施例內,根據本文內討論的技術,該GPU渲染一SLM(例如第二D圖內的SLM 263)的像素之相位與振幅樣本。尤其是,包括幾何形狀、頂點及/或片段圖元的3D場景資訊可由該GPU渲染,來產生與不同場景物體相關聯的片段。使用3D渲染管線z緩衝區可執行視覺相依效果。在一個具體實施例內,利用該GPU之內PPU 300的一或多個實例可同時產生該等片段。更進一步,根據該3D場景的已計算虛擬相機視點可渲染元素影像的陣列,然後 該等元素影像用來計算對應的全息元素。一全息光場訊框包括由該SLM呈現給觀看者的全息元素陣列。運用適當的視點相依消隱、連續聚焦提示以及根據特定應用場景資訊的即時回應(例如模型資料與虛擬相機位置資料),該GPU所渲染以及該SLM所顯示的光場訊框之時序可提供該觀看者在3D場景內觀看實際3D物體的體驗。
一應用程式將用於一場景的模型資料(即頂點與屬性的集合)寫入至記憶體,像是系統記憶體或記憶體304。該模型資料定義顯示器上可見的每一物體。然後該應用程式發出API呼叫至該驅動程式核心,要求渲染並顯示該模型資料。該驅動程式核心讀取該模型資料,並將指令寫入至該等一或多個串流,來執行處理該模型資料的操作。該等指令可參考要在PPU 300的SM 440上實現的不同著色器程式,包括頂點著色器、外殼著色器、領域著色器、幾何著色器以及像素著色器之一或多者。例如:SM 440的一或多者可設置成執行一頂點著色器程式,其處理由該模型資料所定義的許多頂點。在一個具體實施例內,不同的SM 440可設置成同時執行不同的著色器程式。例如:SM 440的第一子集可設置成執行一頂點著色器程式,而SM 440的第二子集可設置成執行一像素著色器程式。SM 440的該第一子集處理頂點資料來產生已處理過的頂點資料,並將該已處理過的頂點資料寫入至L2快取460及/或記憶體304。在光柵化該已處理過的頂點資料(即在場景空間內從三維資料轉換成二維資料)來產生片段資料之後,SM 440的該第二子集執行一像素著色器來產生已處理過的片段資料,然後該資料與其他已處理片段資料混合,並寫入至記憶體304內的該訊框緩衝區。該頂點著色器程式與像素著色器程式可同時執行,以管線方式處理來自相同場景的不同資料,直到該場景的所有模型資料都已經渲染至該訊框緩衝區。然後,該訊框緩衝區的內容傳輸至一顯示器控制器,來顯示於一顯示裝置上。
第六圖根據一個具體實施例,例示通過第三圖中PPU 300來實現的一圖形處理管線600之概念圖。圖形處理管線600為實現來從3D幾何資料產生2D電腦產生影像的處理步驟之抽象流程圖。眾所週知,管線架構可以通過將該操作分成複數個階段來更高效地執行長時間延遲操作, 其中每個階段的輸出都連結至下一個連續階段的輸入。如此,圖形處理管線600接收輸入資料601,其從圖形處理管線600的一個階段傳輸至下一個階段,來產生輸出資料602。在一個具體實施例內,圖形處理管線600可代表由該OpenGL® API所定義的圖形處理管線。選擇性,可在先前圖式及/或任何後續圖式的架構以及功能範圍內實現圖形處理管線600。
如第六圖內所示,圖形處理管線600包括內含許多階段的一管線架構。該等階段包含但不受限於一資料組裝階段610、一頂點著色階段620、一圖元組裝階段630、一幾何著色階段640、一視點比例縮放、消隱與裁切(VSCC)階段650、一光柵化階段660、一片段著色階段640以及一光柵運算階段680。在一個具體實施例內,輸入資料601包括設置該等處理單元來實現圖形處理管線600的階段以及由該等階段處理幾何圖元(例如點、線、三角形、長方形、三角條形或扇形等等)之指令。輸出資料602可包括複製到訊框緩衝區內的像素資料(即顏色資料),或記憶體內的其他種表面資料結構。
資料組裝階段610接收指定頂點資料用於高階表面、圖元等等的輸入資料601。資料組裝階段610收集暫時儲存裝置或佇列內的頂點資料,像是通過接收來自該主處理器的指令,其中包含至記憶體內緩衝區的指標器並且讀取來自該緩衝區的頂點資料。然後將該頂點資料傳輸至頂點著色階段620進行處理。
頂點著色階段620通過對每個頂點執行一組操作(即頂點著色器或程式),來處理頂點資料。頂點可為例如指定為與一或多個頂點屬性(例如顏色、紋理坐標、表面法線等)相關聯的4坐標向量(即<x,y,z,w>)。頂點著色階段620可操縱單獨頂點屬性,例如位置、顏色、紋理座標等等。換言之,頂點著色階段620在該頂點座標上或與一頂點相關聯的其他頂點屬性上執行操作。這種操作通常包括照明操作(即修改一頂點的顏色屬性)以及變換操作(即修改一頂點的座標空間)。例如:可使用物體座標空間內的座標來指定頂點,利用將該座標乘上矩陣來變換,將該座標從該物體座標空間轉換成一世界空間或一正規化裝置座標(NCD,normalized-device-coordinate)空間。頂點著色階段620產生變換的頂點資 料,其傳輸至圖元組裝階段630。
圖元組裝階段630收集頂點著色階段620輸出的頂點,並將該等頂點分成幾何圖元,由幾何著色階段640來處理。例如:圖元組裝階段630可設置成將每三個連續頂點分成一幾何圖元(即三角形),來傳輸至幾何著色階段640。在某些具體實施例內,特定頂點可重複用於連續幾何圖元(例如三角帶形內的兩連續三角形可共享兩個頂點)。圖元組裝階段630傳輸幾何圖元(即相關頂點的集合)至幾何著色階段640。
幾何著色階段640通過在該等幾何圖元上執行一組操作(即幾何著色器或程式),來處理幾何圖元。鑲嵌操作可以從每個幾何圖元生成一或多個幾何圖元。換言之,幾何著色階段640可將每個幾何圖元細分成兩或多個幾何圖元的更精細網格,以供圖形處理管線600的剩餘部分進行處理。幾何著色階段640將幾何圖元傳輸至視點SCC階段650。
在一個具體實施例內,圖形處理管線600可在一串流多重處理器之內操作,並且頂點著色階段620、圖元組裝階段630、幾何著色階段640、片段著色階段670及/或相關的硬體/軟體會依序執行處理操作。一旦完成該等依序處理操作,在一個具體實施例內,視點SCC階段650可利用該資料。在一個具體實施例內,由圖形處理管線600內一或多個階段所處理過的圖元資料可寫入至一快取(例如L1快取、頂點快取等等)。在此情況下,在一個具體實施例內,視點SCC階段650可存取該快取內的資料。在一個具體實施例內,視點SCC階段650和光柵化階段660實現為固定功能電路。
視點SCC階段650執行該幾何圖元的視點比例縮放、消隱以及裁切。所要渲染的每一表面都關聯於一抽象相機位置。該相機位置代表觀察者觀看該場景的位置,並且定義包圍該場景物體的一視體。該視體可包含一觀看平面、一後平面以及四個裁切平面。完全在該視體之外的任何幾何圖元都將消隱(即忽略),因為該幾何圖元對於最終渲染的場景並無貢獻。部分位於該視體之內並且部分位於該視體之外的任何幾何圖元都可裁切(即轉換成包含在該視體之內的新幾何圖元)。更進一步,每一幾何圖元都可根據該視體的深度比例縮放。然後,所有潛在可見的幾何圖元都傳輸至 光柵化階段660。
光柵化階段660將3D幾何圖元轉換成2D片段(例如可用於顯示等等)。光柵化階段660可設置成運用該等幾何圖元的頂點,來設定一組平面等式,從中可內插許多屬性。光柵化階段660也可計算複數個像素的涵蓋遮罩,指出該像素的一或多個取樣位置是否與該幾何圖元交叉。在一個具體實施例內,也可執行z測試來決定該幾何圖元是否被已經光柵化的其他幾何圖元遮蔽。光柵化階段660產生片段資料(即與每一遭覆蓋像素的特定取樣位置相關聯之內插頂點屬性),然後傳輸至片段著色階段670。
片段著色階段670通過對每個片段執行一組操作(即片段著色器或程式),來處理片段資料。片段著色階段670可產生用於該片段的像素資料(即顏色值),像是利用執行照明操作或使用該片段的內插紋理座標來對紋理圖取樣。片段著色階段670產生像素資料,並傳輸至光柵運算階段680。
光柵運算階段680可在該像素資料上執行許多操作,像是執行阿爾發測試、模板測試以及將該像素資料與對應至與該像素相關聯的其他片段之其他像素資料混合。當光柵運算階段680已經完成該像素資料的處理(即輸出資料602),則該像素資料可寫入至一渲染目標,像是訊框緩衝區、顏色緩衝區等等。
應該了解,除了上述一或多個階段以外,在圖形處理管線600內可包含一或多個額外階段。該抽象圖形處理管線的許多實施可實施不同階段。更進一步,在某些具體實施內可從該圖形處理管線排除上述一或多個階段(像是幾何著色階段640)。其他種圖形處理管線可認為在本發明的範圍之內。更進一步,圖形處理管線600的任何階段都可由圖形處理器之內一或多個專屬硬體單元來實現,像是PPU 200。圖形處理管線600的其他階段可由可程式硬體單元來實現,像是PPU 300的SM 440。
圖形處理管線600可透過由主處理器(像是CPU)所執行的應用程式來實現。在一個具體實施例內,一裝置驅動程式可實現一應用程式編輯介面(API),其定義一應用程式可運用的許多功能,以便產生顯示用的圖形資料。該裝置驅動程式為包含複數個指令來控制PPU 300的操作之軟 體程式。該API提供抽象概念給程式設計師,讓程式設計師運用特殊圖形硬體,像是PPU 300,來產生該圖形資料,而不需要程式設計師運用PPU 300的特定指令集。該應用程式可包括繞送至PPU 300的該裝置驅動程式之一API呼叫。該裝置驅動程式解析該API呼叫,並執行許多操作來回應該API呼叫。在某些實例中,該裝置驅動程式可利用在該CPU上執行指令來執行操作。在其他實例中,該裝置驅動程式可利用該CPU與PPU 300之間的一輸入/輸出介面,至少部分在PPU 300上啟動操作來執行操作。在一個具體實施例內,該裝置驅動程式設置成運用PPU 300的硬體來實現圖形處理管線600。
在PPU 300之內可執行許多城市,以便實現圖形處理管線600的許多階段。例如:該裝置驅動程式可在PPU 300上啟動一核心,來在一個SM 440(或多個SM 440)上執行頂點著色階段620。該裝置驅動程式(或由PPU 400執行的初始核心)也可在PPU 400上啟動其他核心,來執行圖形處理管線600的其他階段,像是幾何著色階段640以及片段著色階段670。此外,圖形處理管線600的某些階段可實現於固定單元硬體,像是PPU 400之內實現的光柵器或資料組裝器。應該了解,來自一個核心的結果在經過SM 440上後續核心處理之前,可由一或多個中間固定功能硬體單元處理。
當上面已經說明許多具體實施例時,必須了解到它們係僅藉由範例來呈現,並非構成限制。因此,本發明之廣度及範疇並不侷限於上述任何示範性具體實施例,而應僅根據以下以及後續申請專利範圍及其等效內容來定義。
220‧‧‧渲染組態
223‧‧‧SLM
224‧‧‧近裁切平面
226‧‧‧遠裁切平面
232‧‧‧視體
234‧‧‧投影
238‧‧‧全息元素
239‧‧‧全息元素
240‧‧‧區域
Claims (20)
- 一種渲染一光場的方法,包括:從位於一空間光調變器(SLM)的一第一側上之一視點將射線投射至位於該SLM的一相對側上之一裁切平面,來在一三維場景之內形成一元素視體,其中該SLM與不重疊元素區的陣列拼貼,並且該不重疊元素區的一第一元素區域之一頂緣與一底緣與該等射線交叉,來形成該元素視體;以及在該元素視體之內渲染物體,來產生用於該第一元素區的一第一元素影像之分量,其中該光場包含該第一元素影像以及對應至該元素區陣列的額外元素影像,並且使用一額外元素視體渲染該等額外元素影像之每一者。
- 如申請專利範圍第1項之方法,其中針對該第一元素區之內該SLM的每一像素,該渲染包括:投射來自該SLM像素的第二射線至該裁切平面,來定義具有第一寬度基底的一像素衍射錐;以及移除該第一元素影像分量超出該像素衍射錐之外的部分。
- 如申請專利範圍第1項之方法,其中該等分量包含三維空間內的顏色與位置。
- 如申請專利範圍第1項之方法,其中該等分量包含相位和振幅。
- 如申請專利範圍第4項之方法,進一步包括計算該相位與振幅,當成一物體波與對應至一平面波照明源的一共軛參考波之乘積。
- 如申請專利範圍第4項之方法,進一步包括計算該相位與振幅,當成一物體波與對應至一球體波照明源的一共軛參考波之乘積。
- 一種渲染一光場的方法,包括:根據一空間光調變器(SLM)的尺寸與一全息圖元素的寬度,計算一觀看位置與該SLM之間的橫向偏移,其中全息圖元素的陣列覆蓋該SLM的表面;以及從該觀看位置渲染一三維場景,來產生元素影像的陣列。
- 如申請專利範圍第7項之方法,其中針對元素影像陣列的至少一個元 素影像,渲染包括:計算對應至該至少一個元素影像的一顏色陣列與一深度陣列。
- 如申請專利範圍第8項之方法,進一步包括:根據來自該深度陣列的至少一深度值,計算該SLM的一像素之相位值。
- 如申請專利範圍第8項之方法,進一步包括:根據來自該顏色陣列的至少一對應顏色值,計算該SLM的一像素之振幅值。
- 如申請專利範圍第7項之方法,進一步包括計算該SLM的一像素之一相位與一振幅,當成一物體波與對應至一球體波照明源的一共軛參考波之乘積。
- 如申請專利範圍第7項之方法,其中渲染包括投射來自該SLM像素的射線至該裁切平面,來定義具有一寬度基底的一像素衍射錐。
- 如申請專利範圍第12項之方法,進一步包括:移除該第一元素影像分量超出該像素衍射錐之外的部分。
- 一種用於渲染一光場的系統,包括:一空間光調變器(SLM);以及一處理單元,其連結至該SLM並且設置成:從位於該SLM的一第一側上之一視點將射線投射至位於該SLM的一相對側上之一裁切平面,來在一三維場景之內形成一元素視體,其中該SLM與不重疊元素區的陣列拼貼,並且該不重疊元素區的一第一元素區域之一頂緣與一底緣與該等射線交叉,來形成該元素視體;以及在該元素視體之內渲染物體,來產生用於該第一元素區的一第一元素影像之分量,其中該光場包含該第一元素影像以及對應至該元素區陣列的額外元素影像,並且使用一額外元素視體渲染該等額外元素影像之每一者。
- 如申請專利範圍第14項之系統,其中針對該第一元素區之內該SLM的每一像素,該渲染包括:投射來自該SLM像素的第二射線至該裁切平面,來定義具有第一寬度基底的一像素衍射錐;以及 移除該第一元素影像分量超出該像素衍射錐之外的部分。
- 如申請專利範圍第14項之系統,其中該等分量包含三維空間內的顏色與位置。
- 如申請專利範圍第14項之系統,其中該等分量包含相位和振幅。
- 如申請專利範圍第17項之系統,進一步包括計算該相位與振幅,當成一物體波與對應至一平面波照明源的一共軛參考波之乘積。
- 如申請專利範圍第17項之系統,進一步包括計算該相位與振幅,當成一物體波與對應至一球體波照明源的一共軛參考波之乘積。
- 如申請專利範圍第14項之系統,其中該處理單元包括一繪圖處理單元。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762525644P | 2017-06-27 | 2017-06-27 | |
| US62/525,644 | 2017-06-27 | ||
| US15/946,576 | 2018-04-05 | ||
| US15/946,576 US10969740B2 (en) | 2017-06-27 | 2018-04-05 | System and method for near-eye light field rendering for wide field of view interactive three-dimensional computer graphics |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201918745A TW201918745A (zh) | 2019-05-16 |
| TWI695188B true TWI695188B (zh) | 2020-06-01 |
Family
ID=64567756
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107119252A TWI695188B (zh) | 2017-06-27 | 2018-06-01 | 用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US10969740B2 (zh) |
| DE (1) | DE102018114929B4 (zh) |
| TW (1) | TWI695188B (zh) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6963399B2 (ja) * | 2017-03-16 | 2021-11-10 | 株式会社スクウェア・エニックス | プログラム、記録媒体、画像生成装置、画像生成方法 |
| US10409614B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
| US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
| KR102478497B1 (ko) * | 2017-09-22 | 2022-12-16 | 삼성디스플레이 주식회사 | 표시 장치 및 헤드 마운트 표시 장치 |
| EP3740735A4 (en) * | 2018-01-16 | 2021-11-24 | Pacific Light&Hologram, Inc. | THREE-DIMENSIONAL DISPLAYS USING ELECTROMAGNETIC FIELD CALCULATIONS |
| US11315327B1 (en) | 2018-11-02 | 2022-04-26 | Facebook Technologies, Llc. | Beam-racing fallbacks in a display engine |
| CN112905241B (zh) | 2019-03-15 | 2024-03-29 | 英特尔公司 | 用于矩阵加速器架构的稀疏优化 |
| US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
| US12007935B2 (en) | 2019-03-15 | 2024-06-11 | Intel Corporation | Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format |
| WO2020190796A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Systems and methods for cache optimization |
| US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
| US11663746B2 (en) | 2019-11-15 | 2023-05-30 | Intel Corporation | Systolic arithmetic on sparse data |
| WO2021216747A1 (en) * | 2020-04-21 | 2021-10-28 | Massachusetts Institute Of Technology | Real-Time Photorealistic 3D Holography with Deep Neural Networks |
| US11347185B2 (en) | 2020-09-17 | 2022-05-31 | Pacific Light & Hologram, Inc. | Displaying three-dimensional objects |
| US12158727B2 (en) * | 2020-12-02 | 2024-12-03 | Korea Electronics Technology Institute | Hologram color printing method and apparatus using hologram medium light efficiency map |
| US20230010620A1 (en) * | 2021-07-06 | 2023-01-12 | 3D Patents, Llc | Bowtie processing for radiance image rendering |
| US12501225B2 (en) | 2022-01-02 | 2025-12-16 | Poltorak Technologies Llc | Bluetooth enabled intercom with hearing aid functionality |
| US12254798B2 (en) | 2023-05-12 | 2025-03-18 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12243453B2 (en) | 2023-05-12 | 2025-03-04 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12254797B2 (en) | 2023-05-12 | 2025-03-18 | Pacific Light & Hologram, Inc. | Holographically displaying live scenes including three-dimensional objects |
| US12288490B2 (en) | 2023-05-12 | 2025-04-29 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12230176B2 (en) | 2023-05-12 | 2025-02-18 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12293687B2 (en) | 2023-05-12 | 2025-05-06 | Pacific Light & Hologram, Inc. | Holographically displaying live scenes including three-dimensional objects |
| US12315403B2 (en) | 2023-05-12 | 2025-05-27 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US11900842B1 (en) | 2023-05-12 | 2024-02-13 | Pacific Light & Hologram, Inc. | Irregular devices |
| US12266280B2 (en) | 2023-05-12 | 2025-04-01 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12374247B2 (en) | 2023-05-12 | 2025-07-29 | Pacific Light & Hologram, Inc. | Holographically displaying live scenes including three-dimensional objects |
| US12300132B2 (en) | 2023-05-12 | 2025-05-13 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12236816B2 (en) | 2023-05-12 | 2025-02-25 | Pacific Light & Hologram, Inc. | Holographically displaying live scenes including three-dimensional objects |
| US12272279B2 (en) | 2023-05-12 | 2025-04-08 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects |
| US12266279B2 (en) | 2023-05-12 | 2025-04-01 | Pacific Light & Hologram, Inc. | Holographically displaying three-dimensional objects with optical devices having in-coupling and out-coupling diffractive structures |
| US12281984B1 (en) | 2023-12-21 | 2025-04-22 | Pacific Light & Hologram, Inc. | Optical measurements |
| CN119600239B (zh) * | 2024-11-26 | 2025-07-01 | 曲阜师范大学 | 一种面向沉浸式头戴显示器的实时光场立体渲染方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007118842A1 (de) * | 2006-04-13 | 2007-10-25 | Seereal Technologies S.A. | Verfahren zum rendern und generieren computer-generierter videohologramme in echtzeit |
| US20080198430A1 (en) * | 2004-09-08 | 2008-08-21 | Seereal Technologies Gmbh | Method and Device for Encoding and Reconstructing Computer-Generated Video Holograms |
| TW200915026A (en) * | 2007-05-16 | 2009-04-01 | Seereal Technologies Sa | Analytical method for computing video holograms in real time |
Family Cites Families (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
| US6437782B1 (en) | 1999-01-06 | 2002-08-20 | Microsoft Corporation | Method for rendering shadows with blended transparency without producing visual artifacts in real time applications |
| GB2351866A (en) | 1999-07-07 | 2001-01-10 | Sharp Kk | Stereoscopic display |
| WO2004044659A2 (de) | 2002-11-13 | 2004-05-27 | Seereal Technologies Gmbh | Videohologramm und einrichtung zur rekonstruktion von videohologrammen |
| EP1496475B1 (en) | 2003-07-07 | 2013-06-26 | STMicroelectronics Srl | A geometric processing stage for a pipelined graphic engine, corresponding method and computer program product therefor |
| US7643025B2 (en) | 2003-09-30 | 2010-01-05 | Eric Belk Lange | Method and apparatus for applying stereoscopic imagery to three-dimensionally defined substrates |
| DE102004063838A1 (de) | 2004-12-23 | 2006-07-06 | Seereal Technologies Gmbh | Verfahren und Einrichtung zum Berechnen computer generierter Videohologramme |
| CN100578392C (zh) | 2005-05-06 | 2010-01-06 | 视瑞尔技术公司 | 三维场景的全息再现装置 |
| EP1876814A1 (en) | 2006-07-07 | 2008-01-09 | Barco NV | Non-linear image mapping using a plurality of non-coplanar clipping planes |
| EP2084579A1 (en) | 2006-10-26 | 2009-08-05 | SeeReal Technologies S.A. | Compact holographic display device |
| US20080225048A1 (en) | 2007-03-15 | 2008-09-18 | Microsoft Corporation | Culling occlusions when rendering graphics on computers |
| US8149265B2 (en) | 2007-08-11 | 2012-04-03 | Massachusetts Institute Of Technology | Holographic video display system |
| GB0720484D0 (en) | 2007-10-19 | 2007-11-28 | Seereal Technologies Sa | Cells |
| US8411087B2 (en) | 2008-02-28 | 2013-04-02 | Microsoft Corporation | Non-linear beam tracing for computer graphics |
| US8154546B2 (en) | 2008-06-27 | 2012-04-10 | Microsoft Corporation | Rational Z-buffer for decreasing a likelihood of Z-buffer collisions |
| US9336624B2 (en) | 2008-10-07 | 2016-05-10 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for rendering 3D distance fields |
| CN102483605B (zh) | 2009-06-23 | 2015-09-30 | 视瑞尔技术公司 | 用于显示二和/或三维图像内容的显示器的光调制器装置 |
| US8269691B2 (en) | 2009-06-26 | 2012-09-18 | Sony Computer Entertainment Inc. | Networked computer graphics rendering system with multiple displays for displaying multiple viewing frustums |
| JP5405264B2 (ja) | 2009-10-20 | 2014-02-05 | 任天堂株式会社 | 表示制御プログラム、ライブラリプログラム、情報処理システム、および、表示制御方法 |
| JP4754031B2 (ja) | 2009-11-04 | 2011-08-24 | 任天堂株式会社 | 表示制御プログラム、情報処理システム、および立体表示の制御に利用されるプログラム |
| US8581905B2 (en) | 2010-04-08 | 2013-11-12 | Disney Enterprises, Inc. | Interactive three dimensional displays on handheld devices |
| CN104685867B (zh) | 2012-07-23 | 2017-03-08 | 瑞尔D斯帕克有限责任公司 | 观察者跟踪自动立体显示器 |
| US9519144B2 (en) * | 2013-05-17 | 2016-12-13 | Nvidia Corporation | System, method, and computer program product to produce images for a near-eye light field display having a defect |
| US9880325B2 (en) * | 2013-08-14 | 2018-01-30 | Nvidia Corporation | Hybrid optics for near-eye displays |
| CN108174184A (zh) | 2013-09-04 | 2018-06-15 | 北京三星通信技术研究有限公司 | 快速集成图像生成方法及与用户交互的裸眼三维显示系统 |
| WO2015104239A2 (en) | 2014-01-07 | 2015-07-16 | Seereal Technologies S.A. | Display device for holographic reconstruction |
| WO2015123775A1 (en) | 2014-02-18 | 2015-08-27 | Sulon Technologies Inc. | Systems and methods for incorporating a real image stream in a virtual image stream |
| US9465361B2 (en) * | 2014-03-31 | 2016-10-11 | Disney Enterprises, Inc. | Image based multiview multilayer holographic rendering algorithm |
| KR101923562B1 (ko) | 2014-04-05 | 2018-11-29 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 |
| CN104036539B (zh) | 2014-06-17 | 2017-01-18 | 北京航空航天大学 | 一种应用在大规模地形渲染中的视锥体投影裁剪方法 |
| US10055883B2 (en) | 2015-01-08 | 2018-08-21 | Nvidia Corporation | Frustum tests for sub-pixel shadows |
| US10636336B2 (en) | 2015-04-17 | 2020-04-28 | Nvidia Corporation | Mixed primary display with spatially modulated backlight |
| KR102612039B1 (ko) | 2015-04-24 | 2023-12-08 | 엘지디스플레이 주식회사 | 홀로그램 디스플레이 |
| KR102390372B1 (ko) | 2015-06-01 | 2022-04-25 | 삼성전자주식회사 | 개선된 화질을 제공하는 공간 광변조기 및 이를 포함하는 홀로그래픽 디스플레이 장치 |
| CN105869214A (zh) | 2015-11-26 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种基于虚拟现实设备的视锥体裁剪方法及装置 |
| KR102457207B1 (ko) | 2015-12-08 | 2022-10-20 | 엘지디스플레이 주식회사 | 공간 광 변조기 및 이를 이용한 홀로그램 디스플레이 |
| KR102724186B1 (ko) | 2016-03-02 | 2024-10-30 | 시리얼 테크놀로지즈 에스.에이. | 조명 장치 |
| DE112017002514A5 (de) * | 2016-05-18 | 2019-04-25 | Seereal Technologies S.A. | Verfahren zur erzeugung von hologrammen |
-
2018
- 2018-04-05 US US15/946,576 patent/US10969740B2/en active Active
- 2018-06-01 TW TW107119252A patent/TWI695188B/zh active
- 2018-06-21 DE DE102018114929.8A patent/DE102018114929B4/de active Active
-
2021
- 2021-03-02 US US17/189,960 patent/US11747766B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080198430A1 (en) * | 2004-09-08 | 2008-08-21 | Seereal Technologies Gmbh | Method and Device for Encoding and Reconstructing Computer-Generated Video Holograms |
| WO2007118842A1 (de) * | 2006-04-13 | 2007-10-25 | Seereal Technologies S.A. | Verfahren zum rendern und generieren computer-generierter videohologramme in echtzeit |
| TW200915026A (en) * | 2007-05-16 | 2009-04-01 | Seereal Technologies Sa | Analytical method for computing video holograms in real time |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210181674A1 (en) | 2021-06-17 |
| US10969740B2 (en) | 2021-04-06 |
| DE102018114929B4 (de) | 2024-05-02 |
| TW201918745A (zh) | 2019-05-16 |
| US11747766B2 (en) | 2023-09-05 |
| US20180373200A1 (en) | 2018-12-27 |
| DE102018114929A1 (de) | 2018-12-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI695188B (zh) | 用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 | |
| CN110176054B (zh) | 用于训练神经网络模型的合成图像的生成 | |
| US10970816B2 (en) | Motion blur and depth of field reconstruction through temporally stable neural networks | |
| US12425605B2 (en) | Image in-painting for irregular holes using partial convolutions | |
| CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
| US12332436B2 (en) | Systems and methods for wide field of view augmented reality display | |
| US20190355103A1 (en) | Guided hallucination for missing image content using a neural network | |
| CN111210498B (zh) | 降低多边形网格的细节水平以减少被渲染几何的复杂度 | |
| US11120609B2 (en) | Reconstruction for temporally dense ray trace rendering | |
| CN110807827B (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
| CN112041894B (zh) | 渲染期间提高涉及水面的场景的真实感 | |
| CN111445003A (zh) | 神经网络生成器 | |
| US11997306B2 (en) | Adaptive pixel sampling order for temporally dense rendering | |
| CN113393564B (zh) | 利用全局照明数据结构的基于水塘的时空重要性重采样 | |
| CN113822975B (zh) | 用于对图像进行有效采样的技术 |