我正在寻找一些代码示例(最好是 C#)或简单的 .Net 函数库,便宜或免费,我可以使用它来将 3D 事物转换为它的 2D 透视投影,给定指定的相机位置等。
我进行了搜索和搜索,但我发现的所有内容似乎都使用了主要的图形框架或非常面向设备,或两者兼而有之。我想要一些纯软件和独立于设备的东西,并且可以与 .Net 2 一起使用。
但我确实想要带有相机视图的真实透视投影,而不仅仅是一些扭曲图像的 2D 图像转换,因此它看起来有点透视。
编辑:
感谢那些已经回答的人。就像我说的那样,我已经花了很多时间搜索,所以我并不感到惊讶(到目前为止)答案是我正在寻找不存在的东西。
在回答有关我为什么对参与某些主要软件包过敏的问题时,原因很简单,就是“保持简单”规则。对我来说,我想做的是一点点图形操作,我无法理解必须熟悉一个实现 10,000 多个功能的大型多功能包的想法,以便我可以做我的一个小功能。
编辑 2 - 主要用于 Miky:
以下是伪程序员哲学的一些杂乱无章的尝试,以证明我希望避免参与任何大型而复杂的程序包,而我想要的只是一个非常具体的功能。不要浪费时间阅读这篇文章,除非你真的无事可做......
Miky 正确地指出,.Net 框架有无数的功能,但我选择学习如何使用它,即使我永远不会使用其中 1% 的功能的 1%。是的,但我正在使用其中的数百个,这一切都值得。(单独的内存管理是一个死的功能。)
我还在为 WinForms 使用 Developer Express 包,它还包含成千上万个我永远不会使用的函数。但我确实使用了功能区菜单、停靠面板、网格和树视图以及许多其他功能,可能有一百个或更多,这一切都值得。
我还在为 WinForms 产品使用 MindFusion 图表,它包含数百个我永远不会使用的功能,但我确实使用了支持创建组织结构图和平面图以及移动节点并将它们链接在一起并重新格式化的功能图表、放大和缩小以及撤消……也许我正在使用几十个功能,这一切都值得。
所以这里我有一个包含 170,000 行代码并且高度依赖 .Net Framework 和 Developer Express 并且在某种程度上依赖于 MindFusion 的程序,现在我想做一点点 3D 透视渲染。事实上,它甚至不是真正的 3D -我想做的是显示从斜角看到的 2D 图像(平面图)。我想将平面图堆叠在一起以代表一栋透明的多层建筑,可能具有夸大的平面图间距,并允许用户指定他/她是否想从一个角落或正面看伪建筑-在或另一个角落,以及相机的高度。
而已。我认为我需要的是一两个 C# 方法,它们可以让我渲染这些漂浮在空间中的 2D 平面图,就好像它们是 3D 一样,因为它们相对于相机倾斜,并且可以移动相机。而已。
不管对错,我相信如果我开始学习一个主要的 3D 宇宙创建包或一个面向设备/性能的图形系统,那么我最终会花费比这个功能更多的时间。而且我绝对不想用永远不会使用的兆字节模块来膨胀我的程序的运行时占用空间。
但我非常感谢这个问题收到的所有建议和关注。