游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3145|回复: 4

请教D3D粒子系统问题

[复制链接]

11

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2011-1-5 23:58:00 | 显示全部楼层 |阅读模式
我为D3D程序添加了粒子系统模拟下雪天,设置状态如下
        m_pDevice->SetRenderState( D3DRS_LIGHTING, false );
        m_pDevice->SetRenderState( D3DRS_POINTSPRITEENABLE, true );
        m_pDevice->SetRenderState( D3DRS_POINTSCALEENABLE, true );
           m_pDevice->SetRenderState( D3DRS_POINTSIZE, VSchool::FToDW(m_fSize) );
        m_pDevice->SetRenderState( D3DRS_POINTSIZE_MIN, VSchool::FToDW(0.0f) );
       
        m_pDevice->SetRenderState( D3DRS_POINTSCALE_A, VSchool::FToDW(0.0f) );
        m_pDevice->SetRenderState( D3DRS_POINTSCALE_B, VSchool::FToDW(0.0f) );
        m_pDevice->SetRenderState( D3DRS_POINTSCALE_C, VSchool::FToDW(2.0f) );

       
        //用纹理的颜色作为alpha来源
        m_pDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
        m_pDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, :3DTOP_SELECTARG1 );

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

D3DRS_POINTSPRITEENABLE 这个状态设为true不是可以实现粒子远小近大的效果吗?为何我程序里显示的粒子大小全是一样的?这是怎么回事?效果图如下

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-9 21:04:00 | 显示全部楼层

Re:请教D3D粒子系统问题

建议修改abc系数试试

11

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2011-1-14 13:02:00 | 显示全部楼层

Re: 请教D3D粒子系统问题

问题已经解决了,原因是在渲染粒子时矩阵变幻时我又加多了次视口矩阵变换

1

主题

22

帖子

695

积分

高级会员

Rank: 4

积分
695
发表于 2011-1-16 13:52:00 | 显示全部楼层

Re:请教D3D粒子系统问题

很负责人的告诉你,不可以。D3DRS_POINTSIZE设置的粒子的大小是以像素为单位的。要想实现粒子远小近大的效果要用可编程管线。在GPU里动态计算每一帧,每个粒子转化到屏幕空间后的像素大小。

友情提醒:现在不要再用什么固定管线来渲染了。要深入学习可编程管线,这才是正道。貌似dx10以后,固定管线已经不存在了。

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-3-5 21:58:00 | 显示全部楼层

Re:请教D3D粒子系统问题

楼主:本人刚开始接触directx,想了解一下粒子系统,楼主能不能把您帖子上雪花粒子系统的源码发给我一份,我的邮箱:liwenxin8832648@163.com.非常感谢楼主!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-6 14:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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