shader开发_5.Surface shader官方例子(注释版本)

原创 2016年08月28日 16:28:50

上一章unity 默认生成了一个 surface shader 这里来了解一下它

先上 unity 默认 surface shader 例子

Shader "Custom/myshader01" {          //shader的路径名称
	Properties {                   //资源属性代码块
		_Color ("Color", Color) = (1,1,1,1)  //定义一个纯白不透明
		_MainTex ("Albedo (RGB)", 2D) = "white" {} //2D贴图(可在面板进行赋值)
		_Glossiness ("Smoothness", Range(0,1)) = 0.5 //【光泽度】Range 表示一个范围 后面的=表示默认值
		_Metallic ("Metallic", Range(0,1)) = 0.0      //【金属强度】Range 表示一个范围 后面的=表示默认值

	}
	SubShader {                                       //SubShader的路径名称                                            
		Tags { "RenderType"="Opaque" }//标签,通过设置的标签决定什么时候渲染(这里表明在渲染不透明物体时渲染)		
                LOD 200 //  与unity Quality Settings  关联 如果Quality Settings指定小于当前设定 这此shader不可用                            		
		CGPROGRAM                          //CG语言标记开始
		// Physically based Standard lighting model, and enable shadows on all light types
		#pragma surface surf Standard fullforwardshadows  //编译指令  surf 自定义函数 关照模型 [阴影类型]

		// Use shader model 3.0 target, to get nicer looking lighting
		#pragma target 3.0                                  //编译平台

		sampler2D _MainTex;     //如果你要在CG中使用Properties的定义 需要在这里声明                           

		struct Input {           //此结构提承载计算中的信息传递
			float2 uv_MainTex; //纹理坐标 (其实是引用的 Properties的_MainTex 名字之所以不同,是因为纹理坐标必须要以 uv开头  )
		};
		//同理 这里是上面声明的定义
		half _Glossiness;
		half _Metallic;
		fixed4 _Color;

		void surf (Input IN, inout SurfaceOutputStandard o) {  //
			 //inout 表示此参数既可以输入 又可以输出    
			//inout SurfaceOutputStandard o  unity surface shader预定义的结构体
			// Albedo comes from a texture tinted by color   
			fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; //<span lang="zh-CN" style="font-family:'Microsoft YaHei'"><em>根据</em></span><span lang="en-US" style="font-family:corbel"><em>Uv</em></span><span lang="zh-CN" style="font-family:'Microsoft YaHei'"><em>进行采样</em></span><span lang="en-US" style="font-family:corbel"><em> </em></span>
			o.Albedo = c.rgb;                                                                  //设置返回的颜色值
			// Metallic and smoothness come from slider variables
			o.Metallic = _Metallic;                                                          //返回的金属程度
			o.Smoothness = _Glossiness;                                             //返回的光泽度
			o.Alpha = c.a;                                                                       //返回的透明信息
		}
		ENDCG                    //CG语言标记结束

	}
	FallBack "Diffuse"

} 





版权声明:本文为博主原创文章,转载请注明出处!

Unity shader 官网文档全方位学习(一)

What?? Shader,看起来好高级的样子,是的,这是Unity中高级进阶的必备。因此,兄弟我就在此记下我学习官网的一些心得。 此为一。主要介绍些Surface Shaders的知识。具体的大家...
  • u014076894
  • u014076894
  • 2015年06月26日 14:55
  • 1553

Shader语言的一些简单解释和备注

先以一对Shader的代码为例子开始: private final String mVertexShader = "uniform mat4 uMVPMatrix;\n"...
  • defence006
  • defence006
  • 2016年09月20日 10:19
  • 983

一个示例性的Unity Shader例子

前言:一个简单的Unity使用顶点片段着色器的镜面反射的例子,虽然很简单却很实用----在使用多个pass时,移植性比表面着色器的移植性要好。           Shader "Custom/Us...
  • blinkseed
  • blinkseed
  • 2015年12月28日 20:37
  • 611

【OpenGL】Shader实例分析(一)-Wave

转发请保持地址:http://blog.csdn.net/stalendp/article/details/21993227 这篇文章主要分析一个Shader,从而感受shader的魅力,并学习相关s...
  • stalendp
  • stalendp
  • 2014年03月24日 22:33
  • 27222

Unity3D Shader官方教程翻译(十九)----Shader语法,编写表面着色器

Writing Surface Shaders Writing shaders that interact with lighting is complex. There are differe...
  • xy849288321
  • xy849288321
  • 2013年02月21日 15:48
  • 5332

Shader入门教程(一)

学习Unity有一段时间了,都说Unity想要进阶得学会Shader编程,因此花了一阵子来学习Shader编程。学了之后才发现,Shader并没有我原先想的那么复杂,掌握它的原理和语法后,我们也能用s...
  • tyuiof
  • tyuiof
  • 2016年10月08日 10:11
  • 6174

cocos2d-x 强大的 shader 系列:【OpenGL】Shader实例分析(二)- Heart

【OpenGL】Shader实例分析(二)- Heart 转发请保持地址:http://blog.csdn.net/stalendp/article/details/22221597 这片...
  • kaka626
  • kaka626
  • 2015年01月19日 11:11
  • 831

火云开发课堂 - 《Shader从入门到精通》系列 第一节:Shader介绍与工程搭建

《Shader从入门到精通》系列在线课程            第一节:Shader介绍与工程搭建 视频地址:http://edu.csdn.net/course/detail/1441/22665?...
  • honghaier
  • honghaier
  • 2015年09月18日 18:11
  • 2714

详解Unity3D Shader开发之Shader框架

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》...
  • jxw167
  • jxw167
  • 2017年01月25日 12:43
  • 999

shader基本概念讲解

shader编程
  • HibernatePlus
  • HibernatePlus
  • 2015年12月16日 15:42
  • 1501
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shader开发_5.Surface shader官方例子(注释版本)
举报原因:
原因补充:

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