9、游戏开发基础:图形、颜色与图像合成

游戏开发基础:图形、颜色与图像合成

1. 坐标系与帧缓冲

在计算机图形中,y轴向下指向,这源于早期计算机图形显存(VRAM)中像素颜色的内存布局。早期显示器从屏幕左上角开始更新每个像素的颜色,向右移动,换行后再回到左边,直至屏幕底部。将VRAM内容以方便向显示器传输颜色信息的方式布局是很方便的。

如果能完全访问帧缓冲,我们可以使用相关方程编写一个成熟的图形库来绘制像素、线条、矩形和加载到内存的图像等。但现代操作系统出于各种原因,通常不允许我们直接访问帧缓冲。我们一般是在一个内存区域进行绘制,然后由操作系统将其复制到实际的帧缓冲中。

2. 垂直同步与双缓冲

我们可能会遇到向帧缓冲写入数据的速度比显示器刷新速度快的情况。而且我们也不知道显示器何时从VRAM获取最新的帧副本,如果此时正在绘制,显示器会同时显示旧帧缓冲内容和新状态的部分内容,这在很多PC游戏中表现为画面撕裂。

解决这个问题的第一步是双缓冲。图形处理单元(GPU)管理两个帧缓冲:前缓冲和后缓冲。前缓冲供显示器获取像素颜色,后缓冲用于绘制下一帧。当当前帧绘制完成后,我们让GPU交换这两个缓冲的地址。

双缓冲并不能完全解决问题,因为在屏幕刷新过程中仍可能发生缓冲交换。这时就需要垂直同步(Vsync)。调用缓冲交换方法时,GPU会等待显示器完成当前刷新后再进行交换。

如今,我们很少需要关心这些细节,因为VRAM、双缓冲和垂直同步的细节都被隐藏起来了。我们通常使用一些API来操作应用程序窗口的内容。一些API(如OpenGL ES)提供硬件加速,其本质是通过图形芯片上的专用电路来操作VRAM。了解这些内部工作原理有助于我们理解应用程序的性能特征。当

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值