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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

12
返回列表 发新帖
楼主: drucula

[求助]3D模型在屏幕中的位置(三年前的疑惑,一定要解决掉~~~)

[复制链接]
 楼主| 发表于 2008-12-22 22:11:54 | 显示全部楼层

“在surface内存中把这个MESH图形拷贝出来”

这是关键啊。。。

你的意思是,先用 randertarget 把 MESH 画到一个 surface 上,然后把这个 surface 上的内容拷贝到控件中???

 

surface 上的内容拷贝到控件中,是怎么实现的啊??

如果要实现,不是还要考虑缩放问题??

 楼主| 发表于 2008-12-31 00:07:47 | 显示全部楼层

鼹鼠啊,你说的这个方法我想试试,但是有几个问题:

1.渲染到纹理,这个其实不是很难,我想问,这个纹理的大小应该是多大呢??如果纹理的大小就是我指定的屏幕上的矩形区域的大小,那么,MESH的缩放要怎么解决呢??

2.纹理怎么COPY到窗体呢??用 DxSprite 直接画上去,行不行??我觉得,如果是在一个纯DX的窗体内,用 DxSprte 应该是可以的。

你看看这张图:

http://www.cnitblog.com/images/cnitblog_com/wjk98550328/4393/r_ph1.JPG

这张图上,好像是把纹理绘制到了窗口的某个控件中,和你说的方法应该是一样的,这样的话,就不能用 DxSprite 来画了,就要用到你说的COPY,这个COPY过程,能不能说得具体点???现在貌似就差这个COPY过程了。。。

 楼主| 发表于 2008-12-18 22:33:36 | 显示全部楼层
我回来了,D3D的渲染管线我看了

 

我再说一下吧。。

1.给你一个空间坐标(X1,Y1,Z1),要你把一个3D模型,比如一个MESH画在那里,然后,模型投影到屏幕上,也就是说这个模型会显示在屏幕的某一个“矩形框”内。当然,可以根据投影公式算出这个“矩形框”的位置,甚至大小

 

2.好的,现在反过来实现,我先把这个“矩形框”告诉你,要求你把模型显示在里面,要怎么算出正确的空间坐标(X1,Y1,Z1),以至于能让我把模型放到那里呢???

 

最终要实现的就是:让3D模型投影到我指定的屏幕区域内。。。。

 楼主| 发表于 2009-1-7 00:05:33 | 显示全部楼层

来个总结性发言吧。。。

 

要想把一个(特别是多个)3D模型,用2D的定位方式在屏幕上定位并且显示。

 

在目前来看,如果只定位一个的话,那么,移动相机,调整视点,是最高效的方法

 

如果要用“平面设计方式”(就像做网页一样,先用矩形框架把网页规划好,哪些框里要显示哪些东西)来把多个3D模型在屏幕上精切的定位,并且按比例缩放,那么,就目前所知,有且仅有“渲染到纹理”(RTT),这一种方法,最高效,最容易实现。。。

 

问题已解决,心愿已了。。。。。。

 楼主| 发表于 2009-1-7 00:07:38 | 显示全部楼层

想知道如何解决这个问题的朋友,可以去本论坛

 

http://forum.exceedu.com/forum/dispbbs.asp?boardid=46&Id=15751

 

里面有事例程序,还有我的源代码

发表于 2008-12-19 17:48:57 | 显示全部楼层

其实你的想法有很多的办法可以实现;

比如我上面说过的可以写一个控件来完成你的要求,也可以把摄像机移到特定位置实现你要的效果。

 

你说了你看了成像原理,那你看到了图像翻转函数Present()了吗?

它里面的参数也可以实现你需要的效果。

发表于 2009-3-9 20:39:05 | 显示全部楼层
[BR]虽然不懂,但慢慢学,慢慢看,总会懂的。大家继续讨论,我继续学习~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-6 12:50

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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