本文主要是介绍2.5【渲染】Blitting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一,Blit的概念
Blit是一种计算机图形学中常用的数据操作,基础原理是使多个位图通过布尔函数(boolean function)组合成一个新位图。在U3D中,常说的Blit其实是渲染后期的一个概念,它将摄像机渲染好的一个图的所有像素点,通过各种形式的运算,然后重新绘制到屏幕。这种达到后期效果的过程,就称之为Blitting。该操作涉及至少两个位图,一个是源和目的地,可能是第三个位图,通常被称为“掩码”,有时是第四个位图,用于创建模版。每个像素均根据指定的光栅运算(ROP)按位组合,然后将结果写入目标。ROP本质上是一个布尔公式。最明显的ROP用源覆盖目标。其他ROP可能涉及AND、OR、XOR和NOT运算。
此外,Blitting也用于拷贝图像数据的过程,例如当两个Surface有相同的大小、颜色深度和像素格式时,可以通过Blitting将其中一个Surface的内容复制到另一个Surface中。在这个过程中,内存只被复制而没有被处理(就像复制其他任何类型的数据一样)。
Screen提供了原生渲染API,它使用硬件blitter将数据从一个内存区域移动到另一个内存区域,而无需涉及CPU。
图形处理需要大量的内存管理和内存区域移动。为了有效地完成这项工作,通常需要支持位块处理器的硬件元素。位块处理器知道不同的显示格式和可用的内存布局,因此它不是移动字节,而是移动像素。位块处理器还可以提供某些图形功能,如缩放、像素格式转换和透明度混合。
blit操作将一个矩形像素区域从源缓冲区复制到目标缓冲区。你可以使用blit操作来实现以下操作:
- pixel format conversion 像素格式转换
- upscaling or downscaling 按比例放
这篇关于2.5【渲染】Blitting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!