游戏开发论坛

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

求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-4-11 15:14:00 | 显示全部楼层 |阅读模式
我想把纹理图案中的红色去掉,只剩下人物图案,该怎么做?

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2006-4-13 22:35:00 | 显示全部楼层

Re:求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

装载纹理时指定 ColorKe 为你要的 颜色,然后打开alpha测试,把alpha接近0的多过滤掉就行了

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2006-4-24 17:24:00 | 显示全部楼层

Re: 求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

谢谢,其实我找到了,就是图做好ALPHA通道,然后在Render中打开ALPHA通道就可以了,而COLORKEY好象在DX9中消失了

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

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

Re:求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

COLORKEY也是有的

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2006-4-24 17:54:00 | 显示全部楼层

Re:求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

刚好看到sdk这个纹理函数:

HRESULT 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用来设置,不过原理应该还是alpha测试

0

主题

25

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2006-4-24 23:48:00 | 显示全部楼层

Re:求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

设置材质对光反射得程度:
// ====== 下面这个是对红色的反射能力
mtrl.Diffuse.r =(0.0-1.0)f;

0

主题

25

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2006-4-24 23:50:00 | 显示全部楼层

Re:求助:directx纹理贴图的时候怎么样把一种颜色过滤掉

设置材质对光反射得程度:
D3DMATERIAL9 mtrl;
ZeroMemory(&mtrl,sizeof(D3DMATERIAL9));
// ====== 下面这个是对红色的反射能力
mtrl.Diffuse.r =(0.0-1.0)f;
// ====== 下面这个是对绿色的反射能力
mtrl.Diffuse.g=(0.0-1.0)f;
// ====== 下面这个是对蓝色的反射能力
mtrl.Diffuse.b =(0.0-1.0)f;
// ====== 下面这个是透明度
mtrl.Diffuse.a =(0.0-1.0)f;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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