Directx 窗口背景透明
我想在一个窗体上画一个3d人物,并让它看起来好想画在桌面上.也就是透明掉clear()的颜色?请问各位大侠如何做啊????当然你们要是有其它方法可以实现也可以告诉我!!!谢谢!!!!
[解决办法]
具体没做过
思路,获得桌面的 HDC 再在上面刷透明通道背景,再喧染 3D 图形
呵呵 也不知可行否
[解决办法]
用“渲染到纹理”的方法,把3D的人物渲染到一张纹理中,渲染的时候要选择好背景颜色,比如不常见的土黄色,然后就可以把这个纹理绘制在其它地方了。
不建议直接在桌面上绘图,比较好的方法是建立一个窗体(MFC的话,使用分层窗体,.net的话,设置Form的透明度属性),把纹理的背景颜色设置为透明色,在窗体上面把那个纹理(其实就是一张图片)绘制出来就可以了。(其实就是绘制不规则窗体的说^^)
另外,DirectX提供的将纹理保存在图片文件中的函数D3DXSaveSurfaceToFile,可以将纹理保存为PNG格式并且自动把背景色转换为透明色,特殊场合下非常有用。