标签: physics

动画系统的神经网络大小

我决定使用神经网络来创建我拥有的动画引擎的行为.神经网络为我拥有的每个身体部位提供3个vector3s和1个欧拉角.第一个vector3是位置,第二个是它的速度,第三个是它的角速度.欧拉角是身体部位的旋转.我有7个身体部位.这些数据类型中的每一个都有3个浮点数.7*4*3 = 84,所以我的神经网络有84个输入.输出映射到角色的肌肉.它们提供适用于每块肌肉的力量,其中有15种.

我同时运行15个网络10秒,通过计算最低能量使用,具有最小量的z和x运动,以及如果身体部位处于与其余部分相比正确的y位置来评定其适合度(hips.y> upperleg.y,upperleg.y> lowerleg.y等),然后通过遗传算法运行它们.我正在运行一个神经网络,每个隐藏层有168个神经元,有8个隐藏层.我试图让角色站直,不要走​​动太多.我跑了3000代,我甚至没有接近.

神经网络和遗传算法是本教程的 C#版本.我将交叉方法从一个点改为混合.

我有84个输入和15个输出.我的神经网络应该有多大?

animation physics machine-learning neural-network genetic-algorithm

8
推荐指数
1
解决办法
1058
查看次数

三维空间中的曲线拟合点

试图找到有助于我们通过一系列点画3D线的功能.

对于我们知道的每个点:日期和时间,纬度,经度,海拔高度,速度和标题.数据可能每10秒记录一次,我们希望能够猜测两者之间的点数并将粒度增加到1秒.从而在3D空间中创建虚拟飞行路径.

我已经发现了许多曲线拟合算法,这些算法将通过一系列点逼近一条直线,但它们不能保证这些点相交.它们也没有考虑速度和航向来确定物体到达下一个点所采用的最可能路径.

.net c# algorithm 3d physics

8
推荐指数
1
解决办法
5771
查看次数

对.Net 3D物理引擎的建议

我需要物理引擎来模拟服务器上的游戏世界.我用Google搜索了.Net物理引擎,它们都是在2006 - 2009年发布的.那么我可以使用任何好的物理引擎吗?

我需要的是发动机箱体,球体碰撞......

更新:对不起忘了提到我需要3d引擎

更新:如果有人需要托管物理引擎看看Jitter,它是纯粹的托管和来自JigLibX的开发人员

.net c# physics server-side collision-detection

8
推荐指数
1
解决办法
9900
查看次数

推荐jquery\js物理引擎

我正在建立一个基于网络的小游戏,使用html 5.我需要我的游戏按照一些简单的物理工作.你能从第一手推荐任何jquery\js物理引擎吗?

谢谢

javascript jquery html5 physics

8
推荐指数
1
解决办法
2695
查看次数

友谊没有继承 - 有哪些替代方案?

我已经写过/我正在编写一段物理分析代码,最初是为了我自己,现在希望由一小群物理学家使用和扩展.我们都不是C++大师.我已经整理了一个小框架,将"物理事件"数据抽象为由一系列工具操作的对象,这些工具可以根据分析要求轻松交换.

这创造了代码的两半:"物理分析"代码,它操纵事件对象并通过基础"工具"的衍生产生我们的结果; 以及附加输入文件的"结构"代码,将作业拆分为并行运行,根据某些脚本将工具链接到链中等.

问题在于:对于其他人来说,要使用代码,每个用户都应该能够遵循以任何方式修改事件数据的每一步.因此,(许多)额外的困难结构代码线可能是令人生畏的,除非它明显且明显地是物理学的外围.更糟糕的是,在太多细节上看它可能会给人们一些想法 - 我宁愿他们没有很好的理由不编辑结构代码 - 最重要的是他们不得引入任何影响物理的东西.

我希望能够:

  • A)以明显的方式演示结构代码不以任何方式编辑事件数据
  • B)一旦其他用户开始自己扩展代码就强制执行(我们都不是专家,物理总是第一位 - 翻译:任何没有用的东西都是公平的游戏,讨厌讨厌的黑客)

在我理想的场景中,事件数据将是私有的,派生的物理工具继承了Tool基类的访问权限.当然,实际上这是不允许的.我听说有充分的理由,但这不是问题.

不幸的是,在这种情况下,从基础(它是朋友)调用getter/setter的方法会产生比它解决的问题更多的问题 - 代码应该是干净的,易于遵循的,并且尽可能地连接到物理上.工具本身的实现(用户不需要成为C++的专家或程序的内部工作来创建工具).

鉴于我有一个值得信赖的基类,任何衍生品都会受到密切关注,是否有其他环形交叉口但经过良好测试的方式只允许访问这些衍生品?或者任何拒绝访问某些其他基础的衍生物的方法?


为了澄清情况,我有类似的东西

class Event
{
    // The event data (particle collections etc)
};

class Tool
{
    public:
        virtual bool apply(Event* ev) = 0;
};

class ExampleTool : public Tool
{
    public:
        bool apply(Event* ev)
        {
            // do something like loop over the electron collection
            // and throw away those will low energy
        }
};
Run Code Online (Sandbox Code Playgroud)

由于上述两个原因(A和B),理想情况是将对Event的内容的访问限制为仅这些工具.

