UE5材质系统之PBR材质

打开UE默认材质球后都会显示PBR材质节点

PBR材质是工业流程经常使用的材质工作流

Base Color (基础颜色):显示基础颜色信息,不包括任何照明或阴影,基本颜色纹理看起来非常平坦

Metallicity (金属度):白色代表粗糙度高,黑色代表粗糙度低 , 生活中没有半金属物体,金属贴图也是非黑即白 没有灰色贴图,所以金属度不是0就是1

Specular (高光度):控制高光强度和范围,可以设置部分区域反光

Roughness(粗糙度):控制物体表面平滑和粗糙度

Normal (法线):蓝紫色贴图,提高模型细节,近似于置换

Emissive(自发光):物体本身颜色所散发出的光,在黑暗环境会有很好的效果

### UE5 中修改材质节点以不使用PBR的替代方案 在Unreal Engine 5 (UE5)中,尽管物理基础渲染(PBR)是默认的工作流程,但仍然可以通过自定义着色器和材质表达式创建非PBR材料。这涉及到直接操作光照模型中的各个组件而不是依赖于内置的PBR参数。 对于希望绕过标准PBR工作流的情况,可以考虑采用早期版本游戏引擎使用的经典Blinn-Phong或Phong反射模型[^2]。这些传统方法允许更精细地控制高光和其他光学特性而不必遵循严格的金属/粗糙度二元体系结构。 具体实现上,在材质编辑器内移除任何与PBR相关的输入端口连接(如金属度Metallic、粗糙度Roughness),转而引入新的浮点数滑块Float Slider用于手动调节漫反射Diffuse颜色强度以及镜面Specular系数: ```cpp // 定义非PBR材质属性 float DiffuseIntensity; float SpecularPower; // 替代PBR计算方式 vec3 CalculateNonPBRLighting(vec3 normal, vec3 lightDir, vec3 viewDir){ float NdotL = max(dot(normal, normalize(lightDir)),0.0); // 计算漫反射项 vec3 diffuseTerm = material.DiffuseColor * NdotL * DiffuseIntensity; // 高光部分基于简单的Phong模型 vec3 halfVector = normalize(viewDir + lightDir); float specularFactor = pow(max(dot(halfVector,normal),0.),SpecularPower); return ambientLighting + diffuseTerm + specularFactor*material.SpecularColor; } ``` 为了进一步增强效果并保持灵活性,还可以通过添加世界位置World Position偏移来模拟地形变化带来的不同表面质感差异[^4]。此技术特别适用于创建随海拔高度改变外观的地表特征,比如从草地过渡到岩石区域。 最后值得注意的是,当构建复杂场景时应谨慎处理性能影响;虽然放弃PBR可以获得独特视觉风格,但也可能增加优化难度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UE星空

感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值