CoolWindValley / CoolWind2D-GameEngine-CHS

一个基于DirectX 9(DX9)由Visual Basic 6.0(VB6)开发的2D游戏引擎(中文版)
MIT License
3 stars 2 forks source link

RGB888位图绘制 #2

Open liuzhier opened 2 months ago

liuzhier commented 2 months ago

如果只有一个256色调色板(其实就是个颜色数组),和一个像素数组(其实全都是调色板里颜色的索引值),应该怎么用这个框架绘制到屏幕呢

CoolWindValley commented 2 months ago

如果只有一个256色调色板(其实就是个颜色数组),和一个像素数组(其实全都是调色板里颜色的索引值),应该怎么用这个框架绘制到屏幕呢

从你的描述来看,你希望绘制调色板图像。但是由于WINDOWS系统底层架构的升级,WINXP系统可能是最后D3D9能直接支持调色板图像的系统。更高级系统的D3D9都不再支持这个功能。 不难发现,很多现代游戏给角色换皮肤也是直接换不同颜色的贴图而不是采用调色板了。如果想稳定的实现这个复古功能,可能你需要学习PixelShader来自己实现。更古老的DirectDraw或者DX7以前的版本或许也保留了这个功能?