Blinn-Phong 高光反射着色器是一种常用的光照模型,它可以模拟物体表面在不同光源和观察角度下的明暗变化,从而增强物体的立体感和真实感。它是由 Jim Blinn 和 Bui Tuong Phong 在 1970 年代提出的,是对 Phong光照模型的改进和简化。 Blinn-Phong 高光反射着色器的基本思想是,物体表面的颜色由三个分量组成:环境光...
幸运的是,Unity中为我们提供了计算反射方向的函数reflect(i,n),值得注意的是,此函数中的入射方向i,是指向交点处的,所以我们计算反射光线时,需要对在Shader中取到的光源方向取反。 到此,我们终于对Phong模型公式有了大致的了解,接下来到了喜闻乐见的撸代码时间。
BlinnPhong光照,这是shader中最基础,最经典的光照模型,具体计算方法如下: 1. 漫反射 half3 diffuseCol = NdotL * lightCol * baseCol * shadowAttenuation * distanceAttenuation; 2. 镜面反射 half halfDir = normalize(viewDir + lightDir); half NdotH = saturate(dot(worldNormal, halfDir)); half3 sp...
Blinn-Phong模型与Phong模型的区别是,把dot(V,R)换成了dot(N,H),其中H为半角向量,位于法线N和光线L的角平分线方向。Blinn-Phong模型可表示为: Ispecular = Ks*Is* pow(( dot(N,H), n ) 其中H = (L + V) / | L+V |,计算H比计算反射向量R更快速。 1) VertexShader float4x4 matWorldViewProj...
THREE.JS Blinn–Phong反射模型 高光shader 文章目录 参考 效果 核心 全部代码 更新: 多点光(使用结构体) TODO: 新增灯光更新着色器 (threejs也是这么做的 所以动态灯光开销颇大(动态visible不需要重新构建着色器)) 参考 Blinn–Phong reflection model 效果...
Blinn-Phong高光反射颜色 = 入射光颜色 X 高光反射颜色 X max(0,Dot(法向量,视角方向与光照方向相加归一后的法向量))^反射系数 BlinnPhong大多适用于金属材质。 结果如下: image.png 代码如下: Shader"Unlit/Blinn-Phong"{Properties{_Diffuse("Diffuse",Color)=(1,1,1,1)_Specular("Specular",Color)=(1,...
Blinnphong支持光透射功能 从LayaAir2.11 beta版本开始,Blinnphong材质支持了光线透射功能,也就是当光线射入半透明材质,会产生光线透射的效果。例如下图的效果: (来自官网BlinnPhong_Transmission示例截图) 或者查看视频动态效果: (视频画质已被压缩,仅用于效果预览) ...
BlinnPhong高光反射 = 入射光线颜色强度 * 材质的高光反射系数 * n次平方 ( 取值为正数 ( 法线方向 · 半角方向 ),n ); 效果展示 顶点高光,片元高光,BlinnPhong片元高光 Phong顶点高光反射 Shader "Unlit/008" { Properties { _Diffuse("Diffuse",Color) = (1,1,1,1) ...
Shader "phong" { Properties { _Color("Color",color)=(1,1,0,1) _BaseMap("Base Map",2d)="white"{} // 调整高光强度 _Shininess("Shininess",float)=32 } SubShader { Pass { HLSLPROGRAM #pragma vertex Vertex #pragma fragment Pixel
Shader教程:Blinn-Phong 光照模型 Blinn-Phong 光照模型,又称为 Blinn-phong 反射模型(Blinn–Phong reflectionmodel)或者 phong 修正模型(modified Phong reflection model),是由 Jim Blinn于 1977 年在文章“Models of light reflection for computer synthesized pictures”中对传统 phong 光照模型基础上进行修改提出的...