繁体   English   中英

C#中的简单3D图形

[英]Simple 3D Graphics in C#

我当前正在开发一个需要进行可视化的应用程序,而我要做的最复杂的事情就是显示类似点的对象。

对于我而言,任何超出此范围的操作都是完全过大的,因为除了绘制点状对象外,我什么也不会做。

话虽这么说,对我的需求最简单的解决方案是什么?

最简单的方法可能是使用WPF 3D 这是一个保留模式的图形系统,因此,如果您没有很大的需求(即:特效着色器等),则可以非常容易地直接设置和使用。

否则,更复杂的3D系统(例如XNA )可能更合适。 这将需要更多的工作来设置,但可以给您更多的控制权。

我建议您看看C#的Microsoft XNA

将它们渲染为真实点还是球形? (在此情况下,您可以使用球体的可见大小作为参考来查看更接近的“点”。)在前一种情况下,我建议您自己简单地乘以适当的变换矩阵,即可将这些点投影到您的观察平面上,而不是使用完善的3D引擎(因为您不渲染任何三角形或执行照明/着色)

有关将3D投影到2D平面的一些理论背景,请参阅此Wiki文章 如果您使用XNA,则它具有Matrix帮助器函数,即使您没有将其用于任何实际渲染,该函数也可以为您生成适当的转换矩阵。 对于积分,问题变得非常琐碎,因为无需考虑任何法线。 您只需将组成的View Projection矩阵乘以每个点,剪切位于视锥范围之外(即,在视平面后面,太远或在视口的2d范围之外)的所有点,然后将点渲染为X,Y。 该计算是否会反馈每个点相对于您的观察平面的“深度”,因此您可以使用它适当地缩放或着色这些点,否则很难快速理解这些点的3d位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM