游戏开发论坛

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

求助:如何用D3DXSprite画精灵时实现淡入淡出的效果?

[复制链接]

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2006-3-11 13:18:00 | 显示全部楼层 |阅读模式
用D3DXSprite来绘制精灵的时候用到了AlphaBlend,但是我只会利用图像自带的Alpha通道来实现不可以动态变化的半透明效果,如果要实现可以淡入淡出的半透明效果,比如从完全透明渐渐过渡到完全不透明,请问如何实现?(本来以为可以通过修改D3DRS_ALPHAREF的值来实现,可是从SDK上了解到,在绘制精灵的时候,这些RenderState都被重置了)。是不是一定要通过直接锁定Texture表面,然后修改里面的Alpha值才能实现啊?

望高手解答这个问题,谢谢。

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-3-11 18:33:00 | 显示全部楼层

Re: 求助:如何用D3DXSprite画精灵时实现淡入淡出的效果?

如果你用到了光源渲染,直接影响纹理透明的是一个叫做emissive的色彩通道,这个通道主要在光源参数为真时起作用

如果你用的非光源渲染模式,透明系数直接受diffuse色彩通道影响~


197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-3-11 18:36:00 | 显示全部楼层

Re: 求助:如何用D3DXSprite画精灵时实现淡入淡出的效果?

看明白了吗


sf_2006311183534.jpg

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-3-11 19:28:00 | 显示全部楼层

Re:求助:如何用D3DXSprite画精灵时实现淡入淡出的效果?

D3DSprite?
它的Draw方法中不是有一个color参数吗?
四个字节(ARGB)
它可以控制Alpha通道的。

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
 楼主| 发表于 2006-3-11 19:58:00 | 显示全部楼层

Re:求助:如何用D3DXSprite画精灵时实现淡入淡出的效果?

谢谢楼上的。你的意思是不是就是在Draw( LPDIRECT3DTEXTURE9 pTexture,  CONST RECT * pSrcRect,  CONST D3DXVECTOR3 * pCenter,  CONST D3DXVECTOR3 * pPosition,
  D3DCOLOR Color);函数中指定Color时,改变该Color的Alpha值。然后画到帧缓冲中就是半透明的了。我是这样理解的。再一次谢谢!!

二楼是讲,在使用光的时候设定物体的自发光中的Alpha值,也可以改变透明度。谢谢二楼和他的贴图,总算有点明白了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 21:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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