如何用DX做半透明的效果,也就是那种隐行效果

mjm_d 2001-12-23 05:12:34
如何用DX做半透明的效果,也就是那种隐形效果
一种为自我隐形即可见背静,亦可见自己
一种为他人隐形即可见背静,不可见他人,但可以见到有个像水一样的透明人浮动。
感激不尽

...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjm_d 2002-01-01
  • 打赏
  • 举报
回复

mjm_d@163.net
gddsky 2001-12-27
  • 打赏
  • 举报
回复
你没有说明用什么方式做啊!!!
DDraw有很多人都为它做了汇编码的加速
D3D就简单一些了,只要把图像ALPHA因子设为50%就行了,你要的不就是半透明效果吗?
水一样浮动的人可就不那么简单了,这要先做好一个网格,再把这个网格进行水面处理,这样网格就会产生波形效果也就是扭曲,这样明白吗?
水波产生的原理我这里有一篇小文章,你要吗?
--------
这里有两张图,我不知道这个BBS能不能传图形的,先不传吧
--------

DDraw和汇编ALPHA加速都有,你要吗?

--------
inline WORD PixelAlphaBlending(DWORD x,DWORD y,int alpha)
{

// C++版
//x=((x&0xFFFF)|(x<<16))&0x7E0F81F;
//y=((y&0xFFFF)|(y<<16))&0x7E0F81F;
//DWORD result=(((y-x)*(alpha>>3)>>5)+x)&0x7E0F81F;
//return (WORD)((result&0xFFFF)|(result>>16));

//汇编版
__asm
{
mov ecx,x
mov edx,y
and ecx,63519 ;// 0000f81fH
and eax,2016 ;// 000007e0H
shl eax,16 ;// 00000010H
or eax,ecx
mov ecx,edx
and ecx,2016 ;// 000007e0H
and edx,63519 ;// 0000f81fH
shl ecx,16 ;// 00000010H
or ecx,edx
mov edx,alpha
sub ecx,eax
sar edx,3
imul ecx,edx
shr ecx,5
add ecx,eax
and ecx,132184095 ;// 07e0f81fH
mov eax,ecx
shr eax,16 ;// 00000010H
or eax,ecx
}
}
kabob 2001-12-25
  • 打赏
  • 举报
回复
http://cke.myrice.com/data/gamedev.htm
magicren 2001-12-23
  • 打赏
  • 举报
回复
要用D3D做吧?你可以参考一下nVidia SDK里关于折射和反射的例子(也可以从它的网站上下载NVEffectBrowser完全版http://www.nvidia.com/developer.nsf)。如果要求不高的话,把顶点的Alpha值调低些,再把Alpha混合打开,也能实现隐形。

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