游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2548|回复: 5

混合纹理

[复制链接]

36

主题

107

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2007-11-16 19:48:00 | 显示全部楼层 |阅读模式
我一个,就一个,为什么这个样子设置后就看不到了啊,
if( Device )
        {
                Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
                Device->BeginScene();

                Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
                Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

                Device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
                Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
                Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

                Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
                Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
                Device->SetStreamSource(0, Quad, 0, sizeof(Vertex));
                Device->SetFVF(Vertex::FVF);
                Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 2);

                Device->EndScene();
                Device-&gtresent(0, 0, 0, 0);
        }
        return true;
但是把下面两句话去掉后就可以看到了这是为什么啊?
Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);

54

主题

2917

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2007-11-17 08:58:00 | 显示全部楼层

Re:混合纹理

因为上面的
Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
被你下面的
Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
替换了

36

主题

107

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-11-19 08:58:00 | 显示全部楼层

Re:混合纹理

为什么替换掉就看不见了啊?

OutputPixel = sourcePixel*(1,1,1,1)+destPixel*(1,1,1,1) 请指导一下怎么会看不到的啊?

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2007-11-19 10:18:00 | 显示全部楼层

Re:混合纹理

看不到是完全没有东西,还是全白色,全白色的话就有可能是计算的结果

36

主题

107

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-11-19 14:15:00 | 显示全部楼层

Re:混合纹理

是全白色,怎么会计算成全白色???

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2007-11-19 15:07:00 | 显示全部楼层

Re:混合纹理

当sourceColor + destColor > 255就成白色了
你把destColor改成黑色看结果是不是sourceColor就知道了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 22:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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