游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1941|回复: 4

Surface的Alpha-Blending

[复制链接]

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-6-17 15:03:00 | 显示全部楼层 |阅读模式

我生成一个D3D,然后设置渲染参数
    m_lpD3DDev->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
    m_lpD3DDev->SetRenderState( D3DRS_LIGHTING, FALSE );
    m_lpD3DDev->SetRenderState( D3DRS_ZENABLE, TRUE );
    m_lpD3DDev->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
    m_lpD3DDev->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
    m_lpD3DDev->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );

从文件中导入一个Surface
D3DXLoadSurfaceFromFile( lpDS, NULL, NULL, sFile, lpRect, D3DX_DEFAULT, dwColorKey, &dxii );

然后
m_lpD3DDev->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &m_lpDSTarget );

渲染的时候
m_lpD3DDev->UpdateSurface( lpDS, &rcRSrc, m_lpDSTarget, &ptDes );

但是我发现,ColorKey指定的颜色部分是黑的,也就是说载入的时候ColorKey被过滤掉了,但是渲染的时候并没有进行Alpha过滤,变成了黑色

怎样才能让ColorKey指定的部分透明?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-6-17 15:35:00 | 显示全部楼层

Re:Surface的Alpha-Blending

所谓colorkey,其实就是透明黑色,如果不设定透明,透明黑色的ALPHA不会打开,自然颜色键也就不会透明了。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
 楼主| 发表于 2005-6-20 13:17:00 | 显示全部楼层

Re:Surface的Alpha-Blending

我彻底昏倒,我问的就是怎么实现透明

7

主题

136

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2005-6-20 21:52:00 | 显示全部楼层

Re:Surface的Alpha-Blending

如果你的DDS带ALPHA信息的话,
你可能漏了设置 ALPHAOP
m_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP,D3DTOP_MODULATE);
m_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
m_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_ALPHAREPLICATE );

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
 楼主| 发表于 2005-6-21 09:16:00 | 显示全部楼层

Re:Surface的Alpha-Blending

设啥都没用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-26 02:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表