游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1479|回复: 2

做天空盒的问题

[复制链接]

36

主题

135

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2004-4-15 09:27:00 | 显示全部楼层 |阅读模式
立方体,为了简便没有用索引顶点,由于是做天空盒,因此每个立方体的面的纹理都是不同的,本来应该是:
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST , 0 , 12);
因为定义了36个顶点,D3DPT_TRIANGLELIST方式下一个primitive包含三个顶点,所以一共是12个primitive。
现在改成了:
for (int fc = 0 ; fc < 6 ; fc++){
        //纹理设置
        if(m_pTexture != NULL)
        {
                m_pD3DDevice->SetTexture(0, m_pTexture[fc]);
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CURRENT);
        }
        else
        {
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG2);
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
                m_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CURRENT);
        }
        m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0 + fc * 2, 2);
}
但是发现立方体渲染出错了,变成了不规则物体,顶点相互连不起来,是不是DrawPrimitive写错了?纹理能够看到,应该没问题的。!

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-4-15 13:58:00 | 显示全部楼层

Re:做天空盒的问题

看看纹理坐标顺序对没

36

主题

135

帖子

135

积分

注册会员

Rank: 2

积分
135
 楼主| 发表于 2004-4-15 18:35:00 | 显示全部楼层

Re:做天空盒的问题

说了是几何形状的问题,而不是纹理的问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 02:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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