Skip to content

小结与练习

小结

本章把 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:光在介质中的吸收——彩色玻璃、液体。

练习

  1. 各向异性:查阅 anisotropy_strengthanisotropy_rotation 的文档,尝试做出拉丝金属效果。提示:网格需要切线数据。

  2. 自发光脉冲:在 Listing 24-3 的基础上,写一个系统让自发光球的 emissive 值随时间正弦变化,做出呼吸灯效果。

  3. 透明排序:在 Listing 24-4 中,尝试把三块面板都设为 AlphaMode::Blend,观察相机旋转时的排序问题。然后把中间那块改为 AlphaMode::Mask(0.5),比较差异。

  4. 材质编辑器:用 bevy::ui 做一个简单的滑块界面,实时调整 StandardMaterialmetallicperceptual_roughnessclearcoat 三个参数。提示:用 Query<&mut StandardMaterial> 读写材质。