【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 3144|回复: 9

D3D中的2D操作 求助

[复制链接]
发表于 2005-8-24 17:47:41 | 显示全部楼层 |阅读模式
用dx8开发了个2d小游戏
用的是
LPD3DXSPRITE            pD3DSprite;
pD3DSprite->Draw(pD3DTex[10], NULL, &sc, NULL, rot, &diag, D3DCOLOR_ARGB(255, 255, 255, 255));
没有用到3D的操作,听说在dx8中可以方便的实现纹理的混合操作
是不是用3D中的纹理混合必须要画一个三角形再给它贴图使用多重纹理才能混合
这样纯粹的2D小游戏中能用dx8中的纹理混合功能吗?
通过LPD3DXSPRITE  的draw()方法显示有没有办法使用dx8中的纹理混合功能呢?
发表于 2005-8-24 20:43:34 | 显示全部楼层

Sprite和纹理是两个不同的接口,到底能不能混用没有见过官方的解释。

但是我做实验尝试了打开关闭纹理混合,没有任何变化。从理论上考虑,Sprite是把固定位置的图像按照要求绘制在固定区域,而纹理贴图则大为不同,它是通过顶点坐标绑定的纹理图片。所以,我认为不会产生影响。

 楼主| 发表于 2005-8-25 08:48:37 | 显示全部楼层

用dx8开发了个2d小游戏
用的是
LPD3DXSPRITE            pD3DSprite;
pD3DSprite->Draw(pD3DTex[10], NULL, &sc, NULL, rot, &diag, D3DCOLOR_ARGB(255, 255, 255, 255));
没有用到3D的操作,听说在dx8中可以方便的实现纹理的混合操作
是不是用3D中的纹理混合必须要画一个三角形再给它贴图使用多重纹理才能混合
这样纯粹的2D小游戏中能用dx8中的纹理混合功能吗?
通过LPD3DXSPRITE  的draw()方法显示有没有办法使用dx8中的纹理混合功能呢?

g_pD3DDevice->BeginScene();
pD3DSprite->Begin();

g_pD3DDevice->SetTexture( 0, pD3DTex[10] );


g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
    g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
    g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
    g_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

pD3DSprite->Draw(pD3DTex[9], &rect, &sc, NULL, rot, NULL, D3DCOLOR_ARGB(255, 255, 255, 255));
pD3DSprite->Draw(pD3DTex[10], NULL, &sc, NULL, rot, &diag, D3DCOLOR_ARGB(255, 255, 255, 255));
    pD3DSprite->End();
    g_pD3DDevice->EndScene();

以上是我的代码,可是没有效果,我用的是sdk9.0,VC6++请帮我看一下

 楼主| 发表于 2005-8-25 08:50:00 | 显示全部楼层
################
发表于 2005-8-25 12:24:26 | 显示全部楼层
################
 楼主| 发表于 2005-8-25 15:39:09 | 显示全部楼层

可能是我没说清楚

这里面也发不了图片脚本报错:(

有两张图片 如一张是地面 另一张是一个光照图  这样两张图片混合在一起 颜色值相加就中出现一个探照灯效果

或是说光照效果,也可以用来模仿人的视野。不知道有没有说明白。要不你留个联系方式我联系你吧msn或邮箱。

 

发表于 2005-8-25 18:05:10 | 显示全部楼层

我的信箱就是这里资料留得m9551@163.com

你说的那个效果我知道,因为你用的是Sprite 所以,完全可以用另外的方法来实现光照效果,我想2D游戏面不会采用即时光照,就是随着人物的运动光照效果在改变的效果。我想你想实现比如《蝙蝠侠》里面的墙壁火把效果,那么这种静态的光晕效果你用纹理混合不是浪费资源吗?你在photoshop里把效果做好,用Sprite直接绘制上去不就OK了!

 楼主| 发表于 2005-8-26 09:06:07 | 显示全部楼层

静态的光晕效果用版主说的实现的方法是真的方便。

现在我为了实现游戏中的一个特殊效果,确实需要用到动态光照效果

Sprite 能实现吗?怎么样实现?如果不能实现用什么可以实现?

谢谢。

发表于 2005-8-26 18:27:15 | 显示全部楼层
################
 楼主| 发表于 2005-8-28 11:23:38 | 显示全部楼层

谢谢 回答

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

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-2-6 01:53

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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