gpt4 book ai didi

c++ - 2D Sprite(背景)前面的 3D 物体,怎么样?

转载 作者:行者123 更新时间:2023-11-28 01:07:11 26 4
gpt4 key购买 nike

我是 Direct3D 的新手,我在一个项目中从网络摄像头拍照并在它前面绘制一些 3D 对象。

我能够使用正交投影将网络摄像头图像渲染为背景。

//init matrix


D3DXMatrixOrthoLH(&Ortho, frameWidth, frameHeight, 0.0f, 100.0f);

//some code

D3DXVECTOR3 position = D3DXVECTOR3(0.0f, 0.0f, 100.0f);
g_pSprite->Begin(D3DXSPRITE_OBJECTSPACE);
g_pSprite->Draw(g_pTexture,NULL,&center,&position,0xFFFFFFFF);
g_pSprite->End();

然后我尝试在它前面插入一个简单的三角形。矩阵设置如下

D3DXMATRIXA16 matWorld;


D3DXMatrixTranslation( &matWorld, 0.0f,0.0f,5.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );


D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI / 4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );

5.0 应该 < 100.0,三角形应该出现在图像前面。但是,除非将 z 位置设置为 0,否则它不会出现。在位置 0,我可以看到三角形,但背景是空白的。

你们有什么建议吗?

最佳答案

如果您打算仅将图像用作背景,我不会在对象空间 (D3DXSPRITE_OBJECTSPACE) 中绘制网络摄像头图像;像

        D3DXVECTOR3 backPos (0.f, 0.f, 0.f);
pBackgroundSprite->Begin(D3DXSPRITE_ALPHABLEND);
pBackgroundSprite->Draw (pBackgroundTexture,
0,
0,
&backPos,
0xFFFFFFFF);
pBackgroundSprite->End();

应该有希望做你正在寻找的东西。

关于c++ - 2D Sprite(背景)前面的 3D 物体,怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com