跳转至

Chunky材质属性详解

在Chunky中,每个方块和实体都由材质定义。材质属性控制光线与表面的相互作用方式,直接影响渲染效果的真实感和美感。

材质属性概览

Chunky提供以下五个可编辑的材质属性:

属性 用途 数值范围 说明
自发光 光源强度 0 ~ 无限 越高材质越亮;取决于方块表面积
镜面反射 镜面光程度 0 ~ 1 0=完全漫反射,1=完全镜面
光滑度 表面平整度 0 ~ 1 0=粗糙,1=光滑;控制反射发散度
折射率 光线弯曲程度 1.0 ~ 2.5+ 控制透明材质的光学效果
金属度 金属性光泽 0 ~ 1 0=非金属,1=金属;反射会被纹理着色

自发光(Emittance)

定义:材质自身发出的光的强度。

原理

自发光材质会主动向场景中发光。发射的光颜色取决于材质纹理的平均颜色。例如: - 火焰的发光是橙黄色 - 青色陶土的自发光是青色 - 草方块(如果被设为自发光)会发出绿光

计算公式

根据方块在游戏中的亮度和表面积计算自发光值:

自发光 = (游戏亮度等级 / 15) × (1536 / 表面积像素数)

简化后:

自发光 = (游戏亮度等级 / 表面积像素数) × 102.4

实例

  • 发光石块(游戏亮度15,1536像素表面):自发光值 = 1.0
  • 火把(游戏亮度14,少量表面):自发光值 ≈ 2 ~ 3
  • 荧石块(游戏亮度15,自定义纹理):自发光值可调

常见误区

表面积很重要

不要以为所有亮度为15的方块的自发光值都相同。表面积小的发光体(如火把、蜡烛)的自发光值需要更高,才能与同亮度的完整方块一样明亮。这在路径追踪中会产生显著差异。

镜面反射(Specular)

定义:表面反射的光线中,有多少比例以镜面方式反射(即类似镜子的反射)。

效果示意

  • Specular = 0:材质表现为完全漫反射,看起来哑光、无光泽,如石头、泥土
  • Specular = 0.5:混合反射,既有漫反射又有少量镜面反射,如微微反光的石头、潮湿的表面
  • Specular = 1:完全镜面反射,表现为闪闪发光,如水面、光滑的冰面

物理解释

光线与表面相交时: - 表面越粗糙,光线散射越多(漫反射) - 表面越光滑,光线反射方向越集中(镜面反射)

实际应用

设置镜面反射值的场景:

材质 推荐值 原因
干燥泥土、砖块 0 ~ 0.1 吸收光线,无反光
石头、木头 0.1 ~ 0.2 自然表面,轻微反光
潮湿的表面 0.2 ~ 0.4 水分增加反光性
冰块、水面(部分) 0.4 ~ 0.7 高度反光的自然材料
玻璃、抛光金属 0.8 ~ 1 极度光滑,强烈反光

湿润效果

想让一个表面看起来被雨淋湿或刚下过雨?增加镜面反射值到 0.2 ~ 0.4,同时保持原有的粗糙度,就能营造出湿润的视觉效果。

光滑度(Smoothness)

定义:表面的光学平整程度。数值越高,表面越光滑,反射越集中;数值越低,表面越粗糙,光线散射越多。

与粗糙度的关系

Chunky内部使用线性粗糙度做计算,但UI中显示感知光滑度(更符合人类视觉)。这两者的关系是:

\[\text{线性粗糙度} = (1 - \text{感知光滑度})^2\]

这意味着: - 光滑度 0.5 的表面看起来不是光滑度 0.25 的两倍光滑 - 而是大约两倍光滑(符合人眼感受)

效果对比

  • Smoothness = 0:完全粗糙,如砂纸、毛毯,反射非常发散
  • Smoothness = 0.5:中等粗糙,如普通布料、旧木板
  • Smoothness = 1:完全光滑,如镜子、新打磨的金属

与镜面反射的交互

光滑度和镜面反射常常配套使用:

组合 效果 例子
低镜面 + 低光滑 哑光无光,表面粗糙 旧泥砖
低镜面 + 高光滑 哑光但平整,摸起来光滑但不反光 塑料膜
高镜面 + 低光滑 反光但模糊,如毛玻璃 磨砂玻璃
高镜面 + 高光滑 清晰反光,最现实 镜子、光滑冰面

