问题标签 [ogre3d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1825 浏览

math - 3D 世界到本地转换

尝试设置节点的本地位置以匹配给定的世界位置时,我真的很头疼。

我得到了一个解决方案,但是,AFAICS,它只考虑方向位置,但不考虑缩放

有问题的节点是node_parent的子节点;node_parent本地派生属性(方向、位置和缩放)以及它的完整矩阵变换是已知的。

所有位置都是3d 向量;方向是四元数;完整的变换是一个 4x4 矩阵。

有人可以帮我修改解决方案以支持节点层次结构中的缩放吗?

提前谢谢了,

账单

0 投票
1 回答
6212 浏览

c++ - 创建网格数组

我在 OGRE3D 游戏引擎中创建了一个网格数组,但该数组是通用的,我的数组技能非常基础,需要工作,所以我发布这个只是为了确保我做对了。

我假设上述内容将返回:

然后我可以将数组中的每个点分配给 OGRE3D 中的一个有效节点,以在 3D 视图中创建一个网格,这可行吗?只需要告诉我我做对了还是错了不需要 ogre3d 代码....

0 投票
3 回答
1607 浏览

c++ - Ogre 对异常的使用是一种使用它们的好方法吗?

到目前为止,我已经成功地完成了我的 C++ 游戏编程生涯,几乎从未接触过异常,但最近我一直在使用 Ogre 引擎开展一个项目,并且我正在努力学习。我在这里找到了很多关于 C++ 异常的一般用法的好问题和答案,但我想从这里获得一些关于 Ogre 的用法是否良好以及如何最好地使用它们的外部意见。

首先,引用 Ogre 自己的 Exception 类的文档:

OGRE 从不使用返回值来指示错误。相反,如果发生错误,则会引发异常,这是封装问题细节的对象。使用 OGRE 的应用程序应始终确保捕获异常,因此所有 OGRE 引擎函数都应发生在 try{} catch(Ogre::Exception& e) {} 块中。

真的吗?每个 Ogre 函数都可能抛出异常并被包裹在 try/catch 块中?目前,在我们使用它时,这是通过 main 中的 try/catch 来处理的,它将在退出之前显示一个带有异常描述的消息框。这对于调试来说可能有点尴尬,因为你没有得到堆栈跟踪,只有抛出错误的函数——更重要的是我们代码中调用 Ogre 函数的函数。如果它是 Ogre 代码中的断言,那么它将直接进入调试器中的代码,我将能够更容易地找出发生了什么——我不知道我是否遗漏了一些可以让我已经调试异常了吗?

我现在开始在我们的代码中添加更多的 try/catch 块,一般会考虑 Ogre 函数是否抛出异常是否重要。如果它会停止一切工作,那么让主 try/catch 处理它并退出程序。如果它不是很重要,那么在函数调用之后立即捕获它并让程序继续。最近的一个例子是为应用于实体的材质构建顶点/片段程序参数的向量 - 如果材质没有任何参数,那么它会抛出异常,我捕获并忽略它,因为它没有不需要添加到我的参数列表中。这似乎是一种合理的处理方式吗?非常感谢任何与 Ogre 合作的具体建议。

0 投票
1 回答
97 浏览

apache-flex - 有没有结合 Ogre3d 的 Hikari 和 BlazeDS 的方法?

我正在尝试将 swf 加载到 Ogre3d/Hikari 应用程序中,并且该 swf 使用 BlazeDS 与 Tomcat 服务器进行通信。swf 来自另一个在浏览器环境中使用的项目。因此,swf 从 Tomcat 提供给客户端的浏览器。似乎有两个主要问题。第一个是在与浏览器环境不同的沙盒类型中使用 swf 的沙盒问题。另一个问题似乎是设置 BlazeDS 消息代理和其他通信渠道和端点。就这两个问题而言,Hikari 应用程序似乎类似于 Adob​​e Air 应用程序,并且可以使用类似的方法。这看起来是一种合理的方法吗?有没有人有类似的经历?如果是这样,事情是如何配置的?

0 投票
4 回答
7070 浏览

c++ - 当类型可能改变时,如何最好地处理警告 c4305?

我同时使用了 Ogre 和 NxOgre,它们都有一个Realtypedef,它要么float取决于编译器标志,要么double取决于编译器标志。这导致我们的大多数编译器警告现在是:

例如,当使用 0.1 初始化变量时。通常我会使用 0.1f 但如果您将编译器标志更改为双精度,那么您会收到反向警告。我想最好选择一个并坚持下去,但如果可能的话,我想以一种适用于任何一种配置的方式编写这些。

一种解决方法是#pragma warning (disable : 4305)在它发生的文件中使用,我不知道是否还有其他更复杂的问题可以通过没有此警告来隐藏。我知道我也会在头文件中推送和弹出这些内容,以免它们最终传播到代码中。

另一种是根据准确度编译器标志创建一些宏,例如:

这将需要更改到目前为止完成的所有变量初始化,但至少它将是未来的证明。

任何偏好或我没有想到的东西?

0 投票
1 回答
107 浏览

c++ - Ogre3D 奇怪的行为

我在我的 Lubuntu 10.04 上用 LXDE 环境编译了 Ogre,当我尝试从 /bin 启动 ./SampleBrowser_d 时,我的窗口不完整......它没有背景,我无法点击接受,我无法选择可用列表中的 OpenGL..任何人都知道它是什么以及如何修复它?这是一些屏幕截图: 链接文本

有什么建议么?

0 投票
1 回答
1657 浏览

3d - 使用 3D 纹理切片作为 2D 纹理输入

我正在尝试使用 3D 纹理对 Ogre 做一些事情。我想通过逐个切片并重新计算颜色值来更新 3D 纹理。但是,在每个步骤中,我还需要以某种方式访问​​前一个切片以读取值。将切片设置为渲染目标很容易,但是是否可以将这样的切片作为 2D 纹理输入提供给着色器,或者我是否需要将其显式复制到单独的 2D 纹理中?

谢谢。

0 投票
1 回答
383 浏览

c++ - 编译包含 Ogre3D 的 DLL 在使用时会出现断言错误

我有一个正在构建的框架,并且正在编译成一个静态库以供其他项目使用。该库完美运行,没有问题。问题是使用该库的项目的链接时间很长,所以我想我会制作一个相同框架的 DLL 项目。我从小步骤开始,通过 Visual Studio 创建了一个 MFC DLL 项目。该项目具有以下标题:

这就是来源

正如你所看到的,我已经注释掉了 Ogre 包含的内容。当一个项目使用编译后的 DLL 并构造这个(OgreCore)类时,它工作得非常好。一旦取消注释其中一个 Ogre 包含并再次编译 DLL,使用 DLL 的项目现在会给出断言错误。完整的详细信息可以在 Ogre 论坛帖子中找到。我首先在那里发布了这个问题,但由于它不是一个真正的 Ogre 特定问题,我想我也会在这里尝试。食人魔帖子的链接是:

http://www.ogre3d.org/forums/viewtopic.php?f=2&t=58403

先感谢您

0 投票
3 回答
1741 浏览

c++ - 退出程序时抛出异常(Ogre3d)

当我退出程序时,我遇到了一个奇怪的异常。这从今天早上开始,我准备把头发拉出来。一旦我退出程序,Visual Studio 就会给出一个异常并在文件 crt0dat.c 的第 731 行停止(见附件截图)

我知道这没什么好继续的。我尝试了几种不同的方法:

  1. un 程序没有做任何事情,也就是说,根本没有初始化 Ogre Core。不会导致崩溃
  2. 运行程序,除创建 Ogre 根(与 Ogre 本身相关,与我的代码无关)之外的所有内容都注释掉,导致同样的崩溃
  3. 运行以下最基本的程序,仍然会导致崩溃。当我的程序完成运行时,在返回 0 后发生崩溃

由于我在 SVN 上拥有所有内容,因此我在笔记本电脑上运行了相同的项目,它运行时没有任何问题,并且退出时也没有任何问题。这让我相信我的视觉工作室在某个地方被破坏了。我卸载了 Visual Studio,然后重新安装了它,但问题仍然存在(当 VS 安装它时,它会遍布我的系统。无法包含它。有谁知道完全破坏 Visual Studio 安装的万无一失的方法?)。我的想法不多了,没有重新安装 Windows。我希望这里有人可以提供帮助。

调用栈:

崩溃屏幕截图:
链接文本

0 投票
2 回答
478 浏览

xna - 程序流程如何

我习惯了 XNA 之类的结构:

  1. 加载内容
  2. 更新

现在基于这 3 个主要方法,我的游戏对象继承自它们。在 XNA 中,作为非专业和非游戏程序员的我被迫在这些块中思考。那么添加一个 Sprite 基类,继承自 DrawableGameComponent。现在为游戏对象 Warrior 创建 WarriorSprite 类。

等等等等

我完全迷失在这种结构中,但我只想编写一个游戏,而不是一个引擎。每次我想向游戏中添加实体时,我都不想处理额外的普通渲染代码。除此之外,我从来没有习惯在任何教程中如何让两个对象交互......我的重点应该放在将游戏机制从游戏设计移植到代码上。

现在我找到了 Ogre(3D),我希望这个引擎能提供这个功能。wiki 无法真正回答我的问题。

问候,