【UnityShader入门精要】Unityshader中的漫反射(逐像素漫反射diffuse)
来源:互联网 发布:淘宝确认收货是什么 编辑:程序博客网 时间:2024/05/19 00:07
公式
Cdiffuse=(Clight *mdiffuse)max(0,n*l)
实现代码
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "Unity Shaders book/Chapter 6/Diffuse Vertex-Level" { Properties { _Diffuse("Diffuse",Color)=(1,1,1,1) } SubShader { Pass{ Tags{"LightMode"="ForwardBase"} CGPROGRAM #pragma vertex vert #pragma fragment frag #include "Lighting.cginc" fixed4 _Diffuse; struct a2v{ float4 vertex:POSITION; float4 normal:NORMAL; }; struct v2f{ float4 pos:SV_POSITION; fixed3 worldNormal:TEXCOORD0; }; v2f vert(a2v v){ v2f o; o.pos=mul(UNITY_MATRIX_MVP,v.vertex); o.worldNormal = mul(v.normal,(float3x3)_World2Object); return o; } fixed4 frag(v2f i):SV_Target{ fixed3 ambient= UNITY_LIGHTMODEL_AMBIENT.xyz; fixed3 worldNormal = normalize(i.worldNormal); fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz); fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * saturate(dot(worldNormal,worldLightDir)); fixed3 color = ambient+diffuse; return fixed4(color,1.0); } ENDCG } } FallBack "Diffuse"}
效果图
阅读全文
0 0
- 【UnityShader入门精要】Unityshader中的漫反射(逐像素漫反射diffuse)
- 【UnityShader入门精要】Unityshader中的漫反射(逐顶点漫反射diffuse)
- UnityShader学习笔记(六) 漫反射着色
- UnityShader案例(一)——漫反射
- 《unityshader 入门精要》漫反射光照与高光反射光照模型学习笔记
- UnityShader入门精要学习笔记(五):Unity中实现漫反射光照模型
- UnityShader初级篇——实现逐像素漫反射光照模型
- UnityShader从入门到放弃(五)漫反射—逐片元光照
- 漫反射(diffuse reflection)
- UnityShader从入门到放弃(四)漫反射—逐顶点光照
- Diffuse Lighting(漫反射光)
- UnityShader入门精要-数学篇
- UnityShader初级篇——实现逐顶点漫反射光照模型
- 漫反射-逐像素光照(半兰伯特)
- unity diffuse 漫反射
- 凹凸映射 Bump mapping(unityshader入门精要学习笔记)
- 读UnityShader编程入门精要 总结
- UnityShader入门精要学习笔记(二):数学知识
- Jupyter notebook 安装,初步使用
- NOIP 2017 赛前集训总结 C++版
- NOIP模拟 边的处理【分治+动态规划】
- Jsp文件上传
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"
- 【UnityShader入门精要】Unityshader中的漫反射(逐像素漫反射diffuse)
- 芯片史上最大收购案!会发生吗?
- windows环境下python2.7、pycharm、numpy_mkl、scipy、sklearn、Matplotlib、jupyter完整安装教程
- JS中的Window对象、Parent对象、Frame对象、Document对象和Form对象
- python测试开发笔/面试题(含答案)
- Linux入门笔记2. 文件系统概览
- C和C++相互调用详解
- 一道题
- Tomcat9.0安装