折射率(Index of Refraction, IoR)

定义:光线进入和离开透明材质时的弯曲程度。数值高的材质会更强烈地弯曲光线。

常见物质的IoR值

物质 IoR值 说明
真空 1.0 基准
空气 1.0003 几乎无弯曲
1.33 轻微弯曲,看起来不太透明
玻璃 1.5 ~ 1.6 明显弯曲,常见光学玻璃
钻石 2.42 极端弯曲,高度闪耀
1.31 接近水,但看起来更透明

Minecraft中的应用

  • 水块:IoR ≈ 1.33,会产生自然的水下光线弯曲效果
  • 冰块:IoR ≈ 1.31,比水更透明但有相似弯曲
  • 自定义透明方块:根据游戏美术风格调整,范围通常 1.3 ~ 1.8

视觉效果

IoR值高的材质在光线进出时产生更明显的折射,导致透过物体看东西会有明显的"弯曲"和"放大/缩小"效果。

物理正确性

完全符合物理的IoR需要与光滑度配合。如果材质既是透明的又有粗糙的表面(如毛玻璃),IoR值会与光滑度共同影响折射效果的清晰度。

金属度(Metalness)

定义:材质表现出的金属特性。数值越高,材质越像金属,反射越强且被纹理着色。

金属度 vs 镜面反射

两者看起来相似但工作方式不同:

特性 金属度 镜面反射
反射颜色 纹理着色(如铜会反射铜色光) 白色/灰色反射
物理原理 模拟真实金属的菲涅耳效应 简单的镜面反射
使用场景 金属、合金、氧化表面 非金属光滑表面
结合方式 通常配合高光滑度 可配合各种光滑度

实际应用

铁块: - 金属度 = 1.0(完全金属) - 光滑度 = 0.8(略有氧化,不是镜子般光滑) - 结果:反射看起来是铁的颜色,略微模糊

铜块: - 金属度 = 1.0(完全金属) - 镜面反射 = 0(用金属度代替) - 光滑度 = 0.6 ~ 0.8(新铜很光滑) - 结果:反射呈现铜色光泽

氧化铜块: - 金属度 = 0.8 ~ 0.9(部分氧化) - 光滑度 = 0.4 ~ 0.6(氧化层粗糙) - 结果:呈现绿色着色的、略显暗沉的金属

脏金属效果

虽然现实中不存在"50%金属度"的材料,但在Chunky中可以用这个特性模拟: - 脏金属:金属度 0.5 ~ 0.7,低光滑度 = 看起来布满灰尘的金属 - 生锈金属:金属度 0.6,配合红棕色纹理 = 真实的生锈效果

在Chunky中编辑材质属性

访问材质面板

  1. 打开Chunky并加载场景
  2. 在左侧渲染控制面板中找到Materials标签
  3. 选择要编辑的材质(方块或实体)
  4. 调整五个属性值

编辑工作流

  1. 预览前:设置基本属性,观察实时预览
  2. SPP渲染:用较低的采样数快速预览效果
  3. 微调:根据效果细微调整各参数
  4. 最终渲染:在确定满意后进行高SPP渲染

性能影响

自发光和高反射率材质会显著增加渲染时间。如果场景中有大量发光体,可能需要提高目标SPP以达到相同的噪声级别。

最佳实践

通用建议

  1. 从默认值开始:Chunky的默认材质值通常已经合理,小幅调整即可
  2. 逐个调整:一次只改变一个属性,观察效果
  3. 参考现实:想象现实中的材料会如何反射光线
  4. 对比测试:保存场景,尝试不同的值组合
  5. 关注表面积:同样的自发光值,表面积不同的方块亮度差异很大

常见场景

日光场景(有太阳光): - 大多数方块维持默认值 - 只需调整特殊方块(如发光的方块)

夜间场景(无太阳或低亮度): - 增加火把、灯笼等发光体的自发光值 - 提高环境光,防止场景过暗 - 目标SPP需要提高 2-4 倍

室内/洞穴场景: - 使用足够的光源(火把、蜡烛等) - 确保发光块的自发光值正确 - 可用后期处理增加对比度

相关链接


备注:本文档基于Chunky文档翻译和整理,感谢Chunky开发团队。