CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  游戏开发

怎样把物体缩放到屏幕刚好完全显示的大小?

楼主KingYoungsun(路人甲)2005-08-04 13:52:12 在 专题开发/技术/项目 / 游戏开发 提问

怎样把物体缩放到屏幕刚好完全显示的大小?只是为了显示的目的,物体本身大小并不改变,就像在3dmax中的"所有视口对象完全显示"命令那样. 问题点数:20、回复次数:4Top

1 楼CGChina(时空英雄)回复于 2005-08-04 15:23:48 得分 6

统计所有顶点,得到Bound然后,将Projectiong矩阵改变...不用我说了吧  
  Top

2 楼hotyoung(风间月)回复于 2005-08-04 16:36:15 得分 8

先声明全局的两个变量:  
  D3DXVECTOR3   g_pCenter;//保存模型的中心点  
  FLOAT               g_fRadius;//半径  
   
  然后进行模型的载入:  
  用D3DXLoadMeshFromX(...)函数,并保存到g_pMesh里(LPD3DXMESH)  
  然后  
  g_pMesh->LockVertexBuffer(...);  
  //计算模型范围  
  hr   =   D3DXComputeBoundingSphere(  
  (D3DXVECTOR3*)v,//临时BYTE   *变量v  
  g_pMesh->GetNumVertices(),  
  D3DXGetFVFVertexSize(g_pMesh->GetFVF()),  
  &g_pCenter,//保存模型的中心点  
  &g_fRadius);//球型范围半径  
  g_pMesh->UnlockVertexBuffer();  
   
  D3DXComputeBoundingSphere(...)函数是用于计算模型的球型范围。  
   
  有了中心点g_pCenter和半径g_fRadius,你就可以调整你的摄像机了。  
  调用D3DXMatrixLookAtLH(...)函数建立Look-At   matrix。  
  第二个参数是Camera本身的位置,你要把这个D3DXVECTOR3的x,y,z用g_pCenter的x,y,z赋值,并再将y和z加上或减去g_fradius,这是为了将Camera与模型之间产生点距离;  
  第三个参数是Camera所对向的点,当然这个点就是模型的中心点,即g_pCenter。  
  这样,不管你载入何种模型,Camera都会自动对向它。  
   
  Conclusion   一下  
  将Camera对向模型的几步如下:  
  1、载入模型。  
  2、计算模型范围。  
  3、调整Camera,Look-At模型。  
  4、打完收工。Top

3 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-08-04 16:50:59 得分 6

1   确定方向(从物体的那个方向看过去)  
  2   确定fov角度(视角是固定的)  
  3   计算物体在这个方向上投影的最大直径,简单的话可以用DX的计算包围球的函数,得到最大的半径  
  4   tan(fov)   =   半径   /   距离  
  从而反算出来距离了  
  Top

4 楼KingYoungsun(路人甲)回复于 2005-11-26 00:06:13 得分 0

非常感谢各位的回答。Top

相关问题

  • 请教如何获取3D物体占据屏幕的大小和位置?
  • 图片缩放到指定大小
  • 如何改变屏幕的大小?
  • 如何适应屏幕大小
  • 关于屏幕分辨率的大小?
  • 自适应屏幕大小的问题
  • 这样获取屏幕大小?
  • 怎样获得屏幕的大小?
  • 如何在手机屏幕上显示屏幕大小???
  • 求助!怎么获取屏幕大小,1024*768还是800*600?

关键词

  • 物体
  • 函数
  • 模型
  • pmesh
  • pcenter
  • fradius
  • 半径
  • 载入
  • 计算
  • dxvector

得分解答快速导航

  • 帖主:KingYoungsun
  • CGChina
  • hotyoung
  • happy__888

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo