游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2980|回复: 3

sprite->draw如何将带alpha通道的图片显示出来?

[复制链接]

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2006-4-19 16:47:00 | 显示全部楼层 |阅读模式
sprite->draw如何将带alpha通道的图片显示出来?
就是显示出来的图片只是做alpha通道是想要显示出来的部分?

在三角形上 纹理混合可以弄出来 那么sprite可以弄吗?

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2006-4-19 17:35:00 | 显示全部楼层

Re:sprite->draw如何将带alpha通道的图片显示出来?

d3d设置里面把alpha通道激活

http://www.dingge.com/forum/index.asp?boardid=46

这里有很多讨论sprite的东西

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2006-4-19 19:48:00 | 显示全部楼层

Re:sprite->draw如何将带alpha通道的图片显示出来?

嘿嘿  发现你这里的确很不错
不过我的问题还没有得到解决
g_pD3DDevice->SetRenderState (D3DRS_CULLMODE , D3DCULL_CCW);
g_pD3DDevice->SetRenderState (D3DRS_LIGHTING,FALSE);
g_pD3DDevice->SetRenderState (D3DRS_ZENABLE,D3DZB_TRUE);
//alpha blend
g_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
g_pD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
g_pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
g_pD3DDevice->SetRenderState(D3DRS_NORMALIZENORMALS, TRUE);
g_pD3DDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
g_pD3DDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
g_pD3DDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_ANISOTROPIC);
g_pD3DDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_ANISOTROPIC);
g_pD3DDevice->SetSamplerState(0,D3DSAMP_MAXANISOTROPY,16);
我开了D3DRS_ALPHABLENDENABLE
pSprite->Begin( D3DXSPRITE_ALPHABLEND );
   pSprite->Draw( g_pTexture,
                        &srcRect,
                        &vCenter,
                        &vPosition,
                        D3DCOLOR_COLORVALUE(1.0f,1.0f,1.0f,1.0f) );
pSprite->End ();
可是却什么也没有显示 出来 这是为什么?

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2006-4-19 19:50:00 | 显示全部楼层

Re:sprite->draw如何将带alpha通道的图片显示出来?

        D3DXIMAGE_INFO d3dxImageInfo;

        SafeRelease(g_pTexture);
        D3DXCreateTextureFromFileEx( g_pD3DDevice,
                                 lpBkFilename,
                                 150, // I had to set width manually. D3DPOOL_DEFAULT works for textures but causes problems for D3DXSPRITE.
                                 256, // I had to set height manually. D3DPOOL_DEFAULT works for textures but causes problems for D3DXSPRITE.
                                 1,   // Don't create mip-maps when you plan on using D3DXSPRITE. It throws off the pixel math for sprite animation.
                                 D3DPOOL_DEFAULT,
                                 D3DFMT_UNKNOWN,
                                 D3DPOOL_DEFAULT,
                                 D3DX_DEFAULT,
                                 D3DX_DEFAULT,
                                 D3DCOLOR_COLORVALUE(1.0f,1.0f,1.0f,1.0f),
                                 &d3dxImageInfo,
                                 NULL,
                                 &pTexture );

        g_pD3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
        g_pD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 07:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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