WPF 3D 学习 - 3D材质初步
材質(Material )
在二維中,可以使用 Brush 類來向屏幕中的區域應用顏色、圖案、漸變或其他可視化內容。
但是,三維對象的外觀是照明模型的功能,而不只是應用于它們的顏色或圖案。?
實際對象的圖面質量不同,它們反射光的方式也會有所不同:光亮的圖面與粗糙或不光滑的圖面看上去不同,某些對象似乎可以吸收光,而某些對象似乎能夠發光。?
Material 的具體子類用來確定模型圖面的某些外觀特征,每個子類還提供一個可以向其傳遞 SolidColorBrush、TileBrush 或 VisualBrush 的 Brush 屬性。
wpf 3D 材質有三種
DiffuseMaterial 使用 DiffuseMaterial 與直接針對二維模型使用畫筆非常相似;模型表面不反射光,就好像是自發光一樣。
SpecularMaterial 可以通過為 SpecularPower 屬性指定一個值來設置系統將為紋理的反射特質(或“發光”)建議的度數。
EmissiveMaterial ?可以指定將應用紋理,就好像模型所發出的光與畫筆的顏色相同。這不會使模型成為光源;但是,它參與陰影設置的方式將不同于用 DiffuseMaterial 或 SpecularMaterial 設置紋理時的情況。
3D材質不同于畫刷,3D材質是為了考慮3D物體表面反射光而引入;
如下代碼;<GeometryModel3D.Material>元素里面是材質;
也可以定義材質的更多屬性;
可以定義材質Material,和BackMaterial,后者應用于3D物體的內部;當前看不出效果;
?
DiffuseMaterial.Color 屬性
屬性值
Color
Material 的顏色篩選器。 默認值為 #FFFFFF。 由于所有顏色在一起構成白色,因而默認情況下所有顏色均可見。參見;
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.media.media3d.diffusematerial.color?view=net-5.0#System_Windows_Media_Media3D_DiffuseMaterial_Color
為DiffuseMaterial增加一個Color屬性,如下;沒看到有什么變化;逐步再學習什么是材質的顏色篩選器;
?
材質相關代碼;
<GeometryModel3D.Material>
? ? <DiffuseMaterial Brush="Green"/>
</GeometryModel3D.Material>
? ? ? ? ? ? ? ? ? ?<GeometryModel3D.Material>
? ? ? ? ? ? ? ? ? ? ? <DiffuseMaterial>
? ? ? ? ? ? ? ? ? ? ? ? <DiffuseMaterial.Brush>
? ? ? ? ? ? ? ? ? ? ? ? ? <SolidColorBrush
? ? ? ? ? ? ? ? ? ? ? ? ? ? Color="GreenYellow"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? Opacity="1.0"/>
? ? ? ? ? ? ? ? ? ? ? ? </DiffuseMaterial.Brush>
? ? ? ? ? ? ? ? ? ? ? </DiffuseMaterial>
? ? ? ? ? ? ? ? ? ? </GeometryModel3D.Material>
<GeometryModel3D.Material>
? ? <DiffuseMaterial Brush="Green"/>
</GeometryModel3D.Material>
<GeometryModel3D.BackMaterial>
? ? <DiffuseMaterial Brush="Red"/>
</GeometryModel3D.BackMaterial>
總結
以上是生活随笔為你收集整理的WPF 3D 学习 - 3D材质初步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言int 13中断02h功能Dem
- 下一篇: MFC文档、视图类的基本功能和二者基本关