镜面高光
来源:互联网 发布:淘宝达人怎么发表状态 编辑:程序博客网 时间:2024/05/18 02:21
1.求出入射光向量
2.顶点法线向量
3.根据CG函数求出 反射光
4.反射光与视向量点积 求出镜面高光的系数 乘以对应颜色值
Shader "Custom/test1" { properties { _SpecularColor("SpecularColor",color)=(1,1,1,1) _shininess("shininess",range(4,64)) = 8 } SubShader { pass { Tags{"LightMode"="ForwardBase"} CGPROGRAM #pragma vertex vert #pragma fragment frag #include "unitycg.cginc" #include "lighting.cginc" float4 _SpecularColor; float _shininess; struct v2f{ float4 pos:POSITION; fixed4 col:COLOR; }; v2f vert(appdata_base v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP,v.vertex); float3 N = normalize(v.normal); float3 L = normalize(_WorldSpaceLightPos0); N = mul(float4(N,0),_World2Object).xyz; N = normalize(N); //漫反射 float ndot =pow(saturate(dot(L,N)),_shininess); //环境光 o.col = _LightColor0*ndot+UNITY_LIGHTMODEL_AMBIENT; //镜面高光 //1.求出入射光 float3 I = -WorldSpaceLightDir(v.vertex); //2.求出法线 float3 wN = UnityObjectToWorldNormal(v.normal); //3.计算反射 float3 R = reflect(I,wN); //4.计算视向量 float3 V = WorldSpaceViewDir(v.vertex); //5.归一求点积 R = normalize(R); V = normalize(V); float specularScale = saturate(dot(R,V)); o.col+=_SpecularColor*specularScale; return o; } fixed4 frag(v2f IN):COLOR { //光照计算放在片段程序中,交接顶点会变得比较平滑 return IN.col; } ENDCG } }}
0 0
- 镜面高光
- OpenGL教程翻译 第十九课 镜面高光
- Shader山下(六)镜面高光
- Cg Programming/Unity/Specular Highlights镜面高光
- OpenGL ES 学习教程(七) 亮瞎狗眼的 Specular Lighting 镜面高光
- Vertex中实现每顶点光照的镜面高光效果
- Cg Programming/Unity/Smooth Specular Highlights平滑镜面高光
- 【浅墨Unity3D Shader编程】之十三 单色透明Shader & 标准镜面高光Shader
- unity3d Shader镜面高光反射(使用fresenl), bolinPhone是没有物理依据的
- Unity3D Shader编程】之十三 单色透明Shader & 标准镜面高光Shader
- Cg Programming/Unity/Specular Highlights at Silhouettes轮廓处的镜面高光
- BFS与DFS
- Python的网页下载器:urllib2.urlopen
- 【问题跟踪】KryoException: java.io.IOException: No space left on device
- js当前时间加减一天,和格式化时间格式
- sizeof与strlen的区别:面试回答
- 镜面高光
- django进阶14 自定义manager
- Linux中常用操作命令
- Redhat下安装yum遇到的错误
- linker command failed with exit code 1 (use -v to see invocation)
- 自定义WordPress里标签(tag)和分类目录(category)的固定链接结构的方法
- Android最佳实践之:StrictMode介绍
- WEB访问绝对路径和cookie的设置
- SQL Server 中关于EXCEPT和INTERSECT的用法