UnityShader从入门到放弃(一)UnityShader的结构
2017-09-06 22:27
459 查看
Shader "Luoxiaoxiao/Shader_1"{//指定Shader的名字 不要求与脚本名一致
Properties{ //属性 UnityShader中的类型 _Color("Color",Color)=(1,1,1,1) _Vector("Vector",Vector)=(1,2,3,4) _Int("Int",Int)=325 _Float("Float",Float)=4.5 _Range("Range",Range(1,11))=6//Rang本质是Float类型的 只不过是增加了一个范围的限制 _2D("Texture",2D)="white"{}//指定一个图片 _Cube("Cube",Cube)="white"{}//立方体纹理 --天空盒 _3D("Texture",3D)="balck"{}//3D的纹理 } //SubShader可以有很多个 根据显卡的能力 自动选择能够实现的SubShader 上边的效果优于下边的效果 SubShader{ //至少有一个Pass Pass{ //在这里编写Shader代码 CGPROGRAM //使用CG语言编写Shader代码 //属性在使用时要重新定义一遍 fixed4 _Color;//Color本质是一个4个值得 在CGPROGRAM中要定义成fixed4类型的 编译时会自动取到Color的默认值 float4 _Vector; float _Int; float _Float; float _Range; sampler2D 2D;//2D类型的要定义成sampler2D samplerCube _Cube; sampler3D _3D; //在任何使用float 的地方都可以使用half、fixed代替 //float4 = half4 = fixed4............ //三者之间的区别在于 精度不同 所占用的显存不同 根据需要使用相应的精度可以节约资源 //float 32位进行存储 常用语位置的定义 //half 16位进行存储 -6W - +6W 用的较少 //fixed 11位进行存储 -2 - +2 常用于颜色的定义 ENDCG } } Fallback"VertexLit" }一个UnityShader脚本由Shader名、Properties、一个或者多个SubShader、Pass块、Fallback组成,其中Properties中定义一些属性,如颜色、纹理等,控制Shader实现效果的代码在Pass块的CGPROGRAM和ENDCG间。当所定义的Shander不能被所运行的设备所支持时,会回滚到Fallback后所定义的Shader。
相关文章推荐
- UnityShader从入门到放弃(三)将法线的颜色填充给物体
- UnityShader从入门到放弃(五)漫反射—逐片元光照
- UnityShader入门精要学习笔记(二十一):深度和法线纹理
- 学习UnityShader入门精要笔记1——渲染流程概述
- unity-Shader入门介绍
- C#forUnity快速入门(连载13)-C#结构体
- Unity Shader入门精要学习笔记 - 第11章 让画面动起来
- Unity_Shader中级篇_9.1_Unity Shader入门精要
- 【Unity Shader入门练习】Bloom效果
- UnityShader入门精要学习笔记(十):透明效果-上部分
- UnityShader入门精要学习笔记(十三):光照衰减与Unity阴影
- Unity Shader入门第一篇
- Unity_Shader高级篇_15_Unity Shader入门精要_水波效果
- Shader学习笔记(一)认识Unity Shader,Unity Shader的基本结构
- Unity Shader入门笔记
- 【Unity Shader】Unity Shader基础入门
- Unity_Shader高级篇_14_Unity Shader入门精要
- unity shader 之 CG(C for graphics) 入门(1)——CG基本知识
- unity-Shader入门指南
- Unity5.0 Shader 极简入门(一)