A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 1318|回复: 1

求助:DX 9.0 透明背景效果

[复制链接]

精华
0
帖子
568
威望
0 点
积分
601 点
种子
12 点
注册时间
2005-7-7
最后登录
2024-11-6
 楼主| 发表于 2024-10-26 16:33  ·  天津 | 显示全部楼层 |阅读模式
DX 9.0 需实现多层位图背景

用“表面”类型,可以显示位图。无法实现透明效果。
LPDIRECT3DSURFACE9   image = NULL
D3DXLoadSurfaceFromFile( image , …… )
d3ddev->StretchRect()

想改用“纹理”类型(支持透明),介绍的都是“纹理+精灵”方式。
LPDIRECT3DTEXTURE9  image = NULL
D3DXCreateTextureFromFileEx( ...  pic.jpg  ...  &image )
LPD3DXSPRITE  background = NULL
D3DXCreateSprite(d3ddev, &background)
background->Draw(image , ...   D3DCOLOR_XRGB(0, 0, 0)

代码过于冗长。
有没有不用精灵,单用纹理的绘图方式?就像表面类型那样,用纹理直接绘图。

精华
0
帖子
3074
威望
0 点
积分
3117 点
种子
521 点
注册时间
2013-2-21
最后登录
2024-11-21
发表于 2024-10-26 17:34  ·  上海 | 显示全部楼层
需要纹理alpha通道的,jpg不支持这个

https://learn.microsoft.com/zh-c ... ct3d9/texture-alpha
记得还要设置D3DRS_ALPHABLENDENABLE、D3DRS_SRCBLENDALPHA、D3DRS_DESTLBENDALPHA状态机
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-21 17:44 , Processed in 0.155643 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部