cube上显示一张贴图
来源:互联网 发布:centos查看gcc 编辑:程序博客网 时间:2024/05/29 04:43
Shader "Custom/testShader" {
properties{
_MainTex("shitTexture",2D)="white"{} //定义的材质参数
}
subshader
{ pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex; //需要重新声明一下Properties里面的
float4 _MainTex_ST;
struct v2f
{
float4 pos:SV_POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(appdata_base v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex); //视口的位置
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); //贴图纹理坐标
return o;
}
float4 frag(v2f i):COLOR //输出每个像素点的颜色值
{
float4 texCol = tex2D(_MainTex, i.uv); //本像素取得的贴图颜色值
float4 outp = texCol;
return outp;
}
ENDCG
}
}
properties{
_MainTex("shitTexture",2D)="white"{} //定义的材质参数
}
subshader
{ pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex; //需要重新声明一下Properties里面的
float4 _MainTex_ST;
struct v2f
{
float4 pos:SV_POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(appdata_base v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex); //视口的位置
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); //贴图纹理坐标
return o;
}
float4 frag(v2f i):COLOR //输出每个像素点的颜色值
{
float4 texCol = tex2D(_MainTex, i.uv); //本像素取得的贴图颜色值
float4 outp = texCol;
return outp;
}
ENDCG
}
}
}
【附】
关于_MainTex_ST的疑惑:
(1)TRANSFORM_TEX是做什么的?
(2)为什么要声明_MainTex_ST?
答:1)TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset做运算,确保材质球里的缩放和偏移设 置是正确的。(v.texcoord就是顶点的uv)。
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; 二者等价
2)_MainTex_ST的ST是Sample Texture的意思,就是声明一张采样图,如果没有就执行不了TRANSFORM_TEX,
_MainTex_ST.xy 代表Tiling, _MainTex_ST.zw代表Offset。
默认值Tiling为(1,1),Offset为(0,0),此时可省略不写,直接o.uv = v.texcoord.xy;
0 0
- cube上显示一张贴图
- 显示图片实现上一张下一张功能
- 如何在对话框上显示一张图片
- 在窗口上显示图片,渐变色背景贴图
- 上一张 下一张
- android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)
- Unity 法线贴图、高光贴图、Cube Map shader
- 总结:SDL_第一课 在屏幕上显示一张图片
- 一张图片上显示多个链接的例子
- Android设备上一张图片的显示过程
- Android OpenGL es 3D Rubik Cube 多纹理贴图
- 立方体环境贴图(Cube Mapping)之OpenGL原理
- 从网络上获取一张图片,然后显示在手机上
- 获取网络上的一张图片并显示在界面上
- opencv显示一张图片
- opencv 显示一张图片
- opencv显示一张图片
- SDL显示一张图片
- Java SE TreeSet(实现Comparable接口和Comparator匿名类)根据属性排序示例
- Log4J和springMVC
- CSDN-markdown编辑器语法——字体、字号与颜色
- 收藏的一些网页
- 分页JS
- cube上显示一张贴图
- 读取mongodb 显示日k 指定日期近500条 不能超过800条
- JS this 的使用 隐藏显示某段DIV
- 安卓之ANR
- sparksql实现多表关联查询
- 使用JDBC连接数据库
- mysql获取所有表的所有字段名
- 最大公约数-----欧几里德算法
- java多线程