片段漫反射.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"
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

unity shader (4)--实现漫反射模型

首先给shader其一个名字 Shader "Custom/DiffuseVertxLevelMat" 为了得到并控制材质漫反射的颜色,在Properties语义块中声明如下 #include "...
  • qq_28221881
  • qq_28221881
  • 2016年10月16日 23:13
  • 1189

unity3D Shader<三>漫反射

一、漫反射的说明          对于粗糙物体表面的某一点,其亮度应该和入射光线与该点的垂直程度有关,也就是入射光线与此点的夹角相关。如果我们用L表示单位长度的入射光线,用C表示到达此点的光线强度和...
  • bianchengxiaosheng
  • bianchengxiaosheng
  • 2015年03月29日 15:05
  • 1891

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

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

UnityShader学习笔记(六) 漫反射着色

大家好,我是Zander。今天我们来学习一下漫反射着色器。任何优秀的着色器开始总会依赖于一个基础的漫反射组件或者光照模型。因此从漫反射部分开始着色器的编写是非常有意义的。 Baidu百科     ...
  • zjw1349547081
  • zjw1349547081
  • 2017年01月10日 16:35
  • 444

【Unity3D Shader编程】之十二 可编程Shader初步 & 漫反射可编程Shader的实现

从这篇文章开始, Shader系列博文将继续开始更新。且在这次重启,这个系列文章会更多专注于实际Shader的书写,力求推出更多具有特色和实用性的Shader,概念性的东西在原则上上是不会再多讲的。 ...
  • zhmxy555
  • zhmxy555
  • 2016年03月06日 11:23
  • 14782

Unity Shader学习笔记(二)简单的漫反射

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Upgrade NOTE: replaced '_Ob...
  • zjw1349547081
  • zjw1349547081
  • 2016年12月21日 11:19
  • 334

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

前文中完成最简单的漫反射shader只是单个光源下的漫反射,而往往场景中不仅仅只有一个光源,那么多个光源的情况下我们的物体表面的漫反射强度如何叠加在一起呢?前文打的tag "LightMode"="F...
  • zay109327402
  • zay109327402
  • 2014年09月23日 17:07
  • 4631

《unityshader 入门精要》漫反射光照与高光反射光照模型学习笔记

顶点漫反射光照模型 虽然优化方面来说比较好,但是效果不好。基于顶点的光照计算导致,光照效果不平滑。   // Upgrade NOTE: replaced '_Object2World' with '...
  • u013354943
  • u013354943
  • 2016年10月09日 14:30
  • 1462

Shader forge 序列帧、漫反射、折射、环境光照

本文章是根据Jason的shader forge教程笔记  原视频地址https://www.bilibili.com/video/av11127524/ 1.序列图播放 ...
  • KiwiFly_
  • KiwiFly_
  • 2017年11月08日 16:07
  • 286

使用shaderMaterial实现环境光与漫反射光

上次咱们使用shaderMaterial实现纹理贴图,之后进一步拓展,在之前的基础上加上平行光与漫反射光的效果。 代码如下: ...
  • qq_30621091
  • qq_30621091
  • 2017年02月24日 20:31
  • 374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:片段漫反射.Shader
举报原因:
原因补充:

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