片段漫反射.Shader

原创 2016年08月29日 19:20:28
Shader "Custom/Light/DiffuseLightFrag"{
    Properties{
        _DiffuseColor("DiffuseColor", Color) = (1, 1, 1, 1)
    }
    SubShader{
        Pass{
            Tags{
                "LightModel" = "ForwardBase"
            }

            CGPROGRAM
            #include "Lighting.cginc"

            #pragma vertex vert
            #pragma fragment frag

            fixed4 _DiffuseColor;

            struct a2v{
                float4 pos : POSITION;
                float4 normal : NORMAL;
            };

            struct v2f{
                float4 pos : SV_POSITION;
                float3 worldNormal : TEXCOORD0;
            };

            v2f vert(a2v v){
                v2f o;
                o.pos = mul(UNITY_MATRIX_MVP, v.pos);
                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 * _DiffuseColor.rgb * max(0, dot(worldNormal, worldLightDir));
                fixed3 color = ambient + diffuse;
                return fixed4(color, 1.0);
            }
            ENDCG
        }
    }
    Fallback "Diffuse"
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

高光法线漫反射shader

  • 2017年02月09日 17:47
  • 1KB
  • 下载

Unity3D Shader之光照模型——理论与实践:用两种方式来实现漫反射Diffuse Reflection

漫反射原理解析众所周知,漫反射即光线射到粗糙的物体表面时发生的反射现象,入射光线为平行光线,而出射光线为各个方向。光在空气中以直线传播,光线的反射也遵守物理规则。...
  • kevlis
  • kevlis
  • 2016年11月03日 16:07
  • 380

shader中常见的光照基础-漫反射

简单的图形学介绍,漫反射,unity

Unity Shader入门精要笔记(九):Unity 的基础光照——漫反射的实现

上一篇讲了Unity光照的概念,理论和公式。这一篇我们可以利用公式,实现简单的漫反射效果。...

Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图

原文过于冗余,精读后做了部分简化与测试实践,原文地址:http://www.j2megame.com/html/xwzx/ty/2571.html 一个三维场景的画面的好坏,百分之四十取...

解读Unity中的CG编写Shader系列7——漫反射

如果前面几个系列文章的内容过于冗长缺乏趣味着实见谅,由于时间原因前面的混合部分还没有写完,等以后再补充,现在开始关于反射的内容了。 折射与反射 在物理世界中,光的反射与折射往往是同时存在的,光源由真...

Shader实现漫反射、高光反射、纹理映射

使用Unity有一段时间了,越来越发现shader的重要性,之前也有一篇文章提了编写shader基本语法 最近重操旧业,准备继续深入学习shader 漫反射效果 漫反射几何计算公式: Diffuse ...

Unity Shader之自定义漫反射光照模型

不积跬步,无以至千里;不积小流,无以成江海。(来自《劝学》- 荀子)在CSDN或者其他前辈的blog中大家都可以找到类似的教程 为什么我还要去写呢 , 主要是因为我想加入些自己的理解发现文字真是个好...

Unity Shader编程(1)漫反射着色

Unity Shader编程(1)漫反射着色 在Unity中创建如下工程: 我们把Shader拖到Material上。Meterial拖到Cube上。这就完成了一个着色器的着色过程。 ...

解读Unity中的CG编写Shader系列8——多光源漫反射

前文中完成最简单的漫反射shader只是单个光源下的漫反射,而往往场景中不仅仅只有一个光源,那么多个光源的情况下我们的物体表面的漫反射强度如何叠加在一起呢?前文打的tag "LightMode"="F...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:片段漫反射.Shader
举报原因:
原因补充:

(最多只允许输入30个字)