Directx9使用精灵如何实现纹理颜色的混合?
最近在试着模仿做个2D游戏,在特效这遇到了问题:
一系列的特效图片不是透明背景png,而是黑色背景,和隐隐发光的边缘,和强光本体组成【好吧说白了就是魔法弹幕】,无法利用关键色处理【因为没有一个统一的背景色】,如下图

想了半天总算想到了是利用图片的颜色和游戏其他场景颜色叠加,使得所有的黑色部分(RGB(0,0,0)附近部分)转变成原有背景色;然后经过一天的学习搜索觉得差不多是该用SetTextureStageState,但还有个问题一直解决不了,弹幕是可移动的,SetTextureStageState似乎只能将两个静态纹理混合,不能实现动态以及大小的变化。。
所以求问有什么方法解决。。最主要是想知道如何自由实现不同位图(或纹理)之间的自由颜色混合。。这样的话,弹幕在任意时刻和背景都是颜色叠加的,效果就出来了。。
一系列的特效图片不是透明背景png,而是黑色背景,和隐隐发光的边缘,和强光本体组成【好吧说白了就是魔法弹幕】,无法利用关键色处理【因为没有一个统一的背景色】,如下图

想了半天总算想到了是利用图片的颜色和游戏其他场景颜色叠加,使得所有的黑色部分(RGB(0,0,0)附近部分)转变成原有背景色;然后经过一天的学习搜索觉得差不多是该用SetTextureStageState,但还有个问题一直解决不了,弹幕是可移动的,SetTextureStageState似乎只能将两个静态纹理混合,不能实现动态以及大小的变化。。
所以求问有什么方法解决。。最主要是想知道如何自由实现不同位图(或纹理)之间的自由颜色混合。。这样的话,弹幕在任意时刻和背景都是颜色叠加的,效果就出来了。。
...全文
相关推荐
DirectX多层纹理混合
此外,我们还可以引入纹理权重矩阵来实现更复杂的混合效果,或者使用纹理通道之间的运算来创造特殊效果。
dx9 alpha混合纹理
总之,DX9中的Alpha混合纹理技术是实现透明和半透明效果的关键,它通过Alpha通道控制像素的透明度,并通过Alpha测试和混合来确定屏幕上的最终颜色。
fl.rar_DIRECTX_DirectX 纹理_directx 9.0c _visual c_纹理 directx
**着色器(Shaders)**:在DirectX 9.0c中,使用像素着色器(Pixel Shader)和顶点着色器(Vertex Shader)来实现更复杂的纹理混合逻辑。
Direct3D纹理颜色混合方法分析
Direct3D纹理颜色混合方法分析主要探讨了在三维图形开发中如何通过Direct3D实现多层纹理映射,以及各种颜色混合技术,以创建更为逼真的视觉效果。
DirectX9基础代码--纹理
在DirectX9中,纹理是赋予3D模型表面颜色和细节的重要元素,是构建真实感图形的关键技术之一。本教程将主要介绍Direct3D9中的纹理基础,以及相关的编程实践。


其它技术问题
