2023年10月26日 星期四

FreeCAD使用簡介(015) 有點小遺憾的Rendering模組

FreeCAD的特效彩現(Rendering*)相關模組還在持續進步中?!


*Rendering這個字很難翻譯,常見的翻譯是「渲染」,簡單來說,就是替電腦繪圖加上逼真的顏色與光線效果。因此也有「跑圖」、「具象化」等等翻譯。其實我覺得具象化也比渲染要好,畢竟渲染只是一種水彩或水墨畫的上色技巧,但Rendering可以做的事情很多。所以決定參考「彩現」的翻譯,改成「特效彩現」----對於使用CAD設計的人來說,通常不會做太逼真的色彩效果,所以加上個「特效」來強調這件事不會太常出現。


===


使用3D CAD設計出來的實體模型如果想要加上顏色或質感等等更真實的表現的話,在好久以前,大概就只能有在3D CAD中加上顏色設定、另外設定光線與陰影效果的施加「著色明暗效果(Shading*)」程度而已。


*Shading也很難翻,這裡就直譯為「著色明暗效果」。


現在的話,很多都把「特效彩現」作為3D CAD的標準功能,或者至少是可以外掛(Addon)的選配功能,讓3D CAD也能做出很逼真的色彩效果。


那麼本文介紹的主角FreeCAD在這方面上的表現又是如何呢?在FreeCAD中具有與其相關的工作區模組分別是「Render」與「Raytracing(光線照射*)」,以下就會來測試其使用效果。


*作者補充:Ray Tracing也是Rendering的手法之一,是根據現實的物理原則,來模擬出光線傳播的表現技術。執行上會以設定在模型上的材質條件,來計算出光線反射與穿透後造成的色彩效果。簡單來說,就是將鏡面處理或是透明的模型看起來就像真的一樣。


如果只是加上顏色或是透明度等等簡單的「著色明暗效果」,並不需要用到特效彩色相關的工作區模組,在Part Design工作區中就能執行(如圖1),因為內建就有鋁合金、新合金、鉻等等機械設計中經常會使用到的材質效果。不過,這些效果都只能套用到整個Body,不能單獨加到特徵或某個面上。這個部份希望以後能夠改善。(2023年的現在,其實可以針對單獨的面設定顏色了)


圖1 即便是在Part Design中也能做到某種程度的顏色設定(與半透明效果)



0.21版可以單獨設定某個面的顏色





根據FreeCAD的官方維基說明,其「Ray Tracing」工作區模組是「原則上廢止(essentially obsolete)」,而由「Render」工作區模組專案來繼續承接原本相關的開發。但「Render」這個模組其實也還處於「開發階段」。因此為了實際測試其功能,必須要從GitHub上去抓取開發中的程式才行,更何況要到可以真正實施驗證的準備時間一定也很長。(*在2023年的現在,其實這個模組已經進入FreeCAD的Addon Manager清單中,可以自由安裝測試了)。



*不過,從介紹看起來,好像還不是太「威猛」



也是這樣,這次先不測試「Render」這個工作區模組,而是來說說雖然被官方宣稱「原則上廢止」、但現在仍能使用的「Raytracing」工作區模組的使用心得。(*相反地,Raytracing現在在0.21版中消失了,所以以下引用日文版圖片)


安裝特效彩現用的外部程式


要使用FreeCAD的[Raytracing]工作區模組,必須安裝外部的開放程式碼免費程式「POV-Ray(Persistence of Vision Raytracer)」或是「LuxRender」(現在稱為「LuxCoreRender」)才行。順帶一提,「Render」模組也是以會使用到外部程式的方式來設計。


因此首先得在電腦中安裝POV-Ray或LuxCoreRender,安裝的程序請參照以下的說明。


安裝POV-Ray


開放程式碼的特效彩現程式POV-Ray,是在1980年代,由後來成為NVIDIA的首席科學家兼架構副社長(但現在又退休獨立出去)的David Kirk Buck所開發的程式為其起源。很擅長數學建模、也能使用類似C語言的程式與巨集來進行光線照射模擬。還能將另一個開放程式碼的3D CG軟體「Blender」作為外掛程式來連動使用。


POV-Ray可以在其官網上下載。如圖2所示。


圖2 官網的下載畫面



下載之後,啟動安裝程式,依照安裝精靈的指示,就能輕鬆安裝完成(圖3)。


圖3 POV-Ray的安裝程式



安裝以後,雖然有點麻煩,但請記錄下POV-Ray的執行檔(.exe)的路徑,後續會用到。


安裝LuxCoreRender


