适合简单游戏的易于使用的 3D 图形引擎? [关闭]

2024-01-14

那里有大量的 3D 图形引擎列表,但我的需求有点限制,我无法自己决定一个。

我即将开始研究一个相当简单的(C++)真实模拟太阳系中航天器运动的游戏。正如你可能猜到的那样,所需的图形非常基本:

  • 行星只是带有纹理的球体;
  • 航天器很少或没有运动部件(仅旋转和平移);
  • 我可能需要一些灯光/动画效果才能使它漂亮。

Celestia http://www.shatters.net/celestia/gallery.html在美学上与我的想法非常接近。

现在的问题是,到目前为止我只使用 C++ 进行科学模拟,而且我已经没有经验一般而言,在图形界面和游戏中。 另外,我不想花几个月的时间来学习如何使用复杂的引擎。

我的问题是:哪种引擎易于学习和使用,同时仍能生成漂亮的图形?我正在寻找最好的平衡。

据我所知,最受推荐的 3 个 OSS 引擎是 Ogre3D、Irrlicht 和 Crystal Space 3D。通过比较几个 youtube 视频,Crystal Space 的图形看起来最好,但使用起来显然有点乱。他们说 Irrlicht 更容易,但对我来说,它在图形结果方面看起来也较差。 Ogre3D看起来不错,但我不知道它对初学者有多友好。

我非常感谢对此的建议!


I like Panda3D http://www.panda3d.org/用于这种简单场景的快速渲染。它具有 C++ 和 Python API,并提供许多有用的实用程序类型(动画、简单的碰撞检测等),这将使编写游戏的任务变得更容易。

渲染图形的审美吸引力在很大程度上是您自己的艺术品质的一个因素;该引擎仅显示您提供给它的内容,并且各种开源引擎之间的功能列表(着色器、场景管理等)相似。我不认为 YouTube 视频是比较的好方法。

您应该根据您个人喜欢使用的内容做出决定,因为您花在让更复杂/更困难的引擎完成您想要的事情上的时间可能会更好地花在改进游戏上。

Kerrek 是正确的,因为他们都不是真正的easy to use.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适合简单游戏的易于使用的 3D 图形引擎? [关闭] 的相关文章

  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我

随机推荐

  • “org.apache.cxf.jaxrs.bus.providers”不工作

    我正在使用 我想保留一些常见的东西 例如 JSON 提供程序 验证拦截器 使用 cxf 总线的异常处理 下面是我的应用程序上下文
  • AppleScript -> 激活不可编写脚本的应用程序的窗口

    我打开了2个 Finder 窗口A和B A在前面 B在下面 以下代码片段将B带到最前面 tell application Finder activate activate window 2 end tell 但对于不支持脚本的应用程序 刚才
  • 谷歌云机器学习错误

    请帮我 我无法解决这个问题 错误 gcloud beta ml models versions create FAILED PRECONDITION 字段 version deployment uri 错误 模型目录 gs valued a
  • PhoneGap 地理定位在 iOS10 中被阻止

    我的 Phonegap 应用程序利用 Cordova 3 8 webviews W3C Geolocation API 然而 自从从 iOS 9 x 升级到 iOS 10 测试版 以来 使用 navigator geolocation ge
  • Laravel 5.7 电子邮件验证抛出 403

    我在我正在开发的 Laravel 5 7 项目中实现了电子邮件验证 我收到了电子邮件 但每当我单击确认按钮甚至电子邮件中提供的 URL 时 都会收到 403 禁止错误 我已经搜索了多种解决方案 但未能找到解决此问题的方法 指向此错误的唯一合
  • 编辑一个单元格时,Swift tableview 会更改随机单元格的值

    我有一个很长的文本字段列表 所以我使用 tableView 这就是屏 幕的样子 https i stack imgur com GqpHN png 当我在其中一个单元格的文本字段中插入一些文本并向下滚动时 其他一些单元格会获得相同的文本字段
  • 将文本/标签添加到 D3 力定向图中的链接上

    我一直在研究修改后的力定向图 并且在将文本 标签添加到链接上时遇到一些问题 其中链接与节点未正确对齐 如何修复它 如何向 SVG 文本元素添加事件侦听器 添加 on dblclick function d 就是不行 这是代码片段
  • 如何动态计算 UILabel 高度[重复]

    这个问题在这里已经有答案了 我有以下代码 label numberOfLines 0 allows label to have as many lines as needed label text some long text label
  • 基于 SSL 的 CFHTTP

    我正在尝试使用 ColdFusion 通过 SSL 从服务器检索文件CFHTTP标记没有成功 我们的环境是使用服务器配置的Linux 使用的密钥库位于cf root runtime jre lib security cacerts 我从目标
  • 如何在Flask中实现基于角色的访问控制?

    是否有任何积极维护的插件可以帮助我创建具有基于角色的访问控制的 Flask 应用程序 例如管理员角色 会计角色 人力资源角色 Flask User看起来不错 但这些讨论表明维护者已经走了 Flask Login needs Flask Se
  • lambda 捕获的生命周期

    给出以下程序 include
  • 找不到分段用户的资源 - 应用程序令牌

    我能够进行身份验证并获取应用程序令牌以使用 Microsoft Graph API 我已设置所有委派和管理权限来访问用户 我还使用图形浏览器来验证我需要什么权限 https developer microsoft com en us gra
  • IIS 7.5 自定义 404 错误页面不适用于 Web 根索引/默认

    我使用 IIS 7 5 创建了一个自定义 404 和 403 14 错误页面 如果未找到静态文件 该页面将显示数据库中的内容 换句话说 如果我浏览到http mysite com test http mysite com test 如果在该
  • 当应用程序运行时,如何在android中以编程方式关闭通知?

    我正在尝试开发一个android我正在其中实现聊天功能的应用程序 但当我收到消息时 它会发出通知声音 用户使用应用程序时如何停止通知以编程方式 private void ChatNotifications String uid String
  • 引导多选搜索从数据库获取值

    我正在使用引导多选 https davidstutz github io bootstrap multiselect 在我的项目中 在搜索中我试图通过以下方式获取数据库值ajax请求 但它没有附加 这是我的代码 example gettin
  • 如何解析包含多个文档的 YAML 文件?

    这是我的解析代码 import yaml def yaml as python val Convert YAML to dict try return yaml load all val except yaml YAMLError as e
  • Locust:如何让 Locust 运行特定的时间

    官方的蝗虫文档 http docs locust io en latest 讲述如何编写无限期运行的简单 Locust 任务 无法找到如何运行持续特定时间的负载 以便测试在指定的时间间隔后自动停止 我不需要从网络界面获得它 命令行 代码选项
  • Git:执行提交后,显示上次推送到每个远程的日期

    我想要一个简单的 git 提交后操作 打印上次将更改推送到每个远程的日期 这样做的动机是简单地提醒您的存储库可能会变得不同步 或者很好地提醒您将更改备份到远程裸存储库 这是否存在 如果没有关于如何做到这一点的快速建议 如果它不存在 我最初的
  • aurelia 中的自定义属性不起作用?

    我正在学习 Aurelia 的工作原理 并且正在尝试让一个简单的自定义属性正常工作 它所做的只是根据某些值的变化来改变 div 文本的颜色 我有一个 div 其中包含 high bind changeColor 在我的属性中我有 impor
  • 适合简单游戏的易于使用的 3D 图形引擎? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi