游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2086|回复: 7

又一个问题!(急)

[复制链接]

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2005-5-11 19:14:00 | 显示全部楼层 |阅读模式
如图:树模型是两个交叉的面(X文件),贴图做的不好[em10](bmp格式)……
程序是根据Andy Pike的DirectX 8 教程改来的,在CMesh中填入如下代码想实现树木那种效果
读入纹理部分:
D3DXCreateTextureFromFileEx(m_pD3DDevice,  matMaterials.pTextureFilename, 0, 0, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED,D3DX_DEFAULT,D3DX_DEFAULT, D3DCOLOR_XRGB(255, 0, 255), NULL, NULL, &m_pMeshTextures)
渲染部分:
m_pD3DDevice->SetTextureStageStat(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);

出来的效果如图,应该透明的部分只能看到地面,看不到树,不知为何,恳请指教! [em24]
sf_2005511191422.jpg

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2005-5-11 20:11:00 | 显示全部楼层

Re:又一个问题!(急)

alpha物体需要根据距离来做排序,离视点越近的越后绘制,这样就不会出现上述问题了

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-5-11 20:40:00 | 显示全部楼层

Re:又一个问题!(急)

原来如此,问题解决!多谢!

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-5-11 21:39:00 | 显示全部楼层

Re: 又一个问题!(急)

[em10]
再问一个问题:
上面的树自身也会发生上述问题,树的两个面我并为了一个物体,不知道这样怎样弄?多谢!

2

主题

50

帖子

58

积分

注册会员

Rank: 2

积分
58
发表于 2005-5-11 23:09:00 | 显示全部楼层

Re:又一个问题!(急)

要alpha test下, alpha小于阈值的fragment是需要去除的

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-5-12 14:28:00 | 显示全部楼层

Re: 又一个问题!(急)

不好意思,出错情况如图1所示。如何解决,恳请赐教!
(这颗树是单个物体,由两个交叉的面组成,如图2)

tomb4说得我不太明白,还请详解,多谢!
sf_2005512142827.jpg

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2005-5-12 16:28:00 | 显示全部楼层

Re:又一个问题!(急)

对于一个物体
打开alpha test, 把需要不显示的部分,在贴图上修改其alpha channel
让他们在渲染得时候不能通过alpha test
这样,他们也就不会参与到后面的alpha blend操作,也就不会出错了

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-5-12 19:15:00 | 显示全部楼层

Re:又一个问题!(急)

恩,明白了,多谢各位!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 15:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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