【UnityShader入门精要】Unityshader中的漫反射(逐顶点漫反射diffuse)
来源:互联网 发布:unity3d 场景制作 编辑:程序博客网 时间:2024/05/25 08:12
公式
Cdiffuse=(Clight *mdiffuse)max(0,n*l)
实现代码
// 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 color:COLOR; }; v2f vert(a2v v){ v2f o; o.pos=mul(UNITY_MATRIX_MVP,v.vertex); fixed3 ambient= UNITY_LIGHTMODEL_AMBIENT.xyz; fixed3 worldNormal = normalize(mul(v.normal,(float3x3)unity_WorldToObject)); fixed3 worldLight = normalize(_WorldSpaceLightPos0.xyz); fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * saturate(dot(worldNormal,worldLight)); o.color = ambient+diffuse; return o; } fixed4 frag(v2f i):SV_Target{ return fixed4(i.color,1.0); } ENDCG } } FallBack "Diffuse"}
效果图
阅读全文
0 0
- 【UnityShader入门精要】Unityshader中的漫反射(逐顶点漫反射diffuse)
- 【UnityShader入门精要】Unityshader中的漫反射(逐像素漫反射diffuse)
- UnityShader从入门到放弃(四)漫反射—逐顶点光照
- UnityShader学习笔记(六) 漫反射着色
- UnityShader案例(一)——漫反射
- 《unityshader 入门精要》漫反射光照与高光反射光照模型学习笔记
- UnityShader入门精要学习笔记(五):Unity中实现漫反射光照模型
- UnityShader初级篇——实现逐顶点漫反射光照模型
- UnityShader从入门到放弃(五)漫反射—逐片元光照
- 漫反射(diffuse reflection)
- Diffuse Lighting(漫反射光)
- UnityShader入门精要学习笔记(十七):顶点动画
- 漫反射-逐顶点光照
- UnityShader入门精要-数学篇
- UnityShader初级篇——实现逐像素漫反射光照模型
- unity diffuse 漫反射
- Unity3D逐顶点漫反射代码
- 凹凸映射 Bump mapping(unityshader入门精要学习笔记)
- ACdreamXMUT新生摸底训练赛C
- Linux下开发-wait和waitpid
- “耳鸣”自己在家也可以治疗
- Python编程-计算图像直方图
- 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 WinMain
- 【UnityShader入门精要】Unityshader中的漫反射(逐顶点漫反射diffuse)
- VS2017的功能探索
- Json 从后端发送到前端 Easyui
- 快速读入
- Android的数据存储方式---内部存储与外部存储
- 01.nexus的安装和使用
- 项目中Classpath路径
- 锁的分类
- 在channelartlist中使用SEO标题,即seotitle