Unity3d《Shader篇》漫反射

Shader "Custom/Ambient" {

    Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_Color("Diffuse Material Color", Color) = (,,,)
_SpecColor("Specular Color", Color) = (,,,)
_Shininess("Shininess", Float) =
} SubShader
{
Pass
{
Tags{ "LightMode" = "ForwardBase" } CGPROGRAM #pragma exclude_renderers gles #pragma vertex vert
#pragma fragment frag sampler2D _MainTex; uniform float4 _Color;
uniform float4 _SpecColor;
uniform float _Shininess; uniform float4 _LightColor0; struct vertexInput
{
float2 texCoord : TEXCOORD0;
float4 vertex : POSITION;
float3 normal : NORMAL;
}; struct vertexOutput
{
float4 pos : SV_POSITION;
float4 color : COLOR;
float2 texCoord : TEXCOORD0;
}; vertexOutput vert( vertexInput input )
{
vertexOutput output;
float4x4 modelMatrix = _Object2World; float3 normalDir = normalize(float3(mul(_Object2World, float4(input.normal,0.0))));
float3 lightDir = normalize(float3(_WorldSpaceLightPos0));
float3 viewDir = normalize(_WorldSpaceCameraPos - float3(mul(_Object2World,input.vertex))); float specularRefection = float3(_LightColor0)*float3(_SpecColor)*pow(max(0.0,dot(reflect(-lightDir,normalDir),viewDir)),_Shininess);
float3 diffuseReflection = float3(_LightColor0)*float3(_Color)*max(0.0,dot(normalDir,lightDir)); float3 ambientLighting = float3(UNITY_LIGHTMODEL_AMBIENT)*float3(_Color); output.color = float4(ambientLighting+diffuseReflection+specularRefection,1.0);
output.pos = mul(UNITY_MATRIX_MVP,input.vertex);
output.texCoord = input.texCoord; return output; } float4 frag(vertexOutput input) : COLOR
{
float4 col = tex2D(_MainTex,input.texCoord)*_Color;
return input.color*col; } ENDCG
}
} FallBack "Diffuse"
}

Unity3d《Shader篇》漫反射的更多相关文章

  1. 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)  ...

  2. 【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨)  ...

  3. 【浅墨Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 & 纹理混合

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1117/120.html 作者:毛星云 ...

  4. 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 & 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)  ...

  5. Unity3D shader简介

    Unity3D shader简介 可以肯定的说Unity3D使得很多开发者开发游戏更容易.毫无疑问,shader(着色器)编码,仍有很长的路要走.shader是一个专门运行在GPU的程序,经常被神秘包 ...

  6. 转 猫都能学会的Unity3D Shader入门指南(二)

    猫都能学会的Unity3D Shader入门指南(二) 关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己 ...

  7. Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  8. 【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&混合操作编译

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/42060963 作者:毛星云(浅墨)  ...

  9. 猫都能学会的Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

随机推荐

  1. MongoDB创建数据库和集合命令db.createCollection详解(转)

    切换/创建数据库 use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库 完整的命令如下:db.createCollection(name, {capped: <Boo ...

  2. 部署Redis for Windows服务

    一.环境 Redis Windows 版本:2.8.2104 二.植入Windows服务    > redis-server.exe --service-install redis.window ...

  3. asp.net mvc 4 高级编程学习笔记:第三章 视图(1)

    1.基础规则 视图的职责是向用户提供用户界面. 视图位于View目录下:有普通的需要控制器渲染的视图,有局部视图,有布局视图等各种视图. 2.视图渲染 控制器默认情况下渲染与控制器同名的目录内的与Ac ...

  4. ubuntu系统无法访问无法磁盘最佳解决办法

    出现如下错误: Error mounting /dev/sda8 at /media/fzh/System: Command-line `mount -t "ntfs" -o &q ...

  5. python4delphi 使用

    Python 开发桌面程序, 之前写过一个使用IronPython的博客. 下面这个方案使用 delphi 作为主开发语言,通过 python4delphi 控件包将 python 作为 script ...

  6. 一行代码解决各种IE兼容问题IE8,IE9,IE10

    一:一.指定文件兼容性模式(Xee:因为我已经放弃IE6,7了,所以以后设计的网页最低支持IE8;) 要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-Compatible ht ...

  7. 清北暑假模拟day2 之

    /* 现场代码,枚举每条边删除 */ #include<iostream> #include<cstdio> #include<string> #include&l ...

  8. WCF基础知识

    根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的安全.可信赖.事务性 ...

  9. 第一天 django

    全栈增长工程师实战 http://growth-in-action.phodal.com/ 生成的代码和示例不一样,static 也要加上 from django.conf.urls import u ...

  10. RDS记录

    rdsafbnr32uzayn.mysql.rds.aliyuncs.com r7fysfqs90r74cm6