256色调色板与Alpha混合

本文探讨了在VGA的256色调色板模式下如何实现Alpha混合,介绍了调色板的选择、优化及Alpha混合的数学原理,并提供了一种快速的64级Alpha混合算法。虽然原始实现速度较慢,但通过移位运算可以加速计算过程。
摘要由CSDN通过智能技术生成

本文讲的是TC中在VGA的256色调色板模式下,怎样做Alpha混合。这是以前做我的VGA13H Graphics Lib for TC2.0 时候写的,基本上实现了Alpha混合。缺点是速度太慢了,ARGB和GETRGB两个宏中用到了除法运算,速度就不可能快起来的。而且也犯了一个错误,在256色模式下64级的Alpha混合是没有意义的,也不可能实现,最多也只能到达4级。总之这篇文章还有很多错误,最近反复研究Alpha混合和调色板,又有新的收获,新的算法速度足以用作实时Alpha混合,等以后写成文章再和大家分享。

    256色视频模式由于采用了调色板,在显存里存放的像素值实际上是是调色板的索引号,256色的BMP文件也与之类似,其数据域里存放的也是调色板的索引号,这种情况下给我们的Alpha混客带来极大的不方便。

    在实际的应用中,通常是选定一个固定的调色板,然后在这个调色板下进行绘图操作。这是因为一副图像在不同的调色板下有不同的显示效果,两个采用不同调色板的位图在一般情况下是不能同屏显示的。所以通常的情况是选择一个通用的调色板,在把各个位图都抖动处理为使用这个通用调色板的位图,从而解决了同屏显示的问题。这样看来,如何选择一个通用的调色板就是关键了。

    大家都知道VGA/SVGA的调色板寄存器通常为6 bits,每个寄存器存放一个颜色分量,一个RGB颜色向量就需要三个寄存器来存放,因此最多能表示 2^6*2^6*2^6=256k 种颜色,这个颜色范围是很大的。而VGA/SVGA只有256组调色板寄存器,,因此要在(0,0,0)-(63,63,63)这样一个向量空间中,精选出256个颜色向量。这有点和线性代数中求向量空间的基(极大无关组)类似。我们的任务也类似于要在(0,0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值