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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

查看: 2834|回复: 6

[求助] ID3DXSPRITE 在 3D 空间中的使用??

[复制链接]
发表于 2009-3-12 16:06:59 | 显示全部楼层 |阅读模式
if (SUCCEEDED(m_pSprite->Begin(D3DXSPRITE_DONOTSAVESTATE)))
{
       D3DXMATRIX mat2DTrans;
       D3DXMatrixTranslation( &mat2DTrans, 0.0f, 0.0f, 0.0f );
       m_pSprite->SetTransform(&mat2DTrans);
       m_pSprite->Draw(m_pDXTexture->m_Texture, &rct3D1,NULL,NULL, 0xffffffff);
       m_pSprite->End();
}

m_pDXFont->Draw3DFont(1,&rct3D1,&mtxText2);
m_pDXFont->Draw3DFont(2,&rct3D2,&mtxText3);

先用 SPRITE 在屏幕上贴一个图(没有占满整个屏幕),然后画两个 3D 文字,运行的时候,屏幕上只有贴图,没有 3D 文字了。。。
把 SPRITE 这段代码注释掉,3D文字正常。。。

是不是矩阵有问题啊。。
既要使用 SPRITE 绘制 2D 对象,又要绘制 3D 对象,这种情况应该注意什么??

 楼主| 发表于 2009-3-13 14:34:26 | 显示全部楼层

哎。。。D3DXSPRITE_ALPHABLEND 这个参数的意思好像和解释的有所不同啊。。。

 

这里是运行程序

 

用 SPRITE 贴图的时候,我设置 DRAW 函数的最后一个 COLOR 参数:0X99554411

ALPHA其作用,后面3个无效。。。。这是为什么呢??

 楼主| 发表于 2009-3-12 21:32:33 | 显示全部楼层

不是吧。。你没有碰到过这种问题??

 

m_pSprite->Begin(D3DXSPRITE_DONOTSAVESTATE)

这个Begin里面的参数,你是怎么设置的??

 楼主| 发表于 2009-3-12 23:15:50 | 显示全部楼层

不如你试一下和我一样的测试。。。。

 

载入一个位图 Texture,用Sprite  把它贴到屏幕上(大小随意),然后,载入一个 mesh ,把 mesh 画到这个贴图上,并且让这个 mesh 旋转起来

发表于 2009-3-13 00:18:55 | 显示全部楼层
设置的是第一个参数 D3DXSPRITE_ALPHABLEND
发表于 2009-3-12 18:29:09 | 显示全部楼层

似乎没有这个问题。。。。

我的UI都是用SPRITE画的,没有影响到3D图形,是不是别的什么地方?你觉得可能是矩阵影响的,你就单单注释掉矩阵就可以了呀

发表于 2009-3-19 15:13:45 | 显示全部楼层
2D的UI遮挡3D模型 你把UI绘制放在mesh绘制的后面就可以了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-11 12:44

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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