Unity ShaderLab 学习笔记(一)

因为项目的问题,有个效果在iOS上面无法实现出来~

因为shader用的HardSurface的,在android上面跑起来没有问题~

以为在iOS上也不会有问题,但是悲剧啊,技能效果一片漆黑~

而且之所以在iOS上面跑6.8FPS,就是因为HardSurface造成的~

没办法临时抱佛脚,一边看视频教程,一边看着圣典的翻译,学一下吧~

但愿能学会......哎......


ShaderLab语法:Properties

 

Properties { Property [Property ...] }

定义属性块,其中可包含多个属性,其定义如下

name ("display name", Range (minmax)) = number

定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。

name ("display name", Color) = (number,number,number,number)

定义颜色属性

name ("display name", 2D) = "name" { options }

定义2D纹理属性

name ("display name", Rect) = "name" { options }

定义长方形(非2次方)纹理属性

name ("display name", Cube) = "name" { options }

定义立方贴图纹理属性

name ("display name", Float) = number

定义浮点数属性

name ("display name", Vector) = (number,number,number,number)

定义一个四元素的容器(相当于Vector4)属性

对于纹理(2D, Rect, Cube) 缺省值既可以是一个空字符串("")也可以是某个内置的缺省纹理:"white", "black", "gray" or "bump"

Texture property options 纹理属性选项

包含在纹理属性的大括号中的选项是可选的。可能的选项有:

TexGen texgenmode 纹理生成类型
  纹理的自动生成纹理坐标时的模式。
  可以是ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal的其中之一;
  (上面着几个没明白都是什么意思,虽然能看到效果,但是不明白这都是什么意思~)
  ObjectLinear:
  
  EyeLinear:
  
  SphereMap:
  
  CubeReflect:
  
  CubeNormal:
  
  这些模式和OpenGL纹理生成模式相对应。
  注意如果使用自定义顶点程序,那么纹理生成将被忽略。
LightmapMode 光照贴图模式
如果给出这个选项,纹理将能被渲染器的光线贴图属性所影响。
纹理不能被使用在材质中,而是取自渲染器的设定。
请参考渲染器脚本文档
(这段翻译也没明白~额~)
原文地址:https://www.cnblogs.com/rayyang/p/3524469.html