至於LuxRender,則是根據介紹物理基礎特效彩現新手法的教育書中的「PBRT(Physically Based Rendering)」理論與程式開法手法製作出來的程式。而寫作此程式的開發者,有曾在皮克斯動畫的特效彩現團隊工作經驗、現在Google公司的軟體開發者Matt Pharr、EPFL(洛桑聯邦理工學院)的助理教授Wenzel Jakob、Google Chrome的電腦繪圖團隊與NVIDIA公司的OptiX Raytracing等開發經驗,現在是電玩公司FanDuel開發團隊的Greg Humphrey等人物。順帶一提,從LuxRender更新程式碼,升級為LuxCoreRender的現在,其能輸出的資料是限定為只有Blender可以打開。


去到LuxCoreRender官網,會發現其共有Blender的外掛程式「BlendLuxCore」、單獨執行的「Standalone」與做為開發套件的「LuxCore API SDK」三種版本存在。這裡則是下載Windows的Standalone版(如圖4)。


圖4 下載LuxCoreRender




這個程式並不需要啟動安裝程式安裝,只要將下載的壓縮檔解壓縮就可以了。這裡也請將其執行檔(.exe)的路徑記錄起來。


使用簡單的模型來測試「Raytracing」工作區模組


POV-Ray篇(1)


首先,做出如下圖這樣單純的模型(圖5),來測試看看POV-Ray的Raytracing效果。


圖5 簡單的模型



接著點選指令圖示列中的有點像藍色球的[加入新的POV-Ray專案](如圖6)


圖6 加入新的POV-Ray專案



這時候會,會跳出「沒有透視投影的相機」的訊息(圖7)。看起來,這是因為模型的投影法預設上是「正投影」的關係。正投影因為沒有透視(Perspective)的感覺(沒有遠近感),所以很多3D CAD的使用者不會特別在意,甚至覺得理所當然了。


圖7 沒有透視投影的相機訊息



不過,就這樣按下圖7的OK(はいY),又覺得很不舒服,所以回頭試著將投影法切換成透視投影法。這點選主選單的[View]>[Perspective View],就能看到模型似乎像是俯視一樣有遠近的感覺了(圖8)


圖8 切換透視投影




然後,回頭再一次加入POV-Ray專案後,就會看到模型樹中多了「PovProject」這個項目(圖9)。


圖9 在模型樹中加入「PovProject」



接下來是設定顏色。這裡請在PovProject項目下按下又鍵,然後選擇[表示(Appearance)],然後在[顯示選項(Display Properties)]中就能設定面與線的顏色,這裡將面與線都設定成粉紅色(圖10)。


圖10 變更顏色



再來則是點選模型樹中Body底下的「Pad」,然後點選上方指令圖示列的[在Raytracing專案中加入新的Part Object]指令圖示(圖11)。


圖11 [在Raytracing專案中加入新的Part Object]指令



此刻就在模型樹的PovProjec底下,會看到非啟動(Active)狀態的「Pad_View」加入其中(圖12)。之後,不要忘了也要替「Fillet」加入其中。


圖12 加入「Pad_View」



再來則是在模型樹中PovProject仍然是選取的狀態下,點選指令圖示列中的[將選擇的Raytracing專案的相機與現在的視角一致]指令,來設定視角(圖13)


圖13 [將選擇的Raytracing專案的相機與現在的視角一致]指令



到了這個階段,總之先把POV-Ray的資料存檔。維持PovProject被選取的狀態下,在指令列中點選一個白色四邊形中有綠色箭頭的指令(圖14)。給定任意檔名與儲存位置後存檔。


圖14 將Raytracing專案輸出並存檔



最後要在FreeCAD中設定POV-Ray的執行檔路徑。在指令列的[Edit]>[Preferences]中,進行Raytracing的設定(圖15)。然後在[POV-Ray執行檔]的欄位中貼入之前記錄下來的執行檔路徑,然後套用即可。


圖15 POV-Ray的執行檔路徑設定




到這裡,就算設定準備完成了。然後執行指令圖示列中藍色球形的指令圖示「使用外部的彩現程式來替現在Raytracing專案執行彩現」(圖16),並且指定執行完彩現的圖檔名稱與儲存位置(圖17)。


圖16 「使用外部的彩現程式來替現在Raytracing專案執行彩現」指令



圖17 儲存彩現後的圖檔



在存檔的那一瞬間,會聽到一聲類似快門聲的聲音,然後跳出藍色的POV-Ray的視窗(圖18),但是還會看到個「啟動失敗,無法開啟檔案(Failed to start render:Cannot open file.)」的訊息。


圖18 POV-Ray的畫面



這且不論,如果按下POV-Ray視窗上方的[Run]按鈕,就會發現成為焦點的模型要開始上色彩現的畫面只顯示了一下下,就強制結束了。當然,彩現的結果也沒輸出成檔案....。


圖19 雖然已經看到了[100% complete]訊息了...



這次因為沒有正常執行,所以也沒得到POV-Ray的輸出檔案。會有這樣的結果,跟筆者對此模組的熟悉度不足有關,但老實說,這本來就不是第一次看到這功能的3D CAD使用者就能馬上上手的功能。


根據FreeCAD的官方Wiki說明,就算是單獨安裝POV-Ray程式,和FreeCAD連動起來可能還是有問題。不過由於這個模組已經廢止了,就先不多加驗證了。


===


第二部分則是要來試試看LuxCoreRender作為外部程式下是否正常,結論是可以正常動作。


操作順序除了專案的圖示不一樣(圖20)以外,其餘和POV-Ray的程序是幾乎相同的。一樣是在模型樹上加入名為「LuxProject」的項目,但執行的時候不需要像POV-Ray一樣指定檔名。


圖20 建立LuxProject,這裡選擇了「LuxClassic」



圖21 模型樹中出現了LuxProject的項目




然後執行藍色球圖示來做出彩現效果,就會跳出一個視窗,馬上出現一個略帶雜訊的彩現圖(圖22)


圖22 LuxCoreRender可以正常動作!



在這個彩現視窗上方,有一群字有點小的選單。點選下去的話會看到次選單出現。其中[Rendering]選單底下,有[Export]或[Save rendering]的選項。


圖23 LuxCoreRender的選單,預設的文字雖然偏小,但在設定畫面中可以調大點數。



先維持預設設定去跑彩現,經過幾秒的處理之後,得到的圖形如圖24所示。在看起來像是窗框的旁邊,可以看到筆者做的模型放置其中。這個畫面似乎是預設的樣板。顯然圓角似乎在彩現之中沒法被正確認出來,所以看起來是利角的狀態。而且模型的設定顏色會被穿透覆蓋,雖然有重新試過,但結果還是沒有反映出來。


圖24 彩現完成了!!



在[Engine]的選單底下可以選擇處理的種類與精度。從名稱來看,似乎都是用CPU來計算執行彩現效果。對於筆者使用的貧弱筆記型電腦來說,很明顯感受到運算中風扇經常轉動起來,如果是能順暢執行3D CAD的工作站伺服器,想必應該能跑得更流暢一些。順帶一提,預設的引擎是[BIDIRCPU],而看起來一旁的數字就是代表精度。


圖25 [Engine]選單中的各項目



試著將引擎切換成[LIGHTCPU]的話,就會跑出像是在暗室中拍照的圖像呢。(圖26)


圖26 將引擎切換成[LIGHTCPU]後得到的結果



如果選擇旁邊數字最大為[9]的[RTPATHCPU」,處理就需要花好幾分鐘了。跑出來的結果,雜訊明顯比前面的[BIDIRCPU]少很多,整體來說看起來也漂亮很多了(圖27)。順帶說一下[BAKECPU]的數字是[0],結果是完全跑不動....。


圖27 切換成[RTPATHCPU」得到的執行結果



如果改用「LuxOutdoor」來建立LuxCoreRender專案的話,重新執行特效彩現,就會到模型放在鏡面的地板上的明亮場景(圖28)。這個樣板,應該是假設成位在戶外(Outdoor)的模擬結果。只不過,在這個設定下,圓角還是出不來....。


圖28 LuxOutdoor的結果



輸出格式上,可以支援「*.bcf(Business Card Designer Pro Format)」與「*.gltf(The GL Transmission Format)」格式,而彩現資料則是儲存成「*.rsm(ReflectiveShadowMap)」格式。在「Load」指令下可以讀進LuxCoreRender的檔案格式,則是「*.lxs」與「*.bcf」兩種(如圖29)。


圖29 儲存彩現資料或輸出檔案的選單



至於LuxCoreRender樣本的儲存位置,可以在FreeCAD的[Property]視窗中找到,卻找不到可以簡明設定樣本的設定介面或是類似這樣的便利功能。看起來,只能自己先搞定好樣本資料,或是直接LuxCoreRender之中設定了。


結論就是「Raytracing」這個工作區模組雖然被廢除了,但相關操作並不困難,應該可以順利繼承到新的「Render」模組之中。而且如果是熟悉LuxCoreRender的人,應該更能跑出更精細漂亮的彩現效果才對。


===


相關系列文章:

沒有留言:

張貼留言