Unity ShaderLab 学习笔记(一)
因为项目的问题,有个效果在iOS上面无法实现出来~
因为shader用的HardSurface的,在android上面跑起来没有问题~
以为在iOS上也不会有问题,但是悲剧啊,技能效果一片漆黑~
而且之所以在iOS上面跑6.8FPS,就是因为HardSurface造成的~
没办法临时抱佛脚,一边看视频教程,一边看着圣典的翻译,学一下吧~
但愿能学会......哎......
ShaderLab语法:Properties
Properties { Property [Property ...] }
定义属性块,其中可包含多个属性,其定义如下
name ("display name", Range (min, max)) = 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 光照贴图模式
- 如果给出这个选项,纹理将能被渲染器的光线贴图属性所影响。
- 纹理不能被使用在材质中,而是取自渲染器的设定。
- 请参考渲染器脚本文档。
- (这段翻译也没明白~额~)
Unity ShaderLab 学习笔记(一)的更多相关文章
- Unity ShaderLab学习总结
http://www.jianshu.com/p/7b9498e58659 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编 ...
- Unity Shader学习笔记-1
本篇文章是对Unity Shader入门精要的学习笔记,插图大部分来自冯乐乐女神的github 如果有什么说的不正确的请批评指正 目录 渲染流水线 流程图 Shader作用 屏幕映射 三角形遍历 两大 ...
- 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)
先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...
- 【Unity Shader学习笔记】Unity基础纹理-单张纹理
1 单张纹理 1.1 纹理 使用纹理映射(Texture Mapping)技术,我们把一张图片逐纹素(Texel)地控制模型的颜色. 美术人员建模时,会在建模软件中利用纹理展开技术把纹理映射坐标(Te ...
- Unity sqlite学习笔记一
1.SQLITE的常识 SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它. sqlite的主要优点:零配置(Zero Configur ...
- unity 3D 学习笔记
1.父对象的初始位置设,即刚开始的空对象的根节点位置应当设置成(0,0,0) 这样设置可以避免以后出现奇怪的坐标. GameObject实际上就是一些组件的容器. unity 使用公用变量原因是,在U ...
- Unity Shader学习笔记 - 用UV动画实现沙滩上的泡沫
这个泡沫效果来自远古时代的Unity官方海岛Demo, 原效果直接复制3个材质球在js脚本中做UV动画偏移,这里尝试在shader中做动画并且一个pass中完成: // Upgrade NOTE: r ...
- Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
自己最近也在研究怎么用lua控制UI,然后看着网上介绍,决定选用XLua,毕竟TX爸爸出的,有人维护,自己琢磨着怎么用,于是弄出来一个能用的作为记录. 当然,XLua主要是用于热更新,我自己是拿来尝试 ...
- 【Unity Shader学习笔记】Unity基础纹理-渐变纹理
纹理可以用来存储任何表面属性. 可以通过使用渐变纹理来实现插画风格的渲染效果. 这项技术是由Valve公司提出的.Valve使用它来渲染游戏中具有插画风格的角色. 我们使用半兰伯特模型计算漫反射. 因 ...
随机推荐
- 关于vscode的配置
Git插件 通过GitLens -- Git supercharged可以很方便的查看历史作者 Setting.json(谨慎使用,因为对import进行排序改变后可能导致类的循环引用,因此不要轻易改 ...
- java中使用静态字段和构造函数跟踪某个类所创建对象的个数
对于这个问题,我们都知道java中使用类时会自动调用构造函数.按照这个思路我们可以定义一个static int 形的常量count 然后将count++放入这个类的构造函数中,这样只要输出count的 ...
- Promise解决回调地狱(多层调用问题)
Promise # Promise 是异步编程的一种解决方案:从语法上讲,promise是一个对象,从它可以获取异步操作的消息:从本意上讲,它是承诺,承诺它过一段时间会给你一个结果.promise有三 ...
- Kafka 消息的消费原理
https://www.cnblogs.com/huxi2b/p/6061110.html 1.老版本的kafka的offset是维护在zk上的,新版本的kafka把consumer的offset维护 ...
- Mysql基本用法-存储引擎-03
看到存储引擎这个地方感到很多细节比较陌生,所以总结小记一些 为了适应各种不同的运行环境,MYSQL提供了多种不同的存储引擎(Storage Engine ),在应用程序开发这个层面上,开发者可以根据不 ...
- JavaScript - map和parseInt的坑
问题: var arrs = ['1', '2', '3']; var r = arrs.map(parseInt); alert(r);//1,NaN,NaN map arr.map(functio ...
- C/C++网络编程9——多进程服务器端实现
#include <iostream> #include <unistd.h> #include <cstdlib> #include <arpa/inet. ...
- vue学习笔记:vue的认识与特点与获取
Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...
- C++ 判断是文件还是文件夹
转载:https://www.csdn.net/gather_23/NtDaIg1sMDYtYmxvZwO0O0OO0O0O.html Windows平台代码如下: #include <wind ...
- Linux命令:ss命令
ss功能:用来显示套接字信息的,类似于netstat,可以显示更多的信息,用于替代netstat. ss常用选项 ss -t:tcp协议的连接 -u:udp协议的链接 -w:裸套接字相关 -x:uni ...