博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于.NET的3D开发框架/工具比较
阅读量:5052 次
发布时间:2019-06-12

本文共 1130 字,大约阅读时间需要 3 分钟。

  • 好久木有写博客了,这么日子以来忙忙碌碌的,也没大有时间潜心学习和梳理。最近刚好接手一个3D显示的活,虽然还没怎么弄明白,但是也看过一些方案,走了一些弯路,经过一些浅显的了解(3D Display这里面水太深),说说我个人的看法吧。

1.目标

项目的主要工作是能够接受从核心模块得来的数据(已经对原始的工程数据进行处理,包括进行坐标转化、归一化等)并将点云数据进行展示,核心是通过C++写的,然后我负责的外围,没有硬性的语言要求。

2.方案

我觉得应该想办法使用C#来实现这个显示展示问题。经过简单的寻找,大体比较靠谱的有这么些:

  1. XNA/MONOGAME
  2. Silverlight
  3. SharpGL/SharpDX/OpenTK
  4. WPF

首先从本质上来说,3D显示到底层都是调用DirectX或者OpenGL(不考虑软件加速),上面的这些只是对他们包装的层次不同而已。接下来看看应用场景:

XNA/MONOGAME: 提供了一个较完整的渲染管线,操作3D模型很容易,比较适合于3D的游戏的开发,然后还有一点就是我做这个开发的时候,没看见鼠标在哪,难道不支持?值得关注的是,据我所知,XNA不支持WINFORM/WPF控件!(学了一点而已,不深入)

Silverlight:作为一个客户端的程序运行,适用于构建RIA程序(P.S. 虽然小光酱已经不是微软的开发方向了…),核心3D显示功能是基于XNA的,就是继承结构不一样而已,值得一说的是,这个可以实现运用普通的WPF控件实现对3D图形的控制。

SharpGL/SharpDX/OpenTK:这些都是对底层DirectX或者OpenGL的.NET封装,肯定是可以实现所需要的功能的,不过由于是对底层的封装,使用起来较XNA还是有些难度。

WPF:显示是基于DirectX的,内建支持3D功能的展示,操作方式和xna有一些不同,不过支持原生的WPF控件。

 

3.小结

从上面的简单对比,可以发现,如果有时间的话,通过SharpGL这一类方法会比较适合于从底层开始开发,通过WPF会比较适合于我的应用场景;由于XNA与Silverlight不再受微软力推,最好也暂停一下,观望观望(当然从学习的角度来说,学了就是自己的,融会贯通,不会白学)。

由于最初没有做一个横向的对比,我直接用的XNA进行的开发。结果,手下人折腾了半天,告诉我搞不出来,回头还要重做,耽误了很多时间,以后动手之前还是需要先动脑,应引以为戒。

P.S. 微软的开发者中心上对开发技术做了对比,做graphics-rich程序,微软还是推荐用C++

转载于:https://www.cnblogs.com/podolski/p/3981890.html

你可能感兴趣的文章
IIS解决上传文件大小限制
查看>>
Longest Consecutive Sequence hashset
查看>>
JMS-mq-发布/订阅
查看>>
JAVA-I/O(4)-字符流-Reader
查看>>
【转】周杰伦在哪几届金曲奖中分别得的哪些奖?
查看>>
第三阶段:1.数据分析:5.关键数据-转化率
查看>>
crontab是不认识profile的
查看>>
docker--deepin安装
查看>>
linux安装pip tornado lxml等
查看>>
windows 8 httpclient 联网方式
查看>>
虚拟机显卡分配过高的警告(Insufficient video RAM)
查看>>
JavaScript入门经典红皮书阅读笔记6.13(第二篇)
查看>>
file upload download
查看>>
mysql时间区间的查询
查看>>
游戏引擎剖析
查看>>
elasticsearch更改mapping(不停服务重建索引)
查看>>
作品第三课-----网页简易时钟
查看>>
Java复习:集合框架(一张图)
查看>>
online学习和offline学习
查看>>
win10安装多个mysql实例
查看>>