【shaderforge学习笔记】 Specular(高光)通道

本文详细介绍了Unity中ShaderForge的Specular(高光)通道,包括官方介绍、输入参数、镜面反射原理以及Phong和Blinn-Phong光照模型的应用。通过自定义Shader实现Blinn-phong光照模型,展示了高光和光泽度对材质表现的影响。
摘要由CSDN通过智能技术生成

shaderforge Specular通道

一、官方介绍

这里写图片描述
这是材质的高光的颜色。值越高越亮,如果高光值为黑色则完全不会影响shader的表现。

二、通道的输入

1. Specular

可以是高光贴图也可以是高光颜色
这里写图片描述

2. Gloss

默认值为0.5
gloss用来调制亮斑的大小,一般来讲,gloss越大,光斑越细小,gloss越大,光斑分布越广泛
这里写图片描述

三、镜面反射简介

对于许多物体,漫反射不够真实,比如擦亮的金属、光滑的塑料。要模拟光滑表面,还需要添加镜面高光反射的颜色,。在金属这样的光滑表现上,能模拟出光泽

1. 理想镜面反射

一束平行光射到平面镜上,入射光严格遵循光的反射定律平行的反射出去,这种反射叫做镜面反射。
这里写图片描述

2. 非理想镜面反射

现实中的物体表面都不是完全光滑的。在微观上物体的表面面元是由许多朝向的微小平面组成,其镜面反射光分布于物体镜面反射方向的周围。
这里写图片描述

3. 镜面反射光特点

  • 跟入射方向有关
  • 跟观察的角度有关

黑暗的房间中,手电筒的光射向一面镜子,只有眼睛与光线平行的时候才能看到光,改变观察的角度看到不到光。

四、光照模型

1. Phong光照模型

Phong光照模型属于经验模型,它在Lambert模型(纯漫反射模型)的基础上考虑了镜面反射的效果,该模型只考虑物体对方向光的镜面反射作用,不考虑环境光的镜面反射(认为环境光只发生漫反射),主要用来模拟光滑物体表面的光照现象。

此模型假设物体表面为非理想镜面反射体(既会发生漫反射也会发生镜面发射,且镜面反射为非理想的镜面反射),场景中存在两种光,一种为环境光,一种为方向光,然后我们分别计算这两种光照射到物体表面所产生的光照现象(注意:phong不考虑环境光的镜面反射,也就是说我们要考虑到环境光的漫反射和方向光的漫反射和镜面反射),最后再将两个结果相加,得出反射后的光强值。

首先是计算环境光的公式:

I_inDirectionDiffuse = K_d * I_a;

其中,K_d为粗糙物体表面材质对光的反射系数,这个系数由程序编写者在宿主程序中给出,I_a为环境光的光强,也就是环境光的颜色数值,一般是一个float3型的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值