2012-12-03 44 views
1

我有一個3D模型看起來像這樣在3DMAX:我應該使用什麼樣的着色器的渲染頭髮

enter image description here

我開發一個程序(C#XNA/OpenGL的)來讀取3D模型和應用材料,所以它看起來像這樣:

enter image description here

但是由facegen和頭髮創建的模型看起來像這樣在facegen:

enter image description here

所以我的問題是我應該用什麼樣的着色器來渲染頭髮,使它看起來像Facegen中的那種。

評論,關鍵字,點擊,樣本,教程或代碼任何東西都是值得歡迎的。

我的平臺

Windows 7的64位 C#或C++ XNA或DirectX或OpenGL

+1

一個起點:[GPU寶石2,第23章](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter23.html)。 –

+3

我要求我的理髮師下一次鑲嵌貝塞爾切割。 –

+0

足夠接近,Brett :) –

回答

3

有一個nVidia的頭髮演示稱爲娜魯,你可以在這裏nVidia的樣品中發現:https://developer.nvidia.com/nvidia-graphics-sdk-11-direct3d。使用的着色器被稱爲Marschner着色器,您可以通過Google瞭解關於它的更多信息。當然,還有許多其他的頭髮渲染技術和許多其他着色器。

此外,還有一個博客專門與頭髮渲染資源http://hairrendering.wordpress.com/與良好的信息。

+0

謝謝波普,我很感激。 –

1

一個相當不錯的技術是使用粒子的頭髮,而不是渲染點,而是渲染線條。

這樣做的一種方法是將整個粒子的生命期全部一次性渲染,而不是在特定時間渲染特定點。與貝塞爾曲線一起使用,你可以得到一些非常逼真的頭髮。你甚至可以走得更遠,並簡單地通過操縱使用頂點場或類似

+0

感謝您的提示,Moore91 –

1

乍一看東西粒子的路徑模擬風吹頭髮等,facegen看起來像是剛放下與alpha混合基於頭髮多邊形紋理和UNLIT,以便透明排序問題很難找到。頭髮方法的選擇取決於許多考慮因素,包括渲染器的類型(前進/延遲),所需性能,是否願意對頭髮多邊形(或塊)進行分類...

Marschner方法是優秀但複雜。正如我所描述的那樣嘗試alphablending,如果你只是想快速簡單。

+0

是的,Marathoner過濾器在我的Macbook Pro上爲我提供了14FPS。我會檢查alphablending,謝謝。 –

相關問題