感谢大家提出的解决方案.我认为,正如我所怀疑的那样,我所希望的完美解决方案是不可能的.dribeas的解决方案在任何其他设置中都是完美的,但它恰好在apply()函数中,代码需要尽可能清晰和简洁,因为我们基本上会花一整天时间编写/编辑apply()函数,并且还会需要了解每个人写的每一行.它与可读性和努力能力无关.我喜欢"无用"的预处理器解决方案.它并没有真正强制执行分离,但有人需要真正恶意破坏它.对于那些建议使用图书馆的人,我认为这肯定是一个很好的第一步,但并没有真正解决两个主要问题(因为我仍然需要提供源代码).

c++ inheritance physics analysis friend

8
推荐指数
1
解决办法
321
查看次数

重力模拟

我想模拟自由落体和地面碰撞(例如弹跳球).物体将处于真空状态 - 可以省略空气阻力.与地面的碰撞会导致一些能量损失,因此最终物体将停止移动.我使用JOGL渲染一个点,这是我的下落对象.重力是恒定的(-9.8 m/s ^ 2).

我找到了一个计算点的新位置的欧拉方法:

deltaTime = currentTime - previousTime;
vel += acc * deltaTime;
pos += vel * deltaTime;
Run Code Online (Sandbox Code Playgroud)

但我做错了什么.该点反弹几次然后向下移动(非常慢).

这是一个伪代码(初始pos =(0.0f,2.0f,0.0f),初始vel(0.0f,0.0f,0.0f),gravity = -9.8f):

display()
{
     calculateDeltaTime();
     velocity.y += gravity * deltaTime;
     pos.y += velocity.y * deltaTime;

     if(pos.y < -2.0f) //a collision with the ground
     {
        velocity.y = velocity.y * energyLoss * -1.0f;
     }

}
Run Code Online (Sandbox Code Playgroud)

获得逼真效果的最佳方法是什么?欧拉方法如何参考恒定加速度方程?

physics game-physics

8
推荐指数
1
解决办法
1992
查看次数

简单的Javascript物理引擎

是否有一个简单的JavaScript物理引擎可以处理一些简单的3D场景.

我知道Box2D的实现,但我认为不能做我需要的.从本质上讲,我想模拟球与洞相互作用时的行为(如投入高尔夫球).在哪里,根据速度,球可以围绕孔旋转等.

javascript physics

8
推荐指数
2
解决办法
4286
查看次数

使用mujoco-py包的MuJoCo物理库的Python绑定

我想使用MuJoCo(http://www.mujoco.org/),一个带有python绑定的高级物理模拟器(https://github.com/openai/mujoco-py).

我已经获得了我的MuJoCo许可文件mjkey.text,并相应地将所需的路径MUJOCO_PY_MJKEY_PATH,MUJOCO_PY_MJPRO_PATH添加到环境变量中.

MUJOCO_PY_MJPRO_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131
MUJOCO_PY_MJKEY_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131\bin
Run Code Online (Sandbox Code Playgroud)

但是,我想用以下简单代码导入libray,

import mujoco_py
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息.

C:\Dropbox\Python\Anaconda\python.exe
C:/Dropbox/PhD/Python/X/MujocoHelloWorld/test.py
Traceback (most recent call last):
  File "C:/Dropbox/PhD/Python/X/MujocoHelloWorld/test.py", line 1, in <module>
    import mujoco_py
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Dropbox\Python\Anaconda\lib\site-packages\mujoco_py-0.5.4-py3.5.egg\mujoco_py\__init__.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File …
Run Code Online (Sandbox Code Playgroud)

c++ python dll physics dllimport

8
推荐指数
1
解决办法
1773
查看次数

Farseer Physics奇怪的碰撞

我正在开始游戏,我正在使用Farseer作为物理引擎.

我已经设置了几个用作地形图块的框和一个用作播放器的框.这两者之间的碰撞非常奇怪,当它不是"直接"撞击时它们相交并滑动.

以下是发生了什么的GIF:http://i.imgur.com/HR0J0D3.gifv

以下是片段:

//Creating the body
PhysBody = BodyFactory.CreateRectangle(
    Transform.World.PhysWorld,
    ConvertUnits.ToSimUnits(Width * Transform.Scale),
    ConvertUnits.ToSimUnits(Height * Transform.Scale),
    5,
    ConvertUnits.ToSimUnits(Transform.Position.ToVector2()));

//The tiles are static, the player is not
PhysBody.BodyType = Static ? BodyType.Static : BodyType.Dynamic;

//Drawing the test rectangles
ShapeRenderer.Instance.DrawRectangle(
    sb,
    ConvertUnits.ToDisplayUnits(PhysBody.Position).ToVector2(),
    new Size2((int)(Width * Transform.Scale), (int)(Height * Transform.Scale)),
    Color.White);
Run Code Online (Sandbox Code Playgroud)

我不认为其余的很重要,我所做的就是创造一个9.8重力的世界.

我也尝试过不使用Transform.Scale并且在播放器下方只有一个框,问题仍然存在.

我正在使用的图形引擎是紫外线

c# physics farseer

8
推荐指数
0
解决办法
272
查看次数

如何使用重力沿弯曲路径制作动画

我正在尝试创建一个模拟球,其中一个球遵循运动路径,类似于:

https://bl.ocks.org/mbostock/1705868

然而,我不想使用补间,而是希望球的运动由重力和物体的速度决定 - 类似于过山车,就像这样:

https://www.myphysicslab.com/roller/roller-single-en.html

这是我到目前为止所做的,但是有一个小问题,过山车每一帧都会略微增加能量而不是失去能量:

https://jsbin.com/jidazom/edit?html,js,output

x

任何有关如何解决这个问题的建议将不胜感激!

javascript animation svg physics d3.js

8
推荐指数
1
解决办法
376
查看次数