人气 324

[游戏程序] 关于瓮云兵前辈翻译的《3d游戏程序设计入门》一书的几个问提???? ... [复制链接]

九艺网 2017-3-10 17:02:06

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本来想写信向瓮云兵前辈请教这些问题的,也许他太忙,写了信一直不见回复,就拿到这里向大家请教来了。下面是我的几个问题。
关于粒子系统部分的问题:
问题1:
laser系统部分看不到效果,我认为是给出的代码没有往系统中添加任何粒子.因此我加了下面的语句,这样按住空格键就能开枪了.
// fire!!!!!!!!!!!!!!!!
  //
   if( ::GetAsyncKeyState(VK_SPACE) & 0x8000f )
         Gun->addParticle();

问题2:
火花系统部分重写了preRender()函数,用下面的函数改变了混合因素.
_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
    _device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
这样就可以达到去掉 flare.bmp 图片背景色(当然这里只能是黑色)的效果(即只显示圆形的火花).不知道我理解的对吗?
如果是我这样理解的话,为什么雪花系统部分没有象火花系统一样重写preRender函数呢?最后要显示圆形的雪花的话,不也要去掉snow.bmp图片的背景色吗?
我试着重写了一下preRender,结果雪花变成了白色的正方型,实在是不理解,望赐教.

问题3:关于粒子最后显示在屏幕上颜色的计算问题:
我的理解是这样的:先利用属性表里粒子的颜色和纹理颜色进行计算,(但是在preRender函数当中并没有设置相应的计算方法,难道是用默认的计算方法吗?)然后将结果与后缓冲区的颜色(也就是整个基本场景)混合.这样理解对吗?不对的地方,请指教.
回复

使用道具 举报

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

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-3-29 06:28 , Processed in 0.105885 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.