【问题标题】:How do I create a transparent DirectX?如何创建透明的 DirectX?
【发布时间】:2014-03-19 15:10:06
【问题描述】:

如何创建透明的 DirectX?我尝试了很多次使用

direct3D9Device->Clear(0, NULL, D3DCLEAR_TARGET, NULL, 0.0f, 0)

在渲染纹理之前,但它不起作用。

【问题讨论】:

    标签: directx transparency transparent


    【解决方案1】:

    DirectX 无法做到这一点。

    你需要:

    参见代码示例herepastebin

    希望对您有所帮助!编码愉快。

    【讨论】:

    • :我试过了,但是窗口又不透明。我尝试了以下方式。 1.使用“CreateWindow”Api创建窗口。 2.创建窗口后,使用SetWindowLong(hwnd,WS_EX_LAYERED,l); 3.然后设置LayeredWindowAttributes(hwnd,RGB(0,0,0),0,LWA_COLORKEY|LWA_ALPHA);
    • 不,我没有检查。因为这里下载有问题。你能给我一些代码示例吗?我创建的窗口大小为 720 *120,direct3d 设备大小与窗口大小相同(即 720*120)。但我创建的纹理大小为 180*120。然后我使用 sprite 在纹理中渲染图像。我的问题是“图像显示正确,但其余区域始终为黑色或白色。如何更改其余区域是透明的?请帮助我...请原谅我的英语不好。
    • @user3336737 我已将代码从这些页面复制到 pastebin。
    • :嗨...我创建了一个窗口作为分层窗口,然后我将 SetWindowLong 和 SetLayeredWindowAttributes 设置为 70% 透明。然后我创建的整个窗口是透明的。我从我的计算机渲染图像(E:\\image.jpg)。在您的示例中,图像是由我们创建的,因此我们从中获取 hdc 并在 RedrawLayeredWindow 中设置该 hdc。但在我的情况下,我从计算机渲染图像然后如何仅在创建的窗口中显示渲染部分?请帮帮我...
    猜你喜欢
    • 2010-09-13
    • 2011-06-03
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多