小结与练习
小结
本章把 StandardMaterial 的主要参数组走了一遍:
- metallic + perceptual_roughness:定材质基调——金属还是非金属、光滑还是粗糙。这是 PBR 调参的第一步。
- normal_map_texture:假凹凸,零几何成本。需要 UV + 切线,加载时关 sRGB。
- emissive:自发光,照亮相机但不照亮世界。适合屏幕、指示灯。
- alpha_mode:六种透明模式,按"边缘硬不硬""需不需要排序"选。
- cull_mode + double_sided:控制背面可见性和法线翻转,薄片物体必修。
- depth_bias:解决 Z-fighting 的简单手段。
- clearcoat:在主 PBR 层上叠一层透明涂层——车漆、上釉。
- ior + specular_transmission + thickness:折射与透射——玻璃、宝石。
- attenuation_color + attenuation_distance:光在介质中的吸收——彩色玻璃、液体。
练习
各向异性:查阅
anisotropy_strength和anisotropy_rotation的文档,尝试做出拉丝金属效果。提示:网格需要切线数据。自发光脉冲:在 Listing 24-3 的基础上,写一个系统让自发光球的
emissive值随时间正弦变化,做出呼吸灯效果。透明排序:在 Listing 24-4 中,尝试把三块面板都设为
AlphaMode::Blend,观察相机旋转时的排序问题。然后把中间那块改为AlphaMode::Mask(0.5),比较差异。材质编辑器:用
bevy::ui做一个简单的滑块界面,实时调整StandardMaterial的metallic、perceptual_roughness、clearcoat三个参数。提示:用Query<&mut StandardMaterial>读写材质。