Untiy ShaderLab 随手记录
2024-08-24 03:44:40
最基本形式 (先不考虑Fog)
Shader "Nafio/TUnlit"{
Properties
{
_MainTex("TT",2D) = "white" {}
} SubShader
{
Tags{"RenderType" = "Opaque"}
LOD 150 Pass{ CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc" sampler2D _MainTex;
float4 _MainTex_ST; struct appdata{
float4 vertex:POSITION;//注意这里名称vertex是固定的不能乱改,float4,不是float3
float2 uv:TEXCOORD0;
}; struct v2f{
float4 vertex:SV_POSITION;
float2 uv:TEXCOORD0;
}; v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);//低版本替换成mul(UNITY_MATRIX_MVP,v.vertex);
o.uv = TRANSFORM_TEX(v.uv,_MainTex);
return o;
} fixed4 frag(v2f i):SV_Target
{
fixed4 c = tex2D(_MainTex,i.uv);
return c;
} ENDCG
} }
}
_MainTex_ST 的说明,这个变量是后面TRANSFORM_TEX需要用到
TRANSFORM_TEX用于计算Texture uv偏移量(就是编辑器中设置的偏移量)
实现方式
#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)
材质中
这里Tiling控制缩放
而Offset控制起始位置
从公式看name##_ST.xy对应Tiling,name##_ST.zw对应Offset
最新文章
- centOS6.5安装SUN-jdk7
- EndNote文献管理
- 弱弱的玩下Javascript
- js与asp.net后台交互
- P次方数 英雄会 csdn 高校俱乐部
- 导航条——flash导航条
- S2 深入.NET和C#编程 一: 深入C#.NET框架
- 只用120行Java代码写一个自己的区块链
- 【Android】自动测试工具 Monkey
- phpexcel 使用模板导出报表
- 简单有效:解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
- 【java】详解native方法的使用
- VS Code折腾记 - (2) 快捷键大全,没有更全
- django403错误(转)
- vue 中下拉select怎样给后台传递用户选择的物品id
- [FMX]获取控件样式中的指定项目以便进行调节
- cloudstack网络部分知识点汇总
- Google Protocol Buffers介绍
- RxJava &;&; Agera 从源码简要分析基本调用流程(2)
- 敏感词过滤的算法原理之 Aho-Corasick 算法