using UnityEngine;
using System.Collections; public class TEST : MonoBehaviour { public Texture2D sourceTex;
public float warpFactor = 1.0F;
private Texture2D destTex;
private Color[] destPix;
void Start()
{
destTex = new Texture2D(sourceTex.width, sourceTex.height);
destPix = new Color[destTex.width * destTex.height];
int y = ;
while (y < destTex.height)
{
int x = ;
while (x < destTex.width)
{
// 这里为什么减1?没有搞明白
float xFrac = x * 1.0F / (destTex.width - );
float yFrac = y * 1.0F / (destTex.height - );
//Mathf.Pow(float f, float p) 计算并返回 f 的 p 次方。
float warpXFrac = Mathf.Pow(xFrac, warpFactor);
float warpYFrac = Mathf.Pow(yFrac, warpFactor);
/**
* 返回在正规化纹理坐标(u,v)处的过滤的像素颜色。
* 坐标U和V 是从0.0到1.0的值,就像是网格模型上的UV坐标。如果坐标超出边界(大于1.0或小于0.0),它将基于纹理的包裹重复方式进行限制或重复。
* 返回双线性过滤的像素颜色
* 这个纹理需要在导入设置里设置为Is Readable(可读),否则此函数将会无效。
*/
destPix[y * destTex.width + x] = sourceTex.GetPixelBilinear(warpXFrac, warpYFrac);
x++;
}
y++;
}
//设置一块像素的颜色。
destTex.SetPixels(destPix);
//只有执行Apply()后,颜色变化才会更新
destTex.Apply();
//设置物体的材质贴图
renderer.material.mainTexture = destTex;
}
}

Texture2D.GetPixelBilinear(float u, float v)的使用,官方例子注释的更多相关文章

  1. public static float CompareExchange(ref float location1,float value,float comparand)

    https://msdn.microsoft.com/en-us/library/k9hz8w9t(v=vs.110).aspx Compares two single-precision float ...

  2. block中出现此种报错: Incompatible block pointer types initializing 'float (^__strong)(float, float)' with an expression of type 'int (^)(float, float)'

    当block(代码块)的返回值是float时,应注意的地方:定义的返回值类型一定要与return的返回值类型一样 我们以两个数的四则运算来举例 在main.m文件中的四则运算中,我采用两种返回值类型( ...

  3. memcpy - how to copy float* to float* variable

    how to copy float* to float* float* seg_segmap = new float[OUTPUT_H * OUTPUT_W]; float* temp = new f ...

  4. float和Float的区别

    float是基本数据类型,Float是包装类(封装类).封装类可将接本数据类型封装后当作对象进行操作,并为各种基本数据类型提供各种转换功能.例如Float f = new Float(3.4f);,即 ...

  5. Animator.SetFloat(string name,float value,float dampTime,float deltaTime)详解

    一般来说,我们用到的是这个API: animator.SetFloat("Speed",2.0f); 但是这个还有一个重载的方法,叫做: Animator.SetFloat(str ...

  6. c、c++中-int型以float或者float型以int输出问题

    1.将浮点型以整形的类型输出问题 用VC6.0,会把以整形输出形式的浮点数输出为0: 1 #include"stdio.h" 2 int main() 3 { 4 float x= ...

  7. boolean和Boolean, char和Character , byte和Byte, short和Short, int和Integer , long和Long , float和Float, double和Double的区别 , String和StringBuffer的区别

    Java提供两种不同的类型:引用类型和原始类型(内置类型).Int是java的原始数据类型,Integer是java为int提供的封装类. Java为每个原始数据类型提供了封装类. 其中原始数据类型封 ...

  8. Java浮点数float,bigdecimal和double精确计算的精度误差问题总结

    (转)Java浮点数float,bigdecimal和double精确计算的精度误差问题总结 1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结 ...

  9. 【转】java byte转long、double、float、int、short,或者long、double、float、int、short转byte

    原文网址:http://www.xuebuyuan.com/988752.html java byte与其他数据类型的转换主要用于二进制数据的编码和解码,主要用于网络传输,读写二进制文件,java和c ...

随机推荐

  1. Linux上的常用软件

    zsh (fish): a new shell oh my zsh: zsh's conf file apvlv: pdf viewer(vim style) autojump: quick 'cd'

  2. Web UI自动化测试中绕开验证码登陆方式浅谈

    web自动化测试中让测试者感到困惑的是登陆验证码,每次都不一样.现在推荐一种绕开验证码登陆的方式,其实就是将web浏览器获取的登陆cookie加载到程序中就可以了,这样程序就会认为你已经登陆,就可以跳 ...

  3. SQL基本语句以及示例

    基本语句: /*dorp colunm*/ 语法:ALTER TABLE 表名   DROP COLUMN 要删除的字段 验证财务转换的正确性,查询以下两个表是否有数据 /*表连接inner jion ...

  4. Windows 10通过本地镜像离线安装.NET 3.5

    在Windows10中,当我们安装某些软件的时候会提示"你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)",由于 ...

  5. tomcat项目的部署

    当我们把web项目做好了以后,一般要进行部署,我一般采用两种方式来部署.一种是直接启动tomcat的startup.bat,一种是将tomcat做成服务. 1.第一种方法较为简单,先复制一份tomca ...

  6. python课程第四周重点记录

    1.迭代器 names = iter(["alex","jack","rain"]) #声明列表的一个迭代器 names.__next__( ...

  7. Python学习(基础简绍)

    今天终于开始了python的学习,至于python的历史我就不说了,百度百科中太详细了,我这里说就是关公面前耍大刀,太自不量力了,所以,废话不多说,直接讲讲我惊天学习Python的收获吧. 1.Pyt ...

  8. C# 抓取网站数据

    项目主管说这是项目中的一个亮点(无语...), 类似于爬虫一类的东西,模拟登陆后台系统,获取需要的数据.然后就开始研究这个. 之前有一些数据抓取的经验,抓取流程无非:设置参数->服务端发送请求- ...

  9. HighCharts中Y轴颜色设置

    yAxis: [{ title: { text: '', style: { color: '#2EBBD9' } }, labels: { formatter: function () { retur ...

  10. 使用my exclipse对数据库进行操作(4)

    四.删除 public class class4 { public static void main(String[] args) { // TODO Auto-generated method st ...