问题标签 [ogre]

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 回答
342 浏览

c# - C# 接口中的 IEnumerable 或 List 属性

我正在尝试在 C# 中设计一个以后在 C++ CLI 中使用的接口。

实现 C# 接口的 C++ CLI 类需要有一个可以迭代的类似列表的属性。这个类实际上是一个原生的包装器(如果你想要完整的细节,它包含一个指向 Ogre RenderWindow 对象的指针,该对象有一个 Viewports 列表,每个 Viewport 项目都可以通过一个名为 getViewport(int index) 的 RenderWindow 属性轻松访问) .

目标是在接口和该接口的 C++ CLI 实现中拥有一个属性,以便它可以与for each构造一起使用。最干净的方法是什么?

讨论项目的一些片段:

C#接口

和 C++ CLI 实现者

0 投票
1 回答
674 浏览

export - Blender:导出为 Ogre 网格时导出错误根骨骼偏移

我最近开始使用 Blender。我按照不同的教程创建了一个带有骨骼的角色。但是当我尝试将它导出为 Ogre 网格时,我得到了根骨骼具有位置和旋转偏移的错误。

我尝试了许多解决方案,例如 ctrl+a->location、重置位置、将位置和旋转设置为 0,0,0。但似乎没有任何效果。由于我无法使用动画导出,我尝试在没有任何移动的情况下导出模型。但我仍然遇到同样的错误。我正在使用搅拌机 2.62(我从 2.63 更改,因为它给出了错误,比如缺少面孔..)。任何建议表示赞赏。

0 投票
1 回答
541 浏览

qt - 获取 QDragEnterEvent 的鼠标位置

如下图所示,我想在将 QListWidgetItem 拖放到画布时获取画布上的鼠标位置,此鼠标位置将有助于我获取将项目放置在其上的对象。

更多解释:拖放将在我的画布类中,我想检查拖放是否来自QListWidgetItems,如果是,它将获取当前鼠标位置。

将 QListWidgetItem 拖到 Ogre 画布上

0 投票
3 回答
294 浏览

c++ - 食人魔投影仪通过物体发光

在 Ogre 中,我将贴花投影到球体上。然而,贴花直接穿过球体并将另一个贴花投射到对面!我该如何阻止它?

恐怕以下答案都不起作用。我已经尝试了所有阴影设置并探索了搅拌机的纹理设置,但似乎没有任何效果。贴花只是渲染两面!它甚至发生在 Ogre 教程 6 中!任何可能的建议表示赞赏!

