游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1694|回复: 3

请教问题:点精灵的渲染问题

[复制链接]

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2005-11-14 02:08:00 | 显示全部楼层 |阅读模式
我想画一组点精灵到屏幕上,奇怪的是只显示了第一个point,别的都不显示,部分代码如下:

struct PointVertex
{
        D3DXVECTOR3 pos;
        D3DCOLOR color;
        static const DWORD FVF;
};
const DWORD PointVertex::FVF = D3DFVF_XYZ| D3DFVF_DIFFUSE;
struct Particle
{
        D3DXVECTOR3 m_vCurPos;
        D3DCOLOR m_dwColor;
//other attirbute omit..
};
        hr = pd3dDevice->CreateVertexBuffer(
                m_dwMaxParticles * sizeof(PointVertex),
        D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY | D3DUSAGE_POINTS,
        PointVertex::FVF,
        D3DPOOL_DEFAULT,
        &m_pVB, NULL );

        Particle *pParticle = m_pActiveList;
        PointVertex *pVertices;

        m_pVB->Lock(0,0,(void **)&pVertices,0);

        while(pParticle)
        {
                pVertices->pos = pParticle->m_vCurPos;
                pVertices->color = pParticle->m_dwColor;
                pParticle = pParticle->m_pNext;
        }
        m_pVB->Unlock();

        pd3dDevice->SetTexture(0, m_ptexParticle);
        pd3dDevice->SetFVF( PointVertex::FVF );
        pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(PointVertex) );
        pd3dDevice->DrawPrimitive( D3DPT_POINTLIST, 0,20);

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2005-11-14 02:42:00 | 显示全部楼层

Re:请教问题:点精灵的渲染问题

啊,我太笨了,问题已经解决了,大家不用看我的烂代码了,呵呵,改为
while(pParticle)
{
pVertices->pos = pParticle->m_vCurPos;
pVertices->color = pParticle->m_dwColor;
pParticle = pParticle->m_pNext;
pVertices+=sizeof(PointVertex);
}

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2005-11-14 02:54:00 | 显示全部楼层

Re:请教问题:点精灵的渲染问题

半夜脑子糊涂了,顶最后一次。。。
while(pParticle)
{
pVertices->pos = pParticle->m_vCurPos;
pVertices->color = pParticle->m_dwColor;
pParticle = pParticle->m_pNext;
pVertices++;
}

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2005-11-21 15:45:00 | 显示全部楼层

Re:请教问题:点精灵的渲染问题

点精灵就是只显示一面的效果吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 16:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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