
图形处理
Garfield
老人家
展开
-
两个页面的Alpha混合C++源码
HRESULT ddrval; ddrval = lpBackBuffer->BltFast( 0, 0, lpDDSOne,&rc,DDBLTFAST_WAIT);//背景位图传送到后台缓冲区 if( ddrval != DD_OK ) { Msg("Blt failed! err=135971476",ddrval); return;转载 2005-02-14 22:06:00 · 2116 阅读 · 2 评论 -
象素格式
象我前面说过的,当你把一个调色板模式的象素写入内存时,你同时分配了一个字节,每个字节表示一个到色彩查询表的索引。在RGB模式下,你只需要把颜色描述值写入内存,但每个颜色需要的字节数都要多于一个字节。字节的多少同色彩的深度相关。对于16-bit色彩,你要为每个象素准备两个字节(16位),以此类推,你可以猜到32-bit色彩是怎么回事了,这些都是很容易理解的。32-bit色彩对于一个象素来说,每一位的转载 2005-02-12 15:27:00 · 1727 阅读 · 0 评论 -
点阵图和Bitblt
点阵图是一个二维的位元阵列,它与图像的图素一一对应。当现实世界的图像被扫描成点阵图以後,图像被分割成网格,并以图素作为取样单位。在点阵图中的每个图素值指明了一个单位网格内图像的平均颜色。单色点阵图每个图素只需要一位元,灰色或彩色点阵图中每个图素需要多个位元。点阵图代表了Windows程式内储存图像资讯的两种方法之一。储存图像资讯的另一种形式是metafile,我将在第十八章讨论。Metafile储转载 2005-02-23 23:13:00 · 7947 阅读 · 0 评论 -
几种常用的像素混合方法
前两天为大家介绍了处理透明光影效果的 Alpha-Blending 技术,今次我将再为大家介绍其它几种常用的像素混合方法,这些方法一般在游戏中被用来处理光影效果。『Alpha-Blending』 前次已经说了,所谓 Alpha-Blending,其实就是按照“Alpha”混合向量的值来混合源像素和目标像素,一般用来处理半透明效果。『Additive-Blending』 至于 Additiv转载 2005-02-25 18:25:00 · 1801 阅读 · 0 评论 -
2D游戏中的技能特效
在我们的2D图形游戏中不可缺少大量的光影、技能特效,像Diablo II中的魔法效果的实现,幸好我们拥有强大的CPU来为我们实现Alpha混合与色彩饱和混合,接下来让我们来讨论一下如何用这些方法来实现我们游戏中所需要的技能特效。一、Alpha混合特效 Alpha混合可以让我们让我们将一张图象按一定程度的比例与另一张图象进行混合(如图1),但普通的Alpha混合并不适合游戏中的技能特效转载 2005-02-26 01:45:00 · 2064 阅读 · 0 评论 -
Loading JPEGs to DirectDraw Surfaces
载入JPGE图象文件到DirectDraw的表面中 Loading JPEGs to DirectDraw Surfaces 载入JPGE图象文件到DirectDraw的表面中by Johnny Wood译: sea_bug译者的话:这是一篇关于使用Intel JPGEs Library的文章,在翻译的转载 2005-02-23 15:14:00 · 1626 阅读 · 1 评论 -
调色盘管理器
如果硬体允许,本章就没有存在的必要。尽管许多现代的显示卡提供24位元颜色(也称「true color」或「数百万色」)或16位元颜色(「增强色」或「数万种颜色」),一些显示卡-尤其是在携带型电脑上或高解析度模式中-每个图素只允许8位元。这意味著仅有256种颜色。我们用256种颜色能做什么呢?很明显,要显示真实世界的图像,仅16种颜色是不够的,至少要使用数千或数百万种颜色,256种颜色位於中间状态。转载 2005-02-23 19:43:00 · 3587 阅读 · 1 评论 -
与装置无关的点阵图
在上一章我们了解到Windows GDI点阵图物件(也称为与装置相关的点阵图,或DDB)有许多程式设计用途。但是我并没有展示把这些点阵图储存到磁片档案或把它们载入记忆体的方法。这是以前在Windows中使用的方法,现在根本不用了。因为点阵图的位元格式相当依赖於设备,所以DDB不适用於图像交换。DDB内没有色彩对照表来指定点阵图的位与色彩之间的联系。DDB只有在Windows开机到关机的生命期内被建转载 2005-02-23 23:11:00 · 3415 阅读 · 0 评论 -
将RGB值转换为灰度值的简单算法
使场景或精灵以灰度的形式显示,这是一般游戏制作中常常用到的效果,如:战棋游戏中当一个角色被使用过后,通常就会变成灰色,代表本回合已不能行动了;《仙剑》中回忆彩蝶的部分是用整屏的灰色来表现的?(记的不太清楚,太久了^_^);还有很多很多例子…… 将RGB值转换为灰度的过程应该是在程序中实现的(至少我是这么认为的)。其实这是非常简单的,基本原理就是将一个点的RGB值分开来求和,然后除以3,把得到转载 2005-02-25 17:17:00 · 2477 阅读 · 0 评论