欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > asp.net >内容正文

asp.net

WPF 3D 学习 - 3D材质初步

发布时间:2025/4/14 asp.net 67 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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材质初步的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。