[Unity3D]什么是Blit/Blitting?

Blit 中文译名较多,都没有比较一致叫法。可能叫位偏移,位块传送,位块传输什么的,为了方便理解,此文还是称作Blit。

Blit是一种计算机图形学中常用的数据操作,基础原理使多个位图通过布尔函数(boolean function)组合成一个新位图。

我们在U3D中常说的Blit其实是渲染后期的一个概念,他将摄像机渲染好一个图的所有像素点,通过各种形式的运算,然后重新绘制到屏幕。这种达到后期效果的过程,我们称之为Blitting。

该操作涉及至少两个位图,一个是源和目的地,可能是第三个位图,通常被称为“掩码”,有时是第四个位图,用于创建模版。每个像素均根据指定的光栅运算(ROP)按位组合,然后将结果写入目标。 ROP本质上是一个布尔公式。最明显的ROP用源覆盖目标。其他ROP可能涉及AND,OR,XOR和NOT运算。Commodore Amiga的图形芯片组(和其他芯片组)可以使用256种可能的布尔函数中的任意一种结合三个输入来组合三个源位图。

现代图形软件几乎已完全用按位运算代替了用于效果(例如Alpha合成)的更通用的数学运算。这是因为在彩色显示器上按位操作通常不会产生类似于光或墨水的物理组合的结果。某些软件仍使用XOR绘制交互式高亮矩形或区域边框;对彩色图像执行此操作后,很容易看到异常的结果颜色。

参考资料:

https://gamedevelopment.tutsplus.com/articles/gamedev-glossary-what-is-blitting--gamedev-2247
https://en.wikipedia.org/wiki/Bit_blit](https://en.wikipedia.org/wiki/Bit_blit

你可能感兴趣的:([Unity3D]什么是Blit/Blitting?)