我在Ogre工作,但这是一个普遍的四元数问题.
我有一个对象,我最初应用了旋转四元数Q1.后来,我想让它好像我最初用不同的四元数Q2旋转对象.
如何计算将已经旋转了Q1的对象的四元数,并将其对齐,就像我所做的一样是将Q2应用于初始/默认方向?我当时正在寻找,但我不确定这是否仅适用于方向而非旋转?
我正在评估Bullet物理库中我正在使用C++和Ogre3D编写的3D空间游戏.通过从btMotionState派生并插入我的SceneNodes,我已经很好地集成了Ogre3D和Bullet,但是现在我在计算我应该传递给btRigidBody :: applyCentralImpulse和btRigidBody :: applyTorqueImpulse方法的值时遇到很多麻烦才能实现我正在寻找的结果.
当我按下键盘上的左或右键时,我希望太空飞船在本地Z轴上滚动.当我按UP或DOWN时,我希望它在本地X轴上倾斜.当我按A或Z时,我希望它在局部Z轴的方向上加速/减速.我可以在Ogre中使用一些四元数学并直接在SceneNode上应用translate/rotation来实现这一点,但我真的想使用force/torque方法在Bullet引擎中应用这些值,这样它将继续移动/俯仰/滚动即使在用户停止按键之后,摩擦也会作用在物体上以根据需要减慢速度.
那么,我如何计算为这两种脉冲方法提供的必要值,以确保脉冲基于身体的当前方向而不是使用世界的轴?
谢谢,马克
更新:
我能够计算出向前和向后运动所需的冲动,但我仍在努力解决如何重新定向偏航/俯仰/滚转值以便将它们与扭矩脉冲方法一起使用.这是我进行前进/后退运动的方式:
if (mKeyboard->isKeyDown(OIS::KC_A))
mBody->applyCentralImpulse(mBody->getWorldTransform().getBasis().getColumn(2) * 20 * time);
if (mKeyboard->isKeyDown(OIS::KC_Z))
mBody->applyCentralImpulse(mBody->getWorldTransform().getBasis().getColumn(2) * -20 * time);
Run Code Online (Sandbox Code Playgroud) 我能够在Ogre3D中找到CEF3的基本实现 - 但我希望Unity3D会有类似的东西.
我目前正在使用Awesomium,但是,我现在需要使用RTCPeerConnection(需要Chromium 29+).目前,Awesomium仅限于Chromium 18,目前尚不清楚需要花多长时间才能完成(不会屏住呼吸).
CEF是开源的,并且经常更新.
我会自己这样做,但我不知道从哪里开始.我希望:
拥有足够Unity经验的人已经创建了一个他们愿意与社区共享的CEF3包装器,或者
有人知道如何实现这一点,并且可以(希望彻底)解释
我受到了C++ 3D应用程序项目的挑战,该项目将使用3个显示器,每个显示器使用不同的相机进行渲染.
最近我了解了Ogre3D,但目前尚不清楚它是否支持将不同摄像头输出到不同的显示器/ GPU.
有没有人有类似安装程序和食人魔或其他引擎的经验?
几年前我参与了一些游戏编程.我开始使用Windows Xp,C++,Ogre3d,Visual Studio和Blender.我开始制作RTS,但后来发生了现实生活.
无论如何,我想回到它,我想知道是否有任何有价值的C++替代品,现在Ruby,Python和C#已经变得流行.
C++仍然是首选语言吗?
我现在正在运行Ubuntu所以我必须使用一些Ubuntu C++ IDE,C++和Ogre3d.
有人用过Ogre3d并转移到其他东西上吗?
编辑
目标:在PC上进行基于业余爱好的3D编程
到目前为止,我已经看到Ogre3d仍然被广泛使用.可能会看看python和http://www.panda3d.org/
干杯.
我使用Ogre3D作为图形引擎.
我手动创建一个网格,它工作正常,uvs是正确的,并设置为表示网格坐标(对于这个例子,网格是10 x 10)
我在顶点程序中什么都不做,并且有一个非常简单的片段程序.我已经包括了两个程序和材料文件来解释.
我的问题是,即使过滤设置为无,颜色似乎与我的原始图像不一样(这只是一个测试图像即时使用,因为我遇到了在食人魔中手动创建纹理的问题).事实证明,问题不是我在食人魔中的代码,而是更可能与材料文件或片段/顶点程序有关.
我还在左侧包含输出的屏幕截图,在右侧包含原始图像.片段着色器还在顶部绘制一个简单的网格,这样我就可以确保正确传递uv坐标.他们似乎是.
任何见解都会非常感激,因为我真的不确定我做错了什么.
材料文件:
// CG Vertex shader definition
vertex_program PlainTexture_VS cg
{
// Look in this source file for shader code
source GameObjStandard.cg
// Use this function for the vertex shader
entry_point main_plain_texture_vp
// Compile the shader to vs_1_1 format
profiles arbvp1
// This block saves us from manually setting parameters in code
default_params
{
// Ogre will put the worldviewproj into our 'worldViewProj' parameter for us.
param_named_auto worldViewProj worldviewproj_matrix
// Note that 'worldViewProj' …
Run Code Online (Sandbox Code Playgroud) 5年多以前,我正在玩DirectSound和Direct3D,我发现它真的令人兴奋,尽管用C++花了很多时间才能获得一些好的结果.那时我还是一名大学生.现在我主要拥有C#和PHP的企业开发经验,而且我是为了生活而做的.我们国家的游戏开发真的没有机会赚钱.每天越来越多我发现我错过了什么.所以我决定每天花一个小时左右来编程以获得乐趣.
所以我的想法是建立一个世界模拟.我想从一些简单的东西开始 - 一些类似人类的生物 - 就像模拟人生3一样,但更简单,基本的需求,基本的动画,最小的图形资产 - 我想它不会是一个城市,而只是一个大房子开始.我们的想法是拥有某种服务器应用程序,它将世界数据存储在MySQL数据库中,以及一些客户端应用程序 - 无体AI机器人模拟运动以及与世界和彼此的一些交互.但没有3D它就不会有趣.所以也有3D客户端 - 我可以进入虚拟世界并看到AI机器人的生活.当机器人进入可见区域时,它变成了材料 - 加载网格和动画,所以我可以看到它.当我离开时,机器人再次失去了他们的3D网状物体,但他们的虚拟生命仍在继续.
随着时间的推移,我希望能够像一些可扩展的脚本沙箱一样来试验各种AI算法等等.但我并不打算创建一个成熟的MMORPG:D
我已经寻找了许多我需要的东西(免费和开源),现在我必须做出选择:
OGRE3D + enet(或RakNet).旧的好C++.但是它不会让我慢下来,以至于我不再玩得开心吗?
CrystalSpace.正式不是游戏引擎,但非常接近.再次使用C++.
MOgre(用于.NET的OGRE3D包装器)+ lidgren(已在某些游戏项目中使用的网络库).好 - 我喜欢C#,它适合快速编程,也可以用于编写脚本.
XNA似乎只是一个框架,而不是引擎,所以真的有疑虑,我应该看看XNA游戏工作室:(
Panda3D - 具有正反馈的完整游戏引擎.我真的很想将所有工具集放在一个软件包中,它作为一个初学者友好的引擎有很好的评论...如果你了解Python.在C++方面,Panda3D几乎不存在文档.我有使用Python的经验,但我听说它很容易学习.如果它会很有趣又充满挑战,那么我想我会从另一种编程语言的经验中受益.
你会建议哪一个,不是因为高级功能或良好的平台支持,而是为了有趣,简单的工作流程和可扩展性,因此我可以创建和集成我需要的所有组件 - 服务器与数据库,AI机器人和3D客户申请?
什么是近和远剪裁3D图形的距离?
如果它有所作为,我正在使用Ogre 3D渲染引擎.
希望这能帮助很多在Windows上安装OGRE的人.我做了,我不希望任何其他人经历同样的折磨.
我试图通过解释比其他网站中解释的更多步骤和细节来使这种解释不同.其他人甚至没有考虑过记录的问题和解决方案.
我正在尝试构建第一个食人魔教程
我正在使用Debian Wheezy - beta 4,我安装了这些软件包:
我用这一行构建了教程:
g++ -I/usr/include/OGRE -I/usr/include/OIS -lOgreMain -lOIS -o main *.cpp
Run Code Online (Sandbox Code Playgroud)
我明白了:SdkTrays.h没有这样的文件或目录
我已经检查过,标题既不在/ usr/include中,也不在/ usr/local/include中(递归).
是否有可能在debian挤压下获得sdktrays?