C# 制作实时3d场景的最简单方法,有点像一个简单的游戏(用于模拟器可视化)

C# 制作实时3d场景的最简单方法,有点像一个简单的游戏(用于模拟器可视化),c#,java,python,opengl,3d,C#,Java,Python,Opengl,3d,我正在建造一个船舶模拟器,它将为某个特定海况下的原型船体设计生成准确的位置和方向值 在编程方面,我在MATLAB中有两个数组(向量),包含x、y、z、偏航、俯仰和横摇的位置和加速度值。由于MATLAB中的可视化有点粗糙,我计划在MATLAB中编写一个简单的服务器,使用套接字将这些值(200Hz)发送到另一个程序。sea被建模为一组顶点(想想正弦波上不同时间步的振幅快照) 所以我的问题是,在屏幕上制作3D船和纹理水的动画最简单的方法是什么 我只对图形引擎感兴趣。我不需要声音、物理、碰撞、界面(键盘

我正在建造一个船舶模拟器,它将为某个特定海况下的原型船体设计生成准确的位置和方向值

在编程方面,我在MATLAB中有两个数组(向量),包含x、y、z、偏航、俯仰和横摇的位置和加速度值。由于MATLAB中的可视化有点粗糙,我计划在MATLAB中编写一个简单的服务器,使用套接字将这些值(200Hz)发送到另一个程序。sea被建模为一组顶点(想想正弦波上不同时间步的振幅快照)

所以我的问题是,在屏幕上制作3D船和纹理水的动画最简单的方法是什么


我只对图形引擎感兴趣。我不需要声音、物理、碰撞、界面(键盘、操纵杆等)。它应该能够主要在Windows上运行,但如果它也能在Linux和Mac OS上运行(取决于所涉及的额外复杂性),那就太好了。

我发现OpenGL在过去很容易使用,或者如果你在Windows环境中,也有Direct3D。

不是专家,但很少有线索是这样的

  • ,可移植和集成,关于复杂性
  • 相关领域中发动机的比较(及其链接)
如果与低级别的API(如)相比,上述内容可能会被称为复杂和臃肿,但您必须定义您想要的是什么样的简单性

例如,“制作3D船和一些纹理水动画的最简单方法”可能意味着您可以直接在OpenGL API上编写一个干净的低级界面;但对于任何图形,尤其是3D,我确实认为不久之后你就会开始考虑灯光、相机运动、界面等等。。。然后你可能会希望有一个更丰富的环境

所以,问题还在于,你是否想要一些非常苗条的东西,然后处理所有类型的低级任务,或者一些可能包含比你需要的更多的东西,但是有很多可用的资源和快捷方式


现在,我的咆哮已经结束了——我相信您将能够找到一个动画的确切示例,该示例将在OpenGL中获取两个网格对象(海和船),并在任何像样的OpenGL教程中在屏幕上显示它们。

最简单的方法是使用PANDA3D。它使用python,非常完整。

有很多3D库可以使用;从你提出问题的措辞来看,我认为你在寻找轻量级和简单的东西;另一方面,您可能也在考虑可移植性、完整性和其他因素;因此,请确认您选择框架的标准是什么……就像您猜测的那样,主要标准是简单性。我以前从未做过任何3D编程,但我熟悉许多3D数学概念(坐标变换、变换矩阵等)。在可移植性方面,它只需要在Windows上运行,但在Linux上运行有多困难?就功能而言,我只需要能够渲染真实的水和一些纹理模型的东西。我在寻找纯粹的图形,不需要声音、物理或碰撞。如果你用Java和OpenGL编写,它应该非常接近linux和windows。panda3d是一个成熟的游戏引擎,不是吗?我只需要一些东西,使处理3d模型和改变视点变得容易,也许还有一些阴影和灯光效果。是的,Panda3d是一个游戏引擎,但从你自己的定义来看,这就是你需要的,除非你想自己重新编码所有东西(有趣但时间更长且容易出错)。去这个网站,读一点文档,在论坛上询问你的具体需求,你肯定会很快得到好的建议和原型。