优化资源、美术需要迫使自己的顶点shader能够进行TRANSFORM_TEX运算,进行该运算的前提是需要声明一个 _MainTex_ST 变量,类型为float4即可。

此时就可以使用unity cg中的函数:

o.uv =  TRANSFORM_TEX(v.texcoord,_MainTex);

TRANSFORM_TEX函数就是用顶点uv和texture的tiling、offset作偏移运算,因此下面的计算会更直观:

o.uv = v.texcoord.xy * _MainTex_ST.xy(即为tiling) + _MainTex_ST.zw(即为offset);

在tilling(1,1) offset(0,0)的条件下,上面的计算相当于 o.uv = v.texcoord.xy;此时的uv是不会被计算的,也就是tiling和offset任何值都不会影响最终材质球的输出。

shaderlab UV动画所需的变量声明的更多相关文章

  1. 【Unity Shader】(十) ------ UV动画原理及简易实现

    笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) ----- ...

  2. httprunner学习4-variables变量声明与引用

    前言 在 HttpRunner 中,支持变量声明(variables)和引用($var)的机制.在 config 和 test 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通 ...

  3. Unity Shader学习笔记 - 用UV动画实现沙滩上的泡沫

    这个泡沫效果来自远古时代的Unity官方海岛Demo, 原效果直接复制3个材质球在js脚本中做UV动画偏移,这里尝试在shader中做动画并且一个pass中完成: // Upgrade NOTE: r ...

  4. JavaScript学习01 语言简介、基本使用和变量声明

    JavaScript语言简介.基本使用和变量声明 JavaScript是网景(Netscape)公司开发的一种基于客户端浏览器.面向对象.事件驱动式的网页脚本语言. JavaScript的前身叫Liv ...

  5. js声明引入和变量声明和变量类型、变量

    问题: 在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效. 解决: 使用javascript. 作用 可以让网页和用户进行直接简单的交互. 可以让网页制作特效和动画. 声明js ...

  6. ES6学习笔记之变量声明let,const

    最近用淘宝的weex做了个项目,最近稍微闲下来了.正好很久没有接触RN了,所以趁这个机会系统的学习一下ES6的相关知识. 孔子说:没有对比就没有伤害.所以我们要拿ES6和ES5好好对比的学习.这样才能 ...

  7. C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?

    报错信息:error C2065: 'salary' : undeclared identifier #include <stdio.h> void main(){ printf(&quo ...

  8. Javascript用途,语法特点,难点,调试工具,引入方式,命名规范,变量声明及赋值,数据类型,运算符

    JavaScript用来干什么 数据的验证 将动态的内容写入到网页当中(ajax) 对事件做出相应 读写html当中的内容 检测浏览器 创建cookies 模拟动画 语法特点 基于对象和事件驱动的松散 ...

  9. C++ 变量声明 定义 作用域 链接性总结

    变量定义 变量的定义用于为变量分配存储空间,还可以为变量指定初始值.在一个程序中,变量有且仅有一个定义. 变量声明 用于向程序表明变量的类型和名字.程序中变量可以声明多次,但只能定义一次. 变量的类型 ...

随机推荐

  1. CentOS下添加Root权限用户(超级用户)方法

    1.添加普通用户[root@server ~]# useradd chenjiafa   //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa   ...

  2. BZOJ4269再见Xor——高斯消元解线性基

    题目描述 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. 输入 第一行一个正整数N. 接下来一行N个非负整数. 输出 一行,包含两 ...

  3. 【JVM】JVM垃圾收集器、垃圾收集算法、无用对象

    Java 常见的垃圾收集器有哪些 实际上,垃圾收集器(GC,Garbage Collector)是和具体 JVM 实现紧密相关的,不同厂商(IBM.Oracle),不同版本的JVM,提供的选择也不同. ...

  4. emwin 之 GUI_MessageBox 阻塞特性

    2019-03-01 [小记] GUI_MessageBox 函数执行后必须手动点击关闭窗口,未关闭窗口前线程将阻塞在此处等待关闭窗口事件 [使用场景] 由于该函数不会产生任何消息, 所以可利用阻塞特 ...

  5. kibana连接elasticsearch集群做负载均衡

    问题背景: 在ELK架构中,kibana一般配置连接elasticsearch的时候,配置文件中的写法一般如下: ……# The URL of the Elasticsearch instance t ...

  6. Dubbo2.6.5+Nacos注册中心(代替Zookeeper)

    在上一节的小栗子的基础上,只需要更改两个地方 第一个:父工程的pom依赖增加 <!-- Dubbo Nacos registry dependency --> <dependency ...

  7. HDU - 1078 FatMouse and Cheese (记忆化搜索)

    FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...

  8. JVM调优命令-jhat

    jhat JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器 ...

  9. DQL用户、权限管理(mysql8.0)

    DQL用户.权限管理(mysql8.0) 查看所有的用户: use mysql; -- 使用mysql数据库 select * from user; -- 查询user表中的全部信息,也就是用户 创建 ...

  10. 【转载】c++中浅复制与深复制

    https://www.cnblogs.com/xiaodingmu/p/7407307.html