注意:我正在编辑别人的代码,只是发现它不是网格,球体是在代码中创建的:O sowwy :(

0 投票
1 回答
2337 浏览

c++ - 我在这个 CG 程序上做错了吗?

我使用 Ogre3D 作为图形引擎。

我手动创建了一个工作正常的网格,uvs 是正确的并且设置为表示网格坐标(对于这个例子,网格是 10 x 10)

我在顶点程序中什么都不做,并且有一个非常简单的片段程序。我已经包含了两个程序和材料文件来解释。

我的问题是,即使将过滤设置为无,颜色似乎也与我的原始图像不同(这只是我使用的测试图像,因为我在食人魔中手动创建纹理时遇到问题)。事实证明,问题不在于我在 ogre 中的代码,而更可能与材质文件或片段/顶点程序有关。

我还包括左侧输出的屏幕截图和右侧的原始图像。片段着色器还在顶部绘制了一个简单的网格,因此我可以确保正确传递 uv 坐标。他们似乎是。

在此处输入图像描述

任何见解都将不胜感激,因为我真的不确定我做错了什么。

材料文件:

CG文件:

0 投票
1 回答
1191 浏览

ubuntu - 试图在 ubuntu 下的 code::blocks 中运行 ogre 项目

我试图让食人魔在 QT Creator 中工作,但遇到了问题。所以我决定尝试 code::blocks 模板项目,但我不断收到这些错误:

||=== 食人魔,调试 ===|

ld|| 找不到 -lOgreMain_d|

ld||找不到 -lOIS_d|

||=== 构建完成:2 个错误,0 个警告 ===|

似乎很明显它找不到 ogre 库,所以我在库搜索路径中添加了“/lib/x86_64-linux-gnu”,因为这是 ogre 主 .so 文件所在的位置。但是,它仍然无法找到它。我知道我只是愚蠢,但请可怜我。另外,在您问我是否安装了库之前。

0 投票
1 回答
1056 浏览

3d - 在 jmonkeyengine 中为 OGre 3D 模型启用材质和纹理?

我从 WorldForge 下载了模型,我可以将地精的网格引入我的场景,但纹理和材质不会渲染:

在此处输入图像描述

我使用eclipse,添加的文件如下所示:

在此处输入图像描述

我在代码中添加妖精的方式是这样的

你能帮我如何改进地精吗?文件中有几个纹理和材质定义,但我的场景似乎只加载了 goblin.mesh.xml。

任何帮助是极大的赞赏。

0 投票
1 回答
1227 浏览

blender - 将Ogre从Blender导出到jmonkeyengine的正确方法?

我正在学习 Jmonkeyengine 并且我仍然处于与我询问加载模型的问题相同的阶段

在 jmonkeyengine 中为 OGre 3D 模型启用材质和纹理?

现在我更多地研究了 Blender,现在至少我可以让基本用例工作,从 Blender 导出到 Ogre 3D,然后将其加载到 jmonkeyengine 中。但是对于更高级的带有纹理的模型,它就行不通了。

我正在尝试将 Ogre 3D 加载到 jmonkeyengine 中,但我认为无法转换为 Ogre 格式。我可以在 Blender 中打开模型,但是当我尝试导出它时,我只能得到一个 .scene 文件,没有 .mesh.xml

你能告诉我我做错了什么吗?

例如,在 Blender 中打开此模式l 并将其导出到 Ogre 对我不起作用。

0 投票
1 回答
1963 浏览

java - 如何渲染从 Blender 导入的 3D 外星人?

尝试渲染在 Blender 中完成的基本外星人时,我得到了好坏参半的结果:

在此处输入图像描述

我导出到 Ogre 3D 并在 Eclipse 中加载它:

在此处输入图像描述

然后当我在我的代码中加载它并尝试渲染它时,材质不会渲染:

在此处输入图像描述

你能告诉我我必须做什么才能在我的场景中实现完整的外星人吗?我在 Jmonkeyengine 中使用的代码是

更新

我从导出中得到了这样的材料文件:

此材质代码实际上会在场景中生成材质,但它不是来自搅拌机的材质:

model3.setMaterial( new Material(assetManager,
"Common/MatDefs/Misc/Unshaded.j3md") );

结果:

在此处输入图像描述

但是,在不定义材料的情况下加载大象的 3D 模型确实有效:

上面的代码正确地渲染了大象,那么为什么我不能为外星人导出这样的网格呢?我试图明确加载材料,但它不适合我:

上面生成了一个异常,我真的不知道我正在加载什么材质文件,以及导出生成的两个或三个其他材质文件如何处理:

更新

以这种方式加载其他模型是有效的:

我在我的游戏中找到了模型,它们看起来还不错,巨魔和太空人原本都是 .blend 文件。 在此处输入图像描述

现在,当我完成它并且正在加载材料时,它会好得多。外星人现在唯一剩下的问题是头上的洞,这里也得到了回答。

在此处输入图像描述

0 投票
1 回答
976 浏览

boost - Boost 1.50 CMake 2.8 和 Ogre 1.8 - win64 - 动态链接

我已经构建了 Ogre 3d 引擎(线程和 date_time)所需的动态提升库。我的 boost 目录位于 C:\boost 中,lib 位于 C:\boost\lib 中,并且包含在 C:\boost(\boost) 中,这是标准要求的。

如果您熟悉 CMake 和 Ogre(因为这是从源代码构建任何 Ogre 存储库克隆的最简单方法),您就会知道没有什么需要指定的了。在我的情况下这不是真的:Cmake 总是报告它找不到提升。只有当我尝试从他们的存储库构建 Ogre 1.8 版本时才会发生这种情况。当我使用 Ogre 2.0 实验性不稳定时(在我写这个问题的时候),成功找到了 boost,它的线程和日期时间组件也是如此。

有没有人有任何想法?最好是,有没有人尝试过以这种方式构建 Ogre 1.8 源代码?

我确实尝试了几乎所有的东西(甚至是命令行 cmake),但没有积极的结果。

我在 Ogre 论坛上几乎两次问过这个问题,但这些来源都没有解决 Ogre 稳定版本的问题。

是什么让 Cmake 在构建一个版本而不是另一个版本时如此出轨?我如何至少在 CMake 中检查 boost 的存在(而不创建构建解决方案或其他任何东西)?

必须有一个简单的命令行标志或一个简单的脚本才能使用 cmake 运行,但除了FindBoost.cmake文件之外,没有其他真正有用的东西(而且那个文件太大而无法快速浏览)。

更新 使用sakra的建议,我看到提升被认可:

但是尽管本节确实显示了 boost 应该在的地方,但是 thread 和 date_time 库对 CMake 是不可见的。

Boost_USE_STATIC_LIBS标志设置为 OFF/FALSE,以防万一。

使用--find -package cmake 命令行参数更新:

最终,cmake 找不到所需的组件。可以检查属于 boost 安装的特定库吗?