WPF实现3D模型和3D场景

1、首先得说明的是这并不是真正的3D,模型被导出为一系列的单个图片,例如一个3D户型图,以某个视角旋转360°,渲染出一系列连续的单个图片文件。

2、在Image.MouseMove事件中添加相应代码,根据move的方向(根据当前鼠标点和前一鼠标点即可判断出),来更新Image.Source(赋值为上一张or下一张图片)

3、如果进展顺利,那么你就可以使你的3D模型流畅的旋转起来。

然而事情的发展往往让人很不愉快。

于是乎,展开各种网络搜索。略去其中各种奇葩想法,例如异步加载啦、预加载啦等等乱七八糟的。

1、以空间换时间。使用 List<byte[]>/List<Stream> 预先把所有的图片都加载进内存 400张1.27M(1024*768 jpg) 理论上400*1.27=508M 但事实上内存占用达到了1300多M(我也不知道为什么会那么多)!然而空间占用了时间却没有换来,卡顿照常!

2、还是以空间换时间,不过这次使用 List<ImageSource>来缓存所有的图片。然而事实还是让人悲伤!不过还好,这时候让我发现了问题的关键所在,就在于Image 的呈现上!如果ImageSource被呈现过之后,再次赋值给Image程序速度会加快很多!以下是本人的一些测试:

400张1.27M左右的图片,内存占用1360多M,第一次呈现需要35ms左右,之后呈现耗时15ms左右。

400张860K左右的图片,内存占用1300多M,呈现耗时30ms左右  之后呈现耗时15ms左右

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

400张620K左右的图片,内存占用880多M,呈现耗时20ms左右,之后呈现时间为15ms左右(依次呈现所有图片理论耗时:20*400=8000ms 实际耗时:1200+ms )

400张500K左右的图片,内存占用700多M,呈现耗时15ms左右,第一次呈现即可以流畅的旋转,但是图片清晰度不够!

注:本人使用机器:win8.0、i5 3.0Ghz、内存8G、显卡GTX 550 Ti

两个关键性问题:

1、如何减少呈现耗时(我现在的做法是用一个动态的loading图片遮住,用一个线程来依次呈现所有ImageSource)

2、减少内存占用 (我尝试只保存当前Index的前、后10个ImageSource,内存占用是下来了,但是没有了缓存效果,可能是我的线程调度有问题)

关于WPF对于控件的呈现,各种百度了一番,什么原理了结构图了看了一堆,发现解决办法指向了一个让人悲哀的方向:CPU、内存、显卡!

但是,前面我说过了,事实往往都让人更加伤,设备的预算……这个,大家都懂的吧。

时间: 2024-11-03 16:15:20

WPF实现3D模型和3D场景的相关文章

Flash 3D旋转和3D位移

核心提示:Flash CS4的3D工具很容易上手.在工具栏里有两个处理3D变形的工具:3D旋转和3D位移. Flash CS4的3D工具很容易上手.在工具栏里有两个处理3D变形的工具:3D旋转和3D位移. 这两个工具都可以切换全局坐标模式和个体坐标模式,上图为个体坐标模式. 另外,也可以通过属性面板和变形面板来调整3D变形的参数.其中值得注意的是灭点(消失点)和相机范围角度(不是焦距)的设置.这两个参数对整个场景内的所有元件,以及嵌套的元件都产生影响.也就是说,一个场景的灭点和相机范围角是唯一的

3D打印机和3D打印技术正在发展

但短期内这一技术的发展将专注于商业和医疗市场,而3D打印在消费类市场的普及至少还要5到10年时间.通过3D打印技术,用户可以使用塑料.金属和蜡等材料打印出3D形状的物体.近年来,已有许多厂商推出了3D打印机,而将3D打印技术用于手术和时尚也引起了外界对这一技术更大的兴趣.然而根据Gartner的报告,在这一市场面向消费者全部打开之前,仍有许多障碍需要克服,其中之一在于3D打印机高昂的价格.Gartner研究副总裁皮特·巴斯利尔(Pete Basiliere)表示:"消费类3D打印机获认为,目前,

