我正在寻找一些代码示例(优选C#)或简单的.NET函数库,廉价或免费的,我可以使用变换3D东西放进它的2D透视投影,给出指定的摄像机位置等透视投影,不使用WPF或DirectX或XNA或OpenGL或游戏引擎的
我找啊找,但一切我觉得好像利用一个主要的图形框架或非常装置 - 面向或两者兼而有之。我想要的东西是纯软件和独立于设备,并将与.Net 2一起工作。
但我确实需要使用相机视图进行真实透视投影,而不仅仅是一些使图像倾斜的2D图像转换,因此看起来有点透视。
编辑:
感谢那些已经回答。就像我说的那样,我已经花了很多时间搜索,所以我没有感到惊讶,至于答案(到目前为止)是因为我正在寻找一些不存在的东西。
在回答问题时,为什么我要卷入和一些主要包过敏,原因仅仅是“保持简单”规则。对我来说,我想要做的是图形处理的一个点点,我不能让我的头周围不必去熟悉与实现10000的功能,以使一个巨大的多功能包装的想法,我可以做我的一个小功能。
编辑2 - 大多为Miky:
以下是伪编程理念的散漫位再试一次证明我的愿望,避免卷入任何大型和复杂的包时,我要的是一个非常特殊的功能。不要浪费你的时间阅读这个,除非你真的没有更好的办法......
Miky指出,正确地说,.Net框架有一个巨大的功能,但我选择学习如何使用它甚至尽管我永远不会使用这些功能中1%的1%。是的,但我正在使用其中的数百个,这使得这一切都值得。 (单独的内存管理是死的功能。)
我也使用Developer速成包的WinForms,它也含有的,我永远不会使用的功能成千上万。但我确实使用功能区菜单和停靠面板,网格和树视图以及其他几十个功能,可能有一百个或更多功能,这使得它们都值得。
我也为WinForms产品使用MindFusion图表,它包含了数百个我永远不会使用的函数,但我确实使用了支持创建组织图和布局图以及移动节点并链接它们的函数在一起并重新格式化图表并放大和缩小和撤消...也许我使用了几十个函数,这使得它值得。
因此,我在这里是一个包含170,000行代码的程序,它高度依赖于.Net Framework和Developer Express,并且依赖于MindFusion,现在我想做一点3D透视渲染。事实上,它甚至不是真正的3D - 我想要做的是显示一个2D图像(平面图),如从斜角看到的。我想堆楼层平面图另一个之上代表一个透明的多层建筑,也许夸张间布局规划的间距,并允许用户指定他/她想要看的伪建筑从一个角或face-在或另一角落,以及相机的高度。
就是这样。我认为我需要的是一种或两种C#方法,这些方法可让我呈现这些2D平面布置图在空间中漂浮,就好像它们是3D一样,因为它们相对于摄像机倾斜,并且可以在之间移动摄像机。而已。
无论对错,我都深信,如果我开始涉足不得不学习一个主要的3D宇宙创建包或者面向设备/性能的图形系统,那么我最终会使用比这个特性更多的时间价值。我绝对不想用兆兆字节的模块膨胀我的程序的运行时间占用空间,这些模块永远不会被使用。
但我很欣赏这个问题所收到的所有建议和关注。
因此,你基本上寻找的是一个不是DirectX,XNA或OpenGL或任何游戏引擎的3D绘图库。为什么不是上面列出的那些?顺便说一句,我怀疑是否存在.NET。如果你能找到一个,它可能会被写入非托管代码(想想C/C++)。 – 2013-03-21 20:32:49
您需要的关键字是“C#软件渲染器”。由于您只是在寻找软件,“C#射线追踪器”可能也适合您的需求。 – comingstorm 2013-03-21 22:31:50
另外,不幸的是,任何一种渲染都会带来相当大的复杂性。真正的透视投影本身非常简单。然而,加载/生成/表示3D对象及其视觉外观也是必要的,并且比投影部分复杂得多... – comingstorm 2013-03-21 22:39:24