Texture2D.GetPixelBilinear(float u, float v)的使用,官方例子注释
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)的使用,官方例子注释的更多相关文章
- 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 ...
- block中出现此种报错: Incompatible block pointer types initializing 'float (^__strong)(float, float)' with an expression of type 'int (^)(float, float)'
当block(代码块)的返回值是float时,应注意的地方:定义的返回值类型一定要与return的返回值类型一样 我们以两个数的四则运算来举例 在main.m文件中的四则运算中,我采用两种返回值类型( ...
- 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 ...
- float和Float的区别
float是基本数据类型,Float是包装类(封装类).封装类可将接本数据类型封装后当作对象进行操作,并为各种基本数据类型提供各种转换功能.例如Float f = new Float(3.4f);,即 ...
- Animator.SetFloat(string name,float value,float dampTime,float deltaTime)详解
一般来说,我们用到的是这个API: animator.SetFloat("Speed",2.0f); 但是这个还有一个重载的方法,叫做: Animator.SetFloat(str ...
- c、c++中-int型以float或者float型以int输出问题
1.将浮点型以整形的类型输出问题 用VC6.0,会把以整形输出形式的浮点数输出为0: 1 #include"stdio.h" 2 int main() 3 { 4 float x= ...
- 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为每个原始数据类型提供了封装类. 其中原始数据类型封 ...
- Java浮点数float,bigdecimal和double精确计算的精度误差问题总结
(转)Java浮点数float,bigdecimal和double精确计算的精度误差问题总结 1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结 ...
- 【转】java byte转long、double、float、int、short,或者long、double、float、int、short转byte
原文网址:http://www.xuebuyuan.com/988752.html java byte与其他数据类型的转换主要用于二进制数据的编码和解码,主要用于网络传输,读写二进制文件,java和c ...
随机推荐
- 第四十一章 微服务CICD(3)- jenkins + gitlab + webhooks + publish-over-ssh(1)
一.作用 使用webhooks来实现当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建. 二.步骤 1.安装插件 ruby_runtime(Hook插件依赖于 ...
- MSSQLSERVER服务无法启动的解决方案
MSSQLSERVER服务无法启动的解决方案 有时候sqlserver无法启动了,原因是mssqlserver服务没有启动,当你手动启动时,又出现服务无法响应的可恶错误提示... 笔者“有幸”遇到了, ...
- include,import,@class的区别
1.#include与#import功能一样,都是导入头文件 2.区别是#include是单纯导入头文件,如果重复导入头文件,头文件就被导入多分 3.#import在导入头文件之前会检查之前是否导入过 ...
- poj 2104 K-th Number (划分树入门 或者 主席树入门)
题意:给n个数,m次询问,每次询问L到R中第k小的数是哪个 算法1:划分树 #include<cstdio> #include<cstring> #include<alg ...
- In和Out指令
In和Out OUT 0FAH,AL(它是指从AL中输出一个字节到0FAH的一个端口吗?) OUT DX,AL OUT 0FAH,AX(AX是一个字为什么也能输出到0FAH所指的8位端口中呢?) ...
- Unbunt vi 编辑器键盘按键不正确的一次经历与解决方案
在 VMWare 上安装了 Ubuntu Server 14.04.1(这个默认没有安装 vim ) 我在配置网卡的时候,编辑得很心碎.键盘输入和平常vi的响应完全不一样.又不能用 SecureCRT ...
- php单独编译扩展模块
以pdo_mysql为例: 1.下载 文件 或者 进入 在PHP源码包中进入ext/pdo_mysql http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 2.解压 ...
- Phabricator部署手册
参考:https://secure.phabricator.com/book/phabricator/article/installation_guide/ 概述 phabricator,由faceb ...
- 为何PHP插入mysql的中文是乱码?【坑】
依然没有找到最终的解决方法,PHP插入的中文在phpmyadmin中看是乱码,但是用PHP获取之后显示正常: 可以在phpmyadmin中直接插入中文,在PHPmyadmin中显示正常,用PHP获取中 ...
- javascript遍历算法与技巧
转载自脚本之家,以下为链接 http://www.jb51.net/Special/281.htm