问题标签 [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.
c++ - Bullet Physics - 在身体的局部空间中应用扭矩脉冲
我目前正在为我正在使用 C++ 和Ogre3D编写的 3D 太空游戏评估Bullet 物理库。通过从 btMotionState 派生并插入我的 SceneNodes,我已经很好地集成了 Ogre3D 和 Bullet,但是现在我在计算应该传递给 btRigidBody::applyCentralImpulse 和 btRigidBody::applyTorqueImpulse 方法以实现的值时遇到了很多麻烦我正在寻找的结果。
当我按下键盘上的 LEFT 或 RIGHT 键时,我希望飞船在本地 Z 轴上滚动。当我按下 UP 或 DOWN 时,我希望它在本地 X 轴上倾斜。当我按下 A 或 Z 时,我希望它在局部 Z 轴的方向上加速/减速。我可以使用一些四元数数学在 Ogre 中完美地实现这一点,并直接在 SceneNode 上应用平移/旋转,但我真的想使用力/扭矩方法在子弹引擎中应用这些值,以便它继续移动/俯仰/滚动即使在用户停止按键之后,摩擦力也会作用在对象上,使其在必要时减慢速度。
那么,我如何计算提供给这两种脉冲方法的必要值,以确保脉冲根据身体当前的方向而不是使用世界轴进行作用?
谢谢,马克
更新:
我能够计算出向前和向后运动所需的脉冲,但我仍在努力调整偏航/俯仰/滚动值的方向,以便将它们与扭矩脉冲法一起使用。这是我进行向前/向后运动的方式:
math - 两个四元数之间的“差异”
我在食人魔工作,但这是一个普遍的四元数问题。
我有一个对象,我最初对其应用旋转四元数 Q1。后来,我想让它就像我最初用不同的四元数 Q2 旋转对象一样。
如何计算四元数,该四元数将采用已经由 Q1 旋转的对象,并将其对齐,就好像我所做的只是将 Q2 应用于初始/默认方向一样?我正在查看(s)lerping,但我不确定这是否仅在方向而不是旋转上有效?
c++ - 多显示器 3D 应用程序
我遇到了一个 C++ 3D 应用程序项目,该项目将使用 3 台显示器,每台显示器都来自不同的相机。
最近我了解了 Ogre3D,但不清楚它是否支持将不同的相机输出到不同的显示器/GPU。
有没有人有类似的设置和食人魔或其他引擎的经验?
c++ - Ubuntu 上的 Ogre3D 基本框架问题
我一直在尝试学习使用 Ogre3D,并且已经到了想要开始比它附带的示例更严肃的阶段,所以我找到并复制了Basic Ogre Framework
我使用的是 Ubuntu 9.10,但是已经从 Ogre3D 网站编译了 Ogre 1.7,我使用的是带有 c++ 插件的 Netbeans 6.8 IDE。
Basic Ogre Framework Demo App 编译并运行,但进入主循环,检查渲染窗口是否处于活动状态,否则调用sleep(1000);
正在检查的 if 语句if(OgreFramework::getSingletonPtr()->m_pRenderWnd->isActive())
总是返回 false,尽管专门设置了m_pRenderWnd->setActive(true);
从阅读相关的论坛帖子来看,没有其他人遇到这个问题,但他们主要使用 Windows 或 Mac。
Ubuntu上的Ogre3D是否存在问题,或者netbeans生成的自动生成的makefile可能存在问题?
c++ - Ogre3d restoreConfig 导致应用程序在 Ubuntu 上挂起
使用 Ogre3D、CEGUI、OIS 为 Ubuntu 构建一个应用程序,现在所有这些都可以按预期编译和运行。运行基本应用程序后,我决定现在构建一个自定义配置文件,我可以存储图形设置(即分辨率、全屏等)以及我在应用程序中需要的其他可配置设置。
作为起点,我从每次启动时调用 mRoot->showConfigDialog() 更改为:
这是为了从存在的“ogre.cfg”文件中恢复配置,所以它确实做到了,但是在第一个场景创建时加载了天空盒纹理,只是坐在那里什么都不做。
由于这不是我想要的,所以我尝试手动设置,例如:
这些与我之前在 showConfigDialog() 函数中使用的“ogre.cfg”中的设置相匹配。然而,我在这个手动配置中遇到了同样的问题,在加载天空盒纹理时它只是停止了。
我无法弄清楚为什么这些更改对应用程序的运行方式有任何影响,并且由于 OIS 获取输入并将鼠标锁定在屏幕上,我在尝试使用 gdb 调试它时遇到了麻烦。
c++ - 无法修改嵌入在 C++ 中的 Python 代码中 time.time() 返回的值
我面临一个非常奇怪的问题。
以下代码:
在从 C++(嵌入)调用的 Python 代码中不起作用!
target_time 与 time.time() 具有相同的值,并且任何修改它的尝试都会在 pdb 控制台中保持该值不变...
替代文字 http://dl.dropbox.com/u/3545118/time_bug.png
它发生在我在 Ogre3D 图形引擎中调用 root.initialise() 之后,但仅在使用 Direct3D 时发生,而不是在使用 OpenGL 时。
所以这可能与Direct3D有关......
qt - 在 Qt 中集成 OGRE 1.7
我需要在 Qt 4 中集成 Ogre 3d。我发现了一些不幸过时的代码和建议。我喜欢这个教程
http://irmatden.developpez.com/tutoriels/qt/integration-ogre-qt/
它适用于 Ogre 1.4.9 (Eihorn),但不适用于最新版本 1.7.0。使用最近的应用程序编译应用程序会导致链接器错误
什么可能导致这种情况,我该如何解决?
windows - 如何在 Ogre 中获得无窗口应用程序?
我正在尝试创建一个无窗口的 Ogre 应用程序,但该应用程序似乎完全忽略了 RenderWindow::setVisible(false) 方法。有没有办法做到这一点?
谢谢托马索_
c++ - 启用 Direct3D 特定功能(透明度 AA)
我正在尝试在我的 Ogre-Direct3D 应用程序中启用透明抗锯齿,但它不起作用。
此方法取自NVidia 的技术报告。
我可以通过 NVIDIA 控制面板手动启用透明度 AA,但我当然不能要求我的用户这样做。有人有什么想法吗?
感谢您的时间,
账单