Score
0
Watch 2 Star 6 Fork 1

PhysIKATeam / PhysIKAC/C++GPL-2.0

Join us
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
PhysIKA: Physics-based Interactive Kinematics Architecture. 物理仿真,流体、形变体、碎裂、SPH、Peridynamics spread retract

  • C++ 76.3%
  • C 14.5%
  • RPC 7.1%
  • Cuda 1.4%
  • Objective-C 0.3%
  • Other 0.4%
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

master: Build Status dev: Build Status

介绍

PhysIKA是一个基于节点架构的开源实时物理仿真引擎. 其支持包括流体、形变体、塑性材料及碎裂在内的多种复杂时变现象的仿真。 PhysIKA具备高度模块化,也可用于辅助研发人员开发更先进的物理仿真算法。

入门

以下步骤展示了如何利用PhysIKA创建一个简单的弹性体。

预装

  • CUDA 9.0 +
  • CMake 3.12 +
  • 编译器:Windows平台推荐用Visual studio 2015 + ;Linux推荐用gcc。

安装

  • 下载源码;
  • 运行 cmake,并设置"Where is the source code"和"Where to build the binaries";
  • 点击 Configure;
  • 成功之后点击 Generate.

运行示例

以下示例代码展示了如何利用少于30行代码创建一只弹性的兔子.

#include <iostream>
#include "GUI/GlutGUI/GLApp.h"
#include "Framework/Framework/SceneGraph.h"
#include "Dynamics/ParticleSystem/ParticleElasticBody.h"
#include "Dynamics/ParticleSystem/StaticBoundary.h"

using namespace Physika;

int main()
{
	SceneGraph& scene = SceneGraph::getInstance();

	std::shared_ptr<StaticBoundary<DataType3f>> root = scene.createNewScene<StaticBoundary<DataType3f>>();
	root->loadCube(Vector3f(0), Vector3f(1), true);

	std::shared_ptr<ParticleElasticBody<DataType3f>> bunny = std::make_shared<ParticleElasticBody<DataType3f>>();
	root->addParticleSystem(bunny);
	bunny->getRenderModule()->setColor(Vector3f(0, 1, 1));
	bunny->setMass(1.0);
	bunny->loadParticles("../Media/bunny/bunny_points.obj");
	bunny->loadSurface("../Media/bunny/bunny_mesh.obj");
	bunny->translate(Vector3f(0.5, 0.2, 0.5));
	bunny->setVisible(false);

	GLApp window;
	window.createWindow(1024, 768);

	window.mainLoop();

	return 0;
}

下图展示了运行效果图:

贡献者

现开发人员:

  • 何小伟 - 中科院软件所
  • 徐力有 - 北京大学
  • 陈晓松 - 清华大学

前开发人员:

  • 陈伟
  • 朱飞
  • 杨升
  • 张天翔

License

本项目遵循 GNU 协议 - 更多细节请参照 LICENSE

Comments ( 0 )

Sign in for post a comment

C/C++
1
https://gitee.com/PhysikaTeam/PhysIKA.git
git@gitee.com:PhysikaTeam/PhysIKA.git
PhysikaTeam
PhysIKA
PhysIKA
master

Help Search

220309 7019f5b6 1899542 220318 4015cbb9 1899542