博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cg入门21:Fragment shader - 2D纹理采样
阅读量:2201 次
发布时间:2019-05-03

本文共 1132 字,大约阅读时间需要 3 分钟。

体纹理:是啥?
tex2D 以前只能在Fragment程序中纹理采样
UV坐标系:其实点为左下角,范围为【0,1】,U为x轴,V为y轴
Texture.wrapMode 循环模式:
TextureWrapMode.Clamp:设置纹理充满拉伸使用
TextureWrapMode.Repeat:
纹理重复平铺使用
如果采用Repeat,那么等于U>=1的情况就会用纹理图在右边在平铺一张图
Texture.filterMode 过滤模式:
Point:像素过滤(
不进行过滤
Bilinear:双线性
Trilinear:三线的
UV纹理采样:
UV 纹理
贴图后效果:立体空间的UV坐标为左上角,U为水平向右方向,V为垂直向下方向 ,默认范围[0,1] 
源代码:
Shader "Sbin/TexShader"{	Properties	{		_MainTex ("Texture", 2D) = "white" {}		_U("U",range(-0001,0.001)) = 0		_V("V",range(0,1)) = 0	}	SubShader	{		Pass		{			CGPROGRAM			#pragma vertex vert			#pragma fragment frag			#include "UnityCG.cginc"			sampler2D _MainTex;			float _U;			float _V;			struct v2f{				float4 pos:POSITION;				float2 uv:TEXCOORD0;			};			v2f vert (appdata_base v)			{				v2f o;				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);				o.uv = v.texcoord.xy;				return o;			}			fixed4 frag (v2f v) : COLOR			{				fixed4 col = tex2D(_MainTex, v.uv);//第一个参数:纹理,第二个参数UV向量				return col;			}			ENDCG		}	}}
纹理平铺缩放和偏移:
Tiling :缩放模型UV纹理采样坐标;比如:Tiling x=2,表示把模型UV坐标的U扩大2倍,U范围值变成2,纹理如果WrapMode选择Repeat,那么U轴方向就会纹理采样两次。V轴同理
Offset:偏移模型UV纹理采样坐标;比如:Offset x = 0.1,表示把模型UV坐标往左编译,然后再采样UV纹理贴图。
以上两种操作导致如下效果:
你可能感兴趣的文章
后端技术杂谈8:OpenStack架构设计
查看>>
后端技术杂谈9:先搞懂Docker核心概念吧
查看>>
后端技术杂谈10:Docker 核心技术与实现原理
查看>>
夯实Java基础系列2:Java自动拆装箱里隐藏的秘密
查看>>
夯实Java基础系列1:Java面向对象三大特性(基础篇)
查看>>
夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
查看>>
夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
查看>>
Java 未来行情到底如何,来看看各界人士是怎么说的
查看>>
IntelliJ 平台 2020 年路线图
查看>>
走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
查看>>
微软宣布加入 OpenJDK,打不过就改变 Java 未来!
查看>>
MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
查看>>
为什么强烈推荐 Java 程序员使用 Google Guava 编程!
查看>>
先搞清楚这些问题,简历上再写你熟悉Java!
查看>>
【数据库】关系数据库和非关系数据库的优缺点
查看>>
【数据结构】动态顺序表
查看>>
Markdown的基础使用
查看>>
Linux基础命令
查看>>
【C语言】交换两个数值的三种方法
查看>>
【数据结构】栈的简单理解以及对栈的基本操作
查看>>