游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3814|回复: 11

来看看这个纹理混合怎么实现的?

[复制链接]

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2007-3-21 19:20:00 | 显示全部楼层 |阅读模式
请问他的 草地 的地字和沙混合到一起了,请问这种贴图在计算坐标的时候是不是让他们的坐标重叠一个顶点??

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2007-3-21 19:31:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

另外我使用了3张图片 来混合为什么没效果?? 所有的DIFFUSE都为119  可是只能看到纹理2 1和3看不到,diffuse固定119 也不应该是这个效果啊? 原文:
http://bbs.gameres.com/showthread.asp?threadid=14941

        m_pd3ddev->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );  
        m_pd3ddev->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        m_pd3ddev->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
        // TextureStage 1
        m_pd3ddev->SetTextureStageState( 1, D3DTSS_COLOROP,   D3DTOP_BLENDDIFFUSEALPHA );
        m_pd3ddev->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        m_pd3ddev->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
        m_pd3ddev->SetTextureStageState( 1, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
        m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLOROP,   D3DTOP_MODULATE );
        m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLORARG1, D3DTA_DIFFUSE );
        m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLORARG2, D3DTA_CURRENT );
        m_pd3ddev->SetTextureStageState( 2, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2007-3-21 20:12:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

顶点结构定义如下:
struct CUSTOMVERTEX{
        enum _FVF { FVF=(D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX2) };
        D3DXVECTOR3        p;
        D3DXVECTOR3        n;
        DWORD diffuse;
        D3DXVECTOR2        t;
        D3DXVECTOR2        t1;
};


Data[xxx].diffuse = D3DCOLOR_XRGB(255,255,255);


混合出的效果如下: 其实只显示了第2张图 1 和 3 没显示什么效果
而且有严重的块块

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2007-3-22 11:38:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

的ALPHA数据不够或状态设置或两者都不正确。

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2007-3-22 13:29:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

状态设置是按照文章里面说的做的  aplha不够应该多少有些地方有点影响 可是上面图看来 是一点也没有影响

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-3-22 13:53:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

用制图软件可以么?比如PHOTOSHOP.
我没干过,外行人没说话的分.只是路过,友情一顶.

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-3-22 13:56:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

Torque自带软件的Alpha混合,会自动生成这种接壤贴图。

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2007-3-22 18:12:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

这个问题似乎不好解决  Freeworld3D  都没解决这个问题.
主要问题不在接壤上, 再怎么接稍远看起来都是有规律的颜色

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2007-3-22 18:32:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

……每块一个纹理,自然是有规律了
现在一般主纹理很少单块单纹理了吧?
只有Detail Mesh才单块单纹理的……

另外:
m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLOROP,   D3DTOP_MODULATE );
m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLORARG1, D3DTA_DIFFUSE );
m_pd3ddev->SetTextureStageState( 2, D3DTSS_COLORARG2, D3DTA_CURRENT );
m_pd3ddev->SetTextureStageState( 2, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

Stage 2 没有使用D3DTA_TEXTURE,自然纹理3出不来。Stage 0已经使用了Diffuse了,后面如果不是特殊需要最好还是不要再用。

21

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2007-3-22 20:02:00 | 显示全部楼层

Re:来看看这个纹理混合怎么实现的?

哎 我的疏忽啊 alpha有问题

改后的效果


还是不是很爽,场景变亮就会看到明显块块 不知道下面是怎么做的
他也就一张纹理在那里 但块不明显,场景很亮

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 19:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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