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

来自CSDN博客:【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质 http://blog.csdn.net/zhmxy555/article/details/40955607#

  编程语言 最后更新时间 2017-05-01 01:31:41
blog_20141109_1_7896739 25行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
Shader "浅墨Shader编程/0.Shader框架示例"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
//纹理
_MainTex("基本纹理",2D)="White"{TexGen ObjectLinear}
}
//---------------------------------【子着色器1】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//设置纹理为属性中选择的纹理
SetTexture[_MainTex]{combine texture}
}
}
//---------------------------------【备胎】----------------------------------------
//备胎设为Unity自带的普通漫反射
Fallback" Diffuse "
}
blog_20141109_2_2795723 18行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
Shader "浅墨Shader编程/SimpleWater"
{
Properties{
//properties for water shader
//水着色器的属性
_WaveScale("Wave scale", Range (0.02,0.15)) = 0.07 // 滑动条
_ReflDistort("Reflection distort", Range (0,1.5)) = 0.5
_RefrDistort("Refraction distort", Range (0,1.5)) = 0.4
_RefrColor("Refraction color", Color) =(.34, .85, .92, 1) // 颜色
_ReflectionTex("Environment Reflection", 2D) = "" {} // 纹理
_RefractionTex("Environment Refraction", 2D) = "" {}
_Fresnel("Fresnel (A) ", 2D) = "" {}
_BumpMap("Bumpmap (RGB) ", 2D) = "" {}
}
//后续代码省略
………
}
blog_20141109_3_9339751 13行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
Shader"浅墨Shader编程/1.基础单色"
{
//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//设为蓝色单色
Color(0,0,0.6,0)
}
}
}
blog_20141109_4_3059881 20行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
Shader"浅墨Shader编程/2.材质颜色设置&开启光照"
{
//---------------------------------【子着色器1】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//----------材质------------
Material
{
//将漫反射和环境光反射颜色设为相同
Diffuse(0.8,0.5,0.4,1)
Ambient(0.8,0.5,0.4,1)
}
//开启光照
LightingOn
}
}
}
blog_20141109_5_4587400 27行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
Shader "浅墨Shader编程/3.简单的可调漫反射光照"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
_MainColor ("主颜色", Color) =(1,.1,.5,1)
}
//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//-----------材质------------
Material
{
//可调节的漫反射光颜色
Diffuse [_MainColor]
//环境光反射颜色固定
Ambient[_MainColor]
}
Lighting On
}
}
}
blog_20141109_6_1131429 35行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
Shader "浅墨Shader编程/4.光照材质完备beta版Shader"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
_Color ("主颜色", Color) = (1,1,1,0)
_SpecColor ("反射高光颜色", Color) =(1,1,1,1)
_Emission ("自发光颜色", Color) = (0,0,0,0)
_Shininess ("光泽度", Range (0.01, 1)) =0.7
}
//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//-----------材质------------
Material
{
//可调节的漫反射光和环境光反射颜色
Diffuse [_Color]
Ambient [_Color]
//光泽度
Shininess [_Shininess]
//高光颜色
Specular [_SpecColor]
//自发光颜色
Emission [_Emission]
}
//开启光照
Lighting On
}
}
}
blog_20141109_7_4851558 22行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
Shader "浅墨Shader编程/5.简单的纹理载入Shader"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
//纹理
_MainTex("基本纹理",2D)="White"{TexGen SphereMap}
}
//---------------------------------【子着色器1】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//设置纹理为属性中选择的纹理
SetTexture[_MainTex]{combine texture}
}
}
//---------------------------------【备胎】----------------------------------------
//备胎设为Unity自带的普通漫反射
Fallback" Diffuse "
}
blog_20141109_8_6063432 43行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
Shader "浅墨Shader编程/6.光照材质完备正式版Shader"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
_Color ("主颜色", Color) = (1,1,1,0)
_SpecColor ("高光颜色", Color) = (1,1,1,1)
_Emission ("自发光颜色", Color) = (0,0,0,0)
_Shininess ("光泽度", Range (0.01, 1)) = 0.7
_MainTex ("基本纹理", 2D) = "white" {}
}

//--------------------------------【子着色器】--------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//-----------材质------------
Material
{
//可调节的漫反射光和环境光反射颜色
Diffuse [_Color]
Ambient [_Color]
//光泽度
Shininess [_Shininess]
//高光颜色
Specular [_SpecColor]
//自发光颜色
Emission [_Emission]
}
//开启光照
Lighting On
//开启独立镜面反射
SeparateSpecular On
//设置纹理并进行纹理混合
SetTexture [_MainTex]
{
Combine texture * primary DOUBLE, texture * primary
}
}
}
}
blog_20141109_9_3130848 68行 C#
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
//-----------------------------------------------【脚本说明】-------------------------------------------------------
// 脚本功能: 设置在游戏运行时可达到的最大帧率
// 使用语言: C#
// 开发所用IDE版本:Unity4.5 06f 、Visual Studio 2010
// 2014年11月 Created by 浅墨
// 更多内容或交流,请访问浅墨的博客:http://blog.csdn.net/poem_qianmo
//---------------------------------------------------------------------------------------------------------------------

//-----------------------------------------------【使用方法】-------------------------------------------------------
// 第一步:在Unity中拖拽此脚本到场景任意物体上,或在Inspector中[Add Component]->[浅墨's Toolkit v1.1]->[SetMaxFPS]
// 第二步:在面板中设置MaxFPSValue参数为需要的帧率值,以及其他参数
//---------------------------------------------------------------------------------------------------------------------
using UnityEngine;
using System.Collections;

//垂直同步数
public enum VSyncCountSetting
{
DontSync,
EveryVBlank,
EverSecondVBlank
}


[AddComponentMenu("浅墨's Toolkit v1.1/SetMaxFPS")]
public class SetMaxFPS : MonoBehaviour
{

public VSyncCountSetting VSyncCount = VSyncCountSetting.DontSync;//用于快捷设置Unity Quanity设置中的垂直同步相关参数
public bool MaxNoLimit = false;//不设限制,保持可达到的最高帧率
public int MaxFPSValue = 80;//帧率的值



void Awake()
{
//设置垂直同步相关参数
switch (VSyncCount)
{
//默认设置,不等待垂直同步,可以获取更高的帧率数
case VSyncCountSetting.DontSync:
QualitySettings.vSyncCount = 0;
break;

//EveryVBlank,相当于帧率设为最大60
case VSyncCountSetting.EveryVBlank:
QualitySettings.vSyncCount = 1;
break;
//EverSecondVBlank情况,相当于帧率设为最大30
case VSyncCountSetting.EverSecondVBlank:
QualitySettings.vSyncCount = 2;
break;

}

//设置没有帧率限制,火力全开!
if (MaxNoLimit)
{
Application.targetFrameRate = -1;
}
//设置帧率的值
else
{
Application.targetFrameRate = MaxFPSValue - 1;
}
}
}
blog_20141109_3_1605799 13行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
Shader"浅墨Shader编程/1.基础单色"
{
//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//设为蓝色单色
Color(0,0,0.6,0)
}
}
}
blog_20141109_4_1737878 20行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
Shader"浅墨Shader编程/2.材质颜色设置&开启光照"
{
//---------------------------------【子着色器1】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//----------材质------------
Material
{
//将漫反射和环境光反射颜色设为相同
Diffuse(0.9,0.5,0.4,1)
Ambient(0.9,0.5,0.4,1)
}
//开启光照
Lighting On
}
}
}
blog_20141109_5_9361702 26行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
Shader "浅墨Shader编程/3.简单的可调漫反射光照"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
_MainColor ("主颜色", Color) = (1,.1,.5,1)
}

//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//-----------材质------------
Material
{
//可调节的漫反射光和环境光反射颜色
Diffuse [_MainColor]
Ambient[_MainColor]
}
Lighting On
}
}
}
blog_20141109_6_889221 35行 C++
Raw
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
Shader "浅墨Shader编程/4.光照材质完备beta版Shader"
{
//-------------------------------【属性】-----------------------------------------
Properties
{
_Color ("主颜色", Color) = (1,1,1,0)
_SpecColor ("反射高光颜色", Color) = (1,1,1,1)
_Emission ("自发光颜色", Color) = (0,0,0,0)
_Shininess ("光泽度", Range (0.01, 1)) = 0.7
}

//---------------------------------【子着色器】----------------------------------
SubShader
{
//----------------通道---------------
Pass
{
//-----------材质------------
Material
{
//可调节的漫反射光和环境光反射颜色
Diffuse [_Color]
Ambient [_Color]
//光泽度
Shininess [_Shininess]
//高光颜色
Specular [_SpecColor]
//自发光颜色
Emission [_Emission]
}
//开启光照
Lighting On
}
}
}