為何很少用貝塞爾曲面表示3D模型?

時間 2021-05-05 15:48:35

1樓:HyperGroups

許多問題其實還是不夠精準,看起來結論就是錯的,此問題也是。

題主說現在3D模型大多是由三角形網格表示的,這個是在模型檔案互動層面,還是渲染層面,還是實時遊戲中呢?

有兩位答主分別提到了兩個問題,乙個是GPU太弱,計算效能方面的問題,這個是顯示渲染層面的。但是舉例了空間四邊形可以不共面的情況,但是題主說的三角網格是不是包含多邊形網格呢???所以說這還是題主的鍋。

乙個提到是貝塞爾曲面在離線3維軟體中已經得到了廣泛應用,也是對的。

另外我想到,有答主提到Nurbs,問題還有乙個解讀,Nurbs、或其樣條曲面是不是比Bezier曲面應用更廣泛。那麼就是組內PK的更細問題了。

光線與曲面求交為什麼比三角形求交會更快呢?這個問題誰可以來回答一下。

既然提到了光線追蹤,似乎在說的是Bezier在某個方面的應用。

光追是個成熟的應用,又不是非常普遍的領域了。因為大部分玩家並沒有使用支援光追的顯示卡——

因為正好最近在整理,有涉及到這一塊,那麼我補充一下。

首先,多邊形網格和bezier曲面之間是可以轉化的,是否三角化是有待商榷的。

比如在三維軟體中,乙個bezier曲面本身很光滑,效果很好,也可以直接渲染。

但是如果三角化了,加細加細,面數很多後,也可能會很卡。

同時,電影電視中使用的模型,有可能是百萬面-幾百萬面,而遊戲中也分大遊戲和小遊戲,大型端遊中,乙個角色也可能只有1萬或幾萬個面。如果角色多,場景大那麼也有幾百萬個面,不過通過技術還是可以優化。

但是資料表達是簡潔的,考慮到貼圖,三角形還能展開到平面,一一對應。

而全部用Bezier曲面來表示,這個情況就比較複雜了,貼圖怎麼弄?

本身Bezier的資料表達分為原子表達和中間資料表達。

原子表達主要是類似

用乙個函式來表示一條曲線,f[x]=e^x,這是一條斜線,這個e可以是exp

涉及到對接問題,我這個軟體使用的是exp,你的系統是e,我們之間還要對映一下。

這是個簡單的情況。

但是,複雜的曲面,兩套Bezier曲面的具體實現和資料的儲存之間的通用規範上,不是那麼方便。

中間資料表達,以Bezier曲線為例,那麼就是一些控制點,相對於把曲線離散化來說,控制點的數量是很少的。確實達到了省空間的問題,但是模型複雜了,控制點的數量也會很多。

即使乙個簡單模型,我逆向過乙個中間資料表達比較糟糕的BezierCurve的具體實現,感覺完全達不到省空間的目的。。。

為什麼這麼說呢,在三維空間中,控制點是要位置、旋轉、縮放引數的時候,存的各種引數也會變多的。

所以這個結論其實也不太對。

但是,在一定程度上,題主的問題又是對的,有歷史原因,我把它定位到

基元建模這個範圍

我把問題換為:為什麼很少將Bezier曲面表示的3D模型直接應用於落地終端的系統?

如果樣條曲面,引數曲面是乙個基元模型看待時,引擎渲染所有基元都是同等效率時,此時這種建模方式將進一步大放異彩,而不只是大部分時候作為中間狀態存在。

而將模型分解後,模型的有的部分用bezier曲面表示更方便,有的更複雜,當前情況用三角化更方便。將複雜的bezier曲面=多個簡單的bezier曲面表示也是可以的。

好了,不扯了。

2樓:周源

你要的答案已經在離線渲染的三維軟體裡了,你去挨個操作一下就有深刻認知了。

實際上,早些年大約二十年前,很多影視級都是nurbs模型。甚至於當年還有人說,nurbs模型才是未來,然而,被打臉了。

3樓:飛飛233

最近在造貝塞爾曲線曲面相關的輪子,認為這是乙個超級棒的想法。

貝塞爾曲線可以根據切線角度變化進行線段微分,比較直的地方分段數少,角度大的地方分段多,能實現用更少的線段數畫出更平滑的曲線。

如果現有的建模體系換成貝塞爾曲面建模的話,個人覺得同樣可以實現「用更少的麵片,顯示更高精度的效果」,甚至還可以融入表面張力,韌性等物理引數,簡直不要太棒。

不說了,我去造輪子了

調整角度區間,控制曲線分段數。藍色切線,紅色本體

為什麼家具很少用鐵藝?

曲棟良 家具裡鐵藝的運用非常廣泛,而絕非 很少用 我們以時間為線,解釋並展示一些自己喜歡的含有鐵藝元素的家具產品。包浩斯時期 第二次工業革命時期 的絕大部分家具設計都採用了鐵藝元素。關於這一點,我相信任何乙個學過設計史的朋友都能理解。不知道包浩斯的朋友可以這麼想 自工業革命以來,傳統手工業被機械批量...

為什麼C 很少用於Web後端開發?

大部分後端還沒到需要c 來扣效能的那種地步,而且很可能有永遠都到不了那個地步。大炮打蚊子顯然沒有必要。你可以用自然界的生態位的概念來理解各種程式語言的地位 各種語言有自己的特性和複雜度,所以他們佔據了整個生態的不同部分,而且彼此不可替代。Web這個生態和C 相性不合,追求快速迭代,對於效能要求不明顯...

家裝吊頂為什麼很少用輕鋼龍骨?

Noys 樣板間都是用輕鋼龍骨做吊頂的。因為防火。效率高。剩下的用木龍骨或者阻燃板,就是用在輕鋼龍骨無法實現的部位,例如需要造型的,輕鋼龍骨不方便使用的部位。家裝如果沒有防火需求,也不是非得要用輕鋼龍骨。看具體現場條件。但是輕鋼龍骨是主流吧。 我住隔壁我姓王 因為給你裝木龍骨,以後出問題還能來收你一...