2012-06-12 67 views
1

我需要創建一個透明的GeometryModel3D。
像這樣:
Like this:Transparent GeometryModel3D


我試過這段代碼:

var m = new Model3DGroup(); 
var panelsGeometry = MyMeshGeometry3D; 
     Brush br = new SolidColorBrush(Colors.Red); 
     br.Opacity = 0.5; 
     m.Children.Add(new GeometryModel3D(panelsGeometry, new DiffuseMaterial(br)) { BackMaterial= new DiffuseMaterial(br) }); 


但作爲一個結果,我得到這樣的:
enter image description here


我在做什麼錯?謝謝。

+0

看起來不透明度只是將顏色與默認外觀混合在一起,但不會影響多邊形的不透明度...... –

回答

0

您可以使用帶有ImageBrush的透明圖像,一個像素就足夠了,但您需要在網格對象上設置TextureCoordinates

+0

您能舉一個例子嗎?我無法理解 –

+0

@ user1159999:只需創建一個具有所需顏色但具有所需透明度的像素的「png」圖像,從中創建一個ImageBrush,從中創建一個材質,將其分配給屬性。對於座標,你可以使用一些簡單的東西,比如'「0 1 1 1 0 0 1 0」'。 –

0

您需要使用TextureCoordinates,並且您必須將邊從後到前排列,以便它們正確混合。 WPF不會這樣做。

this article

0

確認包裝箱網格幾何體包含24個百分點。如果您的方框包含最少點數(8),則後面的面將不會被渲染。

例如,請參見here

您可以下載Normals3D.zip並更改完整網格框的筆刷不透明度以獲得所需的效果。

相關問題