Unity中如何实现Texture

这篇文章主要介绍Unity中如何实现Texture,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

了解Texture2D

Unity中如何实现Texture

如上图,Texture2D是一张二维图片
是由一颗一颗像素组成的。
通常是由低到高,由左到右排列的。
如果想要通过代码操作像素,我们必须要知道像素的坐标位置,现在我们来验证下是否真的如此排列。

Unity中如何实现Texture


我们通过简短的代码,NEW一个图片,并且根据X,Y轴对应R,G通道,逐像素赋值。我们将得到一张红绿渐变图,如下。

Unity中如何实现Texture


根据图片的颜色渐变过程,我们可以确信,像素排列顺序是和我们预测的一样。

  • TextureFormat是什么


TextureFormat为贴图的类型,ARGB32位,代表有ARGB4个通道,每个通道的颜色有8位,对应的还有A8,RGB24等。任何图片从本质上就是这样的。
而常见的JPG,PNG等是操作系统采用的压缩/非压缩读取格式,ETC/DDS为图形接口读取的压缩格式。

  • 赋值完后为什么要Apply


因为在贴图更改像素时并不是直接对现在的内存进行更改,而是在另外一个内存空间中更改,这时候GPU还会实时读取旧的贴图位置。
当Apply后,更改后的内容才会应用到现在的内存中。

  • 所有的图片的像素排列顺序都一样吗?


事实上OpenGL和DX在UV方向和取值上是不同的,在此我们应该感谢Unity3D为我们做的那些事,让一切变得简单。

制作一个简单的笔刷

最终效果

Unity中如何实现Texture

实现轮廓

Unity中如何实现Texture

我们对上面的代码稍作修改。
我们在第一个红线引入一张贴图,第二个红线,将像素乘以这张贴图对应位置的alpha通道。
在色阶上每个通道是8位,0-255,但在计算时为浮点数。0~1。
所以如果alpha为0,任何颜色乘以他,结果都为0。
通过以上代码,我们实现如下效果:

Unity中如何实现Texture

这张贴图是张Alpha通道为0和1的通道,1为有颜色,0自然就没有颜色。也可以通过0-1之间的值实现渐变。
同样的,因为只用到一个通道,我们可以将它压缩为一张Alpha8的单通道8位贴图,来节省空间。

实现纹理

Unity中如何实现Texture

我们再次对上述代码进行更改,同样引入一张贴图来做纹理。
这次我们进行颜色相乘,因为颜色为浮点值,所以他们乘后的结果不会大于1,也不会小于0。
而重载运算符,在*的过程中,帮我们把RGBA通道一一对应的运算。
这里我们用到了相乘,很多人在用图像软件时,会遇到,相乘,相加,相除,相减等词汇。
一开始会很纳闷,为什么要这样命名。现在我们知道了,他们是在像素之间的数学运算关系。

Unity中如何实现Texture

以上是“Unity中如何实现Texture”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程之家行业资讯频道!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了Unity游戏开发中外观模式是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍Unity中地面检测方案的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.普通射线在角色坐标(一般是脚底)...
这篇文章主要介绍了Unity游戏开发中如何消除不想要的黄色警告,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带...
这篇文章主要介绍了Unity中有多少种渲染队列,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解
这篇文章主要介绍Unity中如何实现Texture,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!了解Texture2D 如上图,Texture2D是一张
小编给大家分享一下Unity中DOTS要实现的特点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
这篇文章给大家分享的是有关unity中如何实现UGUI遮罩流光特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。下面是核心shader:Sh...
这篇文章主要为大家展示了“Unity中如何实现3D坐标转换UGUI坐标”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下...
这篇文章主要介绍了Unity游戏开发中设计模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍了Unity中如何实现仿真丝袜渲染,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
这篇文章给大家分享的是有关Unity插件OVRLipSync有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目需要接入对话口型动...
这篇文章主要介绍了Unity性能优化之DrawCall的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章给大家分享的是有关Unity给力插件之Final IK怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这插件有什么用:一般游...
这篇文章给大家分享的是有关Unity中如何内嵌网页插件UniWebView的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、常见Unity中内...
小编给大家分享一下Unity如何做流体物理的几个轮子,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
小编给大家分享一下Unity中Lod和Occlusion Culling的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收...
这篇文章将为大家详细讲解有关Unity中LineRenderer与TrailRenderer有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获...
这篇文章主要介绍了Unity中coroutine问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起...
这篇文章将为大家详细讲解有关unity中spine怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。骨骼动画首先我们来看到...
这篇文章主要为大家展示了“Unity Shader后处理中如何实现简单均值模糊”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学...