製作深度圖
這裡我們提供以下製作深度圖的方式:
|
一、使用 Photoshop來製作深度圖
這裡所要介紹製作「深度圖」的方法,並非是唯一的,也沒有標準的製作程序;完全要看2D平面影像的內容而定。以下就來舉例說明如何以Photoshop軟體來製作「深度圖」。
|
簡單物件的深度圖製作
|
- 建立「視點」(Eye Point)
必須要有一個「視點」來模擬我們的眼睛觀看3D物件。這個「視點」通常是設定在3D物件的最前方或是在灰階(Gray Level)值為255的地方。
如下圖,新增一個圖層「Eye Point」,然後在這個圖層使用「直線工具」畫一個紅色十字當成我們所要的「視點」位置。
|
|
- 分析要分割出多少3D物件
首先,根據這個3D場景內的2D影像,分析要分割出多少3D物件,3D物件分割得愈多(或愈細),則3D立體效果與品質可以製做得愈佳。
現在,我們根據實際需要,將下圖的2D影像分析出4個部位要割出來的3D物件。
|
|
- 定義灰階值(Gray Level)
任何我們要製作的「深度圖」都是由可以反應出物件距離的灰階值來組成的。所以,當我們要製作一個2D影像的「深度圖」時,在我們的腦海裡必須要建立一個灰階表(Gray Scale),這樣我們才可以找到這個2D影像各部位所對應的灰階值。這個「灰階表」我們可以視為3D物件灰階值的對照表。
下圖我們可以看到一個標有灰階值000(最遠)到255(最近)的「灰階表」,延著這個2D影像的透視方向(約傾斜45度)展現出來。
|
|
- 框選(或分割)3D物件
使用Photoshop裡的「多邊形套索工具」,我們可以非常精確地框選(或分割)出所需要的3D物件,以便將來要套用灰階值。
- 選擇「多邊形套索工具」來框選3D物件。同時,為了避免在「深度圖」的邊緣因為「消除鋸齒」與「羽化」所造成漸層陰影的柔邊效果而影響「深度圖」處理後的3D影像品質,請勿勾選「Anti-alias」(消除鋸齒)並保持「Feather」(羽化) 為「0 pixel」。
|
|
|
|
- 根據這個3D物件最遠位置約位於「灰階表」128的地方,所以新增一個圖層並命名為「Object 1 (Gray Level 128)」。
|
|
|
|
[步驟二]
將「背景」(Background)的顏色設定為255。
|
|
[步驟三]
選擇「漸層工具」(Gradient Tool)裡的「線性漸層」(Linear Gradient)並選擇「由前景到背景」(Foreground to Background)為漸層的方向。
|
|
[步驟四]
使用「線性漸層」,將第1物件由其最遠位置到「視點」填滿。
|
|
|
|
[步驟二]
根據這個3D物件最遠位置約位於「灰階表」128的地方,所以新增一個圖層並命名為「Object 2(Gray Level 128)」。
|
|
[步驟三]
設定「前景」與「背景」灰階值,再以「漸層工具」按住按住滑鼠左鍵,由物件之最遠位置拖至「視點」。
|
|
[步驟四]
接下來,我們將繼續另二個3D物件灰階值(Gray Level)的建立。 .
|
|
根據這個3D物件最遠位置約位於「灰階表」64的地方,所以新增一個圖層並命名為「Object 3(Gray Level 64)」。
|
|
設定「前景」與「背景」灰階值,再以「漸層工具」按住按住滑鼠左鍵,由物件之最遠位置拖至「視點」。
|
|
最後,我們就要來框選第4個3D物件與建立它的灰階值。
|
|
根據這個3D物件最遠位置約位於「灰階表」64的地方,所以新增一個圖層並命名為「Object 4(Gray Level 64)」。
|
|
設定「前景」與「背景」灰階值,再以「漸層工具」按住按住滑鼠左鍵,由物件之最遠位置拖至「視點」。
|
|
- 當每個3D物件的灰階值都建立完成後,接著我們需要一個灰階值為000的圖層(「Background (Level 000)」來作為這些3D物件的背景。
|
|
- 終於我們將得到如下的「深度圖」,並請將它儲存成無壓縮的BMP影像格式。
|
|
- 其它漸層工具
有時候在許多場合,我們不能只用一種「線性漸層」工具,去建立所有3D物件的「深度圖」;而是要使用不同的漸層工具如「反射性漸層」、「放射性漸層」、「角度漸層」、…等。
|
|
|
另外,依據2D影像圖的特質,還有以下不同的製作深度圖的方法: |
分離色版成深度圖
這是一種暨簡單又快速可以製作深度圖的方法。將一般2D影像的R、G、B三個色版分離出來,再選擇一個較符合使用的色版來處理即可。 |
[步驟一] 分離色版 (Split Channels)
開啟2D影像,然後選擇「色版」(Channels)頁面去處理「分離色版」(Split Channels)。
|
|
這時,我們可以得到R、G、B三個分離的灰階影像如下。
|
|
[步驟二] 選擇最適合的色版
我們所需要的深度圖必須是有很好的漸層灰階與黑色的背景。接下來,我們將要把剛剛分離出來的R、G、B三個灰階影像調整為「負片效果」(Invert),以便取得黑色的背景。然後再從中選出最適合的色版。很明顯地,從下圖中Channel R是我們的首選。
|
|
|
|
[步驟三] 修圖
最後,我們要使用「加亮工具」(Dodge Tool)、「加深工具」(Burn Tool)與「海綿工具」(Sponge Tool)來修圖,將Channel R修整到最符合我們需要為止。 |
|
|
|
|
明暗漸層效果佳的2D影像圖
有時候,我們會碰到明暗漸層效果佳的2D影像圖(如下圖),此時只要將它直接轉變為「灰階」模式,再調整為「負片效果」即可。 |
|
[步驟一]
使用「影像(Image)/模式(Mode)/灰階(Grayscale)」功能,我們可以將此彩色影像圖轉變為灰階圖。 |
|
|
|
[步驟二]
使用「影像(Image)/調整(Adjustments)/負片效果(Invert)」功能,我們可以將此灰階圖直接調整為我們所要的深度圖。 |
|
|
火燄的處理方式
要從火燄裡去分割出3D物件是一件相當困難的事;但是我們卻可以將此火燄影像的R、G、B色版分離出來,再選擇其中一個最符合我們需要的即可。
開啟一個火燄影像。 |
|
[步驟二]
選擇「色版」(Channels)頁面去處理「分離色版」(Split Channels),然後選擇Channel G作為我們的深度圖。 |
|
[步驟三]
如有需要,可以使用「加亮工具」(Dodge Tool)、「加深工具」(Burn Tool)與「海綿工具」(Sponge Tool)來修整其明暗度。 |
|
樹枝的處理
這是高難度的處理方式之一,因為樹枝不僅多而且細,我們不可能為一根根樹枝各別分割成3D物件,這需要用「去蕪存菁」的技巧來處理。 |
[步驟一]
開啟影像。 |
|
[步驟二]
選擇「色版」(Channels)頁面去處理「分離色版」(Split Channels),然後選擇Channel B作為進一步處理。 |
|
[步驟三]
使用「影像(Image)/調整(Adjustments)/負片效果(Invert)」功能,我們可以將Channel B處理成負片效果以便取得黑色的背景。如有需要,可以使用「加亮工具」(Dodge Tool)、「加深工具」(Burn Tool)來加強不同樹枝的明暗度。 |
|
[步驟四]
使用「濾鏡(Filter)/模糊(Blur)/高斯模糊(Gaussian Blur)」功能,我們可以非常有效地消除遠方細小的樹枝而達到「去蕪存菁」的效果,並將前方的樹枝凸顯出來。 |
|
|
煙火的處理
煙火係由許多細微的火線所構成,但我們並無法一一為它們分割成3D物件,所幸它本身就有明暗的層次,我們只要參考前面樹枝的處理方式即可。 |
[步驟一]
開啟影像。 |
|
[步驟二]
選擇「色版」(Channels)頁面去處理「分離色版」(Split Channels),然後選擇Channel G作為進一步處理。 |
|
[步驟三]
我們可以將河的區域圈選以後,再使用「漸層工具」(Gradient Tool), 以灰階000 ~ 255由遠到近將它填滿。 |
|
[步驟四]
使用「加深工具」(Burn Tool),我們可將煙火處理暗一些。 |
|
[步驟五]
使用「濾鏡(Filter)/模糊(Blur)/高斯模糊(Gaussian Blur)」功能,我們可以非常有效地消除遠方細小的煙火而達到「去蕪存菁」的效果,並將前方的煙火凸顯出來。 |
|
另外,Photoshop 2021 (或以上的版本)已開始提供自動轉製「深度圖」的功能。其使用方法如下:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
二、 使用3DS Max來製作深度圖 |
- 當我們在3DS Max建構完成一個3D場景時,我們可以使用3DS Max功能列中的「Rendering\Render」來進行渲染(Render)。
|
|
- 在「Render」的對話框裡點選「Render Element」的頁面。
|
|
- 使用滑鼠左擊「Add」以叫出「Render Element」的對話框,並選擇「Z Depth」項目。此時我們要指定儲存「深度圖」(Z Depth)的路徑、檔名與檔案格式( 請用無壓縮BMP影像格式)。另外,我們也必須根據3D場景指定「深度圖」(Z Depth)的範圍(Z Min與Z Max)。
|
|
- 接下來,請選取「Camera」並在「Modify\Environment Ranges」裡設定Camera的攝影範圍(Near與Far),此範圍必須是在前面所指定Z Depth的範圍裡。例如:我們可以設定「Near」為150,「Far」為450;如此範圍才會在前面所指定Z Depth的範圍(100 ~ 500)裡。
|
|
- 當我們如前面將Camera的攝影範圍設定好,並且勾選了「Show」,則在Camera的視野(Camera view)表示,不僅會有「Camera 目標面」(Camera Target Plane),還會加入「前景面」(Foreground Plane)與「背景面」(Background Plane)。(如下圖)
為了要得到最佳的「深度圖」(Z Depth),我們應該要將3D場景中之所有3D物件(3D Models)安置在「前景面」(Foreground Plane)與「背景面」(Background Plane)之間。
假如3D物件(3D Models)的安置超出了「前景面」(Foreground Plane),則彩現(Render)時,這3D物件(3D Models)之Z Depth值將會是255,而不會大於255,因為Z Depth的灰階值(Gray Level)最大是255;同樣地,如果3D物件(3D Models)的安置超出了「背景面」(Background Plane),則彩現(Render)時,這3D物件(3D Models)之Z Depth值將會是0,而不會小於0,因為Z Depth的灰階值(Gray Level)最小是0。
|
|
請注意:在「深度圖」(Z Depth)的表達上,「前景面」(Foreground Plane)的灰階值(Gray Level)為255;而「背景面」(Background Plane) 的灰階值(Gray Level)為0。
|
- 然後在「Render」對話框中選擇「Common」的頁面,並確認將「Common 參數」(Common Parameters)裡的必要設定如「Time Output」、「Output Size」、「Render Output」、「Save File」、…等設定妥當,並在「Viewport」選項中選擇「Camera01」 (如例) 開始彩現(Render)這個3D場景。
|
|
- 當3DS Max開始渲染(Render)3D場景時,它也會同時將其「深度圖」(Z Depth)產生出來,並存入前面所指定的路徑位置。
|
|
三、使用生成式AI來製作深度圖
目前市場上已有相當成熟的 3D 技術,可以將 2D 影像或影片自動轉換成深度圖 (Depth Map),進而渲染成多視角影像或影片。這些技術的發展受益於深度學習和生成式AI(Generative AI)的進步,讓 2D 轉 3D 的過程更加快速且精準。
以下是目前市場上可以製作出高品質深度圖的其中三個AI工具:
1. immersity AI:這是一個可以在網站上直接上傳2D影像,然後自動轉換成Depth Map,並且可以下載來使用。
2. Quick Depth 2:這是一款After Effexts的外掛(Plugin)軟體,可以快速將2D影像(影片),自動轉換成Depth Map。
3. Depth Scanner:這是一款After Effexts的外掛(Plugin)軟體,可以快速將2D影像(影片),自動轉換成Depth Map。
|
深度圖渲染與「裸眼3D顯示」 |
當深度圖製作完成後,接下來就是將它渲染成「多視點3D」影像(或影片),然後再進一步以「裸眼3D」顯示出來。目前有一款i-Magic3D 軟體,可以協助我們使用市面上容易取得的3D光柵板,與任何OLED/LCD面板、筆電、平板電腦、Android或iPhone手機,來建構自己的「裸眼3D顯示」,詳細請參考:自製裸眼3D顯示。 |
|
|
|
|