unityd着色器shader编程入门

unityd着色器shader编程入门

ID:34074603

大小:115.50 KB

页数:4页

时间:2019-03-03

unityd着色器shader编程入门_第1页
unityd着色器shader编程入门_第2页
unityd着色器shader编程入门_第3页
unityd着色器shader编程入门_第4页
资源描述:

《unityd着色器shader编程入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、自学Unity3D也有大半年了,对Shader一直不敢入坑,最近看了些资料,以及通过自己的实践,对Shader还是有一点了解了,分享下仅作入门参考。  更多精彩请关注【狗刨学习网】  因Shader是对图像图像渲染的,学习前可以去了解下图形图像学及GPU编程相关的知识。强烈推荐《GPU编程与CG语言之阳春白雪下里巴人》,这本书网上有电子版。  还有一本是关于Unity3D的Shader开发的《Unity着色器和屏幕特效开发秘笈》该书是《UnityShadersandEffectsCookbook》

2、翻译过来的。    首先来看下Shader实现的效果:  1、新建一个球体Sphere,然后再Project中创建一个材质球Material。     4/4  2、将新建的材质球赋值给该球体对象的MeshRenderer组件的Materials中       选择不同的Shader,并调节参数,就可以看到不同的效果了。3、在Project中新建一个Shader,打开后会默认一个写好的Shader1.[font=新宋体][size=2]Shader"Custom/testShader"{  //S

3、hader【关键字开头】"Custom/testShader"【Shader的名字,分好用来分组】2.  Properties{                    //里面包含了Unity中进行赋值的属性3.      _MainTex("Base(RGB)",2D)="white"{}//_MainTex【属性名】"Base(RGB)"【属性描述,将会在Unity面板中出现】2D【属性类型】"white"【默认值】4.      _Alpha("透明度",Range(0,1))=05.  }

4、6.  SubShader{//子着色器,可以写多个用来适配不同的硬件或平台4/41.      Tags{"RenderType"="Opaque"}//着色器标签【硬件将通过判定这些标签来决定什么时候调用该着色器】2.      LOD200//LevelofDetail3.      4.      CGPROGRAM//CG语言开始5.      //申明程序使用surface【表面着色器】处理方法为下面的surf,使用Lambert光照模型6.      #pragmasurfacesu

5、rfLambert 7.8.      sampler2D_MainTex;//sampler2D类型的变量,名字和属性中的名字一致,用来接收Unity传入的参数9.      half_Alpha;10.11.      structInput{//结构体,用于输入数据12.        float2uv_MainTex;//uv_开头用于取传入的贴图的UV13.      };14.15.      voidsurf(InputIN,inoutSurfaceOutputo){//表面着色器的

6、方法16.        half4c=tex2D(_MainTex,IN.uv_MainTex);//tex2D方法对贴图中一个点进行采样17.        o.Albedo=c.rgb;//对输出的rgb颜色进行赋值18.        o.Alpha=c.a;//透明度赋值19.      }4/41.      ENDCG//CG语言结束2.  } 3.  FallBack"Diffuse"//回滚4.}[/size][/font]4/4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。