华语电影追赶3D茫然上路 3D合拍必成趋势

<阿凡达>的出现,将3D真正从尝试阶段变成了火热的主流工业,回顾去年来中国本土出现的3D作品,屡屡被冠上"山寨"恶名的根本原因是技术与原创力的不足,给中国电影业内树立起一个相对成熟的范本,尤为重要. 本场论坛的两部分区分非常明显,第一组嘉宾是彭浩翔.姜帝圭.徐小明在内的亚洲电影人,他们讨论更多的是3D对电影本身的影响,以及新技术到底给电影带来了什么,而第二组嘉宾是曾负责过<拆弹部队>.<阿凡达>等影片特效的国外影人,他们的观点十分明晰:新技术来了就要

近十部华语电影上马3D业界:3D是趋势不是重点

<阿凡达>掀起一股3D电影热潮 在去年的全球影坛,没有任何一个电影事件能够超过<阿凡达>的上映,这部好莱坞超级大片横扫全球各地的电影市场,打破了多个纪录,注定将被载入电影史册.<阿凡达>同时也将成熟的3D技术呈现得淋漓尽致,在观众们的眼前勾勒出一个更立体真实的影像世界.3D电影不仅凭借<阿凡达>笑傲票房市场,而且也成为观众们追捧的新方向.与此同时,一大批电影公司纷纷宣布计划开拍华语3D电影,即将面世或者已有具体拍摄方案的电影就有近十部,这到底是一哄而上的旧有

TCP/IP四层模型和OSI七层模型简介

表1-1是 TCP/IP四层模型和OSI七层模型对应表.我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类. 表1-1  TCP/IP四层模型和OSI七层模型对应表 OSI七层网络模型 Linux TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 TFTP, FTP, NFS, WAIS 表示层(Presentation) Telnet, Rlogin, SNMP, Gopher 会话层(Session) SMTP, DNS

magento 开发 -- 深入理解Magento第四章 – 模型和ORM基础

第四章 – 模型和ORM基础 对于任何一个MVC架构,模型(Model)层的实现都是占据了很大一部分.对于Magento来说,模型占据了一个更加重要的位置,因为它常常包含了一部分商业逻辑代码(可以说它对,也可以说它错).这些代码在其他的MVC框架中往往出现在控制器或者帮助函数中. 传统的PHP MVC架构中的模型 本来MVC的定义就不是很清晰,不同的人有不同的看法,而对于模型的定义争议就更多了.在MVC模式被广泛采用之前,PHP程序员往往通过SQL语句直接操作数据库.也有些程序员通过一个SQL抽

浅谈javascript对象模型和function对象_javascript技巧

javascript中,函数就是对象 复制代码 代码如下: <html> <head> <script type="text/javascript"> function add(number){     alert(number+20); } var add=function(number){ alert(number+20); } function add(number,number1){     alert(number+30); } var a

LG裸眼3D智能手机Optimus 3D曝光

LG在新年伊始便十分的抢眼,不仅率先推出了全球首款双核智能手机,而且更准备在裸眼3D智 能手机领域再次抢得头筹.继不久前传出LG将会在下月举办的移动世界大会(MWC2011)上推出裸眼3D智能手机的消息后,日前又有来自LG官方的邀请 函向人们透露了其3D智能手机即将发布的迹象. "Into the New Dimension" 尽 管在LG发给媒体的邀请函中并没有出现新款3D手机的名字和代号,但其发布会主题 "Into the New Dimension"的口号,却

逐步了解OSI网络模型和TCP/IP的知识

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   安装 linux操作系统只是向建立一个功能完善的服务器或网站迈出了第一步.几乎每一台电脑都通过某种方式通过网络连接到各种设备上, 所以当使用linux 服务器时,最好要对网络以及相关的知识有一定的了解,这样使用起来才会比较方便. 这篇介绍性的章节中的内容为以后的网络配置以及其他的问题解决方案打下了基础.这些章节会向大家介绍如何安装以及配置一些在公司 或是在家办公