Page 1 of 1

Who can give me some information about PGS.

Posted: Sun Feb 08, 2015 12:22 am
by ljb
I am a greenhand.My English is poor.I hope somebody can understand what I mean
The function resolveSingleConstraintRowLowerLimit()(at btSequentialImpluseConstraintSolver.cpp) is PGS,But where can I find that member variable m_rhs is setted.
:( :( :( :(

Re: Who can give me some information about PGS.

Posted: Sun Feb 08, 2015 2:28 am
by ljb
I got it.setupContactConstraint() and solveGroupCacheFriendlySetup() do it.But I can not understand what function can do.Anybody can give me some information?
:( :( :( :(

Re: Who can give me some information about PGS.

Posted: Tue Feb 10, 2015 1:45 am
by Basroil
Simple answer is: You don't need any of that information to use Bullet, just follow the sample code and you can use th engine.

For more information on the engine development side, the papers section has a list of materials that will explain how PGS, multibody, and the MLCP solvers work, as well as how the physics problems are set up.

Re: Who can give me some information about PGS.

Posted: Tue Feb 17, 2015 8:52 am
by ljb
I'm transplant collision code on CPU to GPU.So I had to understand it.

Re: Who can give me some information about PGS.

Posted: Wed Feb 18, 2015 12:17 am
by Basroil
ljb wrote:I'm transplant collision code on CPU to GPU.So I had to understand it.
I suggest you take a look at the Bullet3 main on github, there's already work on exactly what you want.

As for collision code, the line you are quoting has nothing to do with collision (at least not directly), you need to look at the collision world source rather than dynamics world ones.

Re: Who can give me some information about PGS.

Posted: Thu Feb 19, 2015 1:06 pm
by ljb
thx,That is a greate information.I'm trying to study it.
:D :D :D :D :D

Re: Who can give me some information about PGS.

Posted: Thu Feb 19, 2015 2:07 pm
by ljb
I build the demo,but I can not feel any speedup. wrong?
无标题.png

Re: Who can give me some information about PGS.

Posted: Fri Feb 20, 2015 4:32 pm
by Erwin Coumans
You need a high-end desktop GPU with the right GPU/OpenCL drivers to see any speed up, for example an AMD Radeon 7970 or newer, or an NVIDIA GTX 680 or better. There is no expected benefit of trying to run the GPU accelerated physics on a low-end desktop GPU or a laptop GPU.

Thanks,
Erwin

Re: Who can give me some information about PGS.

Posted: Sun Feb 22, 2015 10:22 am
by ljb
1)Thanks a lot. :lol: :lol:
2)Anthor question:I find PGS in btSolveProjectedGaussSeidel.h.I can't trace code there! What should I do? :( :( :(

Re: Who can give me some information about PGS.

Posted: Fri Feb 27, 2015 11:53 pm
by Erwin Coumans
btSolveProjectedGaussSeidel is a simplified PGS solver that is used in combination with an MLCP solver.

See this snippet in Bullet/Demos/ForkLiftDemo how to use it:

if (useMCLPSolver)
{
//btDantzigSolver* mlcp = new btDantzigSolver();
btSolveProjectedGaussSeidel* mlcp = new btSolveProjectedGaussSeidel;
btMLCPSolver* sol = new btMLCPSolver(mlcp);
m_constraintSolver = sol;
} else
{
m_constraintSolver = new btSequentialImpulseConstraintSolver();
}

The btSequentialImpulseConstraintSolver is also PGS, but with many improvements and optimizations.

Re: Who can give me some information about PGS.

Posted: Mon Mar 02, 2015 8:44 am
by ljb
Thank a lot,I'll try it.
I have finished code on Projected Jacobi.