游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2874|回复: 6

关于.TGA文件和BMP文件的问题.请赐教.

[复制链接]

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2007-1-22 15:28:00 | 显示全部楼层 |阅读模式
在一个纹理贴图的程序中加入如下代码可以实现去背的功能(也就是说使图片的黑色部分变得透明了),且纹理图片是TGA格式:
    g_pMyd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE,   TRUE );
    g_pMyd3dDevice->SetRenderState( D3DRS_SRCBLEND,  D3DBLEND_SRCALPHA);
    g_pMyd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

    g_pMyd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE );
    g_pMyd3dDevice->SetRenderState( D3DRS_ALPHAREF,        0x00000001 );
    g_pMyd3dDevice->SetRenderState( D3DRS_ALPHAFUNC,D3DCMP_GREATEREQUAL );

但是我把TGA文件还成了一个BMP文件,上面那段代码就失去作用了.我查了些资料,说是TGA支持什么东西能达到什么效果,而BMP文件不能够做到.
问:
我怎样才能在进行纹理贴图时使BMP文件像使用TGA文件的时侯一样达到去背的效果.请赐教.

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-1-22 19:18:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

保存bmp的时候会把原来tga的alpha值(即透明度)改变,建议直接用tga。

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2007-1-22 19:37:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

关键是TGA文件是怎么搞出来的啊?

9

主题

45

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2007-1-22 21:03:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

直接用PNG不就结了嘛,真是的

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-1-23 06:11:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

位图用下面这个函数载入然后设置去除某个关键色

HRESULT WINAPI D3DXCreateTextureFromFileEx(          LPDIRECT3DDEVICE9 pDevice,
    LPCTSTR pSrcFile,
    UINT Width,
    UINT Height,
    UINT MipLevels,
    DWORD Usage,
    D3DFORMAT Format,
    D3DPOOL Pool,
    DWORD Filter,
    DWORD MipFilter,
    D3DCOLOR ColorKey,
    D3DXIMAGE_INFO *pSrcInfo,
    PALETTEENTRY *pPalette,
    LPDIRECT3DTEXTURE9 *ppTexture
);




ColorKey
[in] D3DCOLOR value to replace with transparent black, or 0 to disable the color key. This is always a 32-bit ARGB color, independent of the source image format. Alpha is significant and should usually be set to FF for opaque color keys. Thus, for opaque black, the value would be equal to 0xFF000000.

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-1-23 20:26:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

bmp是没有alpha通道的

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2007-1-24 09:33:00 | 显示全部楼层

Re:关于.TGA文件和BMP文件的问题.请赐教.

有32位的位图,可以定义ALPHA通道,不过要自己编写其读取和操作程序.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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