首页
社区
课程
招聘
[求助]对于3D 对象透视画框求问。
发表于: 2017-4-13 16:58 3605

[求助]对于3D 对象透视画框求问。

2017-4-13 16:58
3605
  1. UINT OffsetInBytes,Stride;
  2. VOID* pIndex,*pData;
  3. D3DXVECTOR3 Vector2D;
  4. pDevice->GetVertexShaderConstantF(0,ViewProjectionMatrix,4);
  5. pDevice->GetVertexShaderConstantF(230,LocalToWorld,4);
  6. pDevice->GetVertexShaderConstantF(9,WorldToLocal,3);
  7. pDevice->GetIndices(&pIndexData);
  8. pDevice->GetViewport(&Viewport);
  9. pDevice->GetStreamSource(0, &pStreamData, &OffsetInBytes, &Stride);
  10.  
  11. D3DXMatrixIdentity(&WorldToLocal);
  12. D3DXVECTOR3 VectorMiddle(0,0,0),ScreenMiddle(Viewport.Width/2,Viewport.Height/2,0);
  13.  
  14.  
  15. D3DXVec3Unproject(&VectorMiddle,&ScreenMiddle,&Viewport,&ViewProjectionMatrix,&LocalToWorld,&WorldToLocal);
  16.  
  17.  
  18. D3DXVec3Project(&Vector2D,&Vector3D, &Viewport, &ViewProjectionMatrix,&LocalToWorld,&WorldToLocal);
  19.  
  20.    {
  21.        
  22.        DrawRectangle(Vector2D.x,Vector2D.y,30,30);
  23.  
  24.    }


代码是来之远古的。理解为通过对象计算出坐标。但为何我获取的 Vector2D.x 和 Y 都是 -1 呢?


  1. pDevice->GetVertexShaderConstantF(0,ViewProjectionMatrix,4);
  2. pDevice->GetVertexShaderConstantF(230,LocalToWorld,4);
  3. pDevice->GetVertexShaderConstantF(9,WorldToLocal,3);

这三句话也不是很立即。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 914
活跃值: (2358)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
2
有完整代码吗?
我对这份UE3代码很有兴趣
2017-7-15 17:48
0
游客
登录 | 注册 方可回帖
返回
//