irrBP - An Irrlicht - Bullet Physics Wrapper

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by zerochen »

and what is with irrBP and your project settings?
mubashar
Posts: 63
Joined: Wed Sep 07, 2011 7:20 pm

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by mubashar »

@zerochan can you please explicitly explain the steps how can i compile IrrBP on Visual Studio 8 And Windows 7
When it's all over, it's not who you were. It's whether you made a difference
Zurzaza
Posts: 153
Joined: Fri Mar 26, 2010 9:41 pm
Location: Filo (FE), Italy
Contact:

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Zurzaza »

You are using different runtime libraries in your project.
Try to set the same library for bullet and irrbp, than you (can) need to recompile irrbp because the library has been compiled for vs2005.
Please also try to compile bullet and irrbp before your project. If irrbp compiles properly, the problem is in your program.

Give me a feedback when you tried that.
irrBP - an Irrlicht - Bullet Physics Wrapper.
The only irrlicht-physics wrapper that uses multithread technology.
Kamac
Posts: 6
Joined: Sat Jan 14, 2012 8:54 pm

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Kamac »

Couldn't you please compile that library for MSVC 2010? I actually managed to do it, but now i am getting lots of errors when i try to run my program. Eg.

Code: Select all

IrrBPLib.lib(CIrrBPManager.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPHingeConstraint.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPConvexHullBody.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPBoxBody.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPCylinderBody.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPConeBody.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPTimeCallBackAnimator.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPSlideConstraint.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPP2PConstraint.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPCollisionCallbackAnimator.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPConeTwistConstraint.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>IrrBPLib.lib(CIrrBPCapsuleBody.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
 
 
[...] And so on.
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by zerochen »

you linked the irrBP release lib with your debug settings or viceversa
you have to link the debug lib with your debug settings
mubashar
Posts: 63
Joined: Wed Sep 07, 2011 7:20 pm

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by mubashar »

@Zurzaza i have compiled IrrBPLib and Bullet 2.77 Libraries with same setting also using same setting on project .... and getting this
1>Linking...
1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::locale::facet * __thiscall std::locale::facet::_Decref(void)" (?_Decref@facet@locale@std@@QAEPAV123@XZ) already defined in IrrBPLib.lib(CIrrBPWorld.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _printf already defined in LIBCMT.lib(printf.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _sprintf already defined in LIBCMT.lib(sprintf.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _abort already defined in LIBCMT.lib(abort.obj)
1>libcpmt.lib(locale0.obj) : error LNK2005: "void __cdecl _AtModuleExit(void (__cdecl*)(void))" (?_AtModuleExit@@YAXP6AXXZ@Z) already defined in msvcprt.lib(locale0_implib.obj)
1>libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(locale0.obj) : error LNK2005: __Fac_tidy already defined in msvcprt.lib(locale0_implib.obj)
1>libcpmt.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z) already defined in msvcprt.lib(locale0_implib.obj)
1>libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in msvcprt.lib(MSVCP90.dll)
1>libcpmt.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in msvcprt.lib(MSVCP90.dll)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "public: __thiscall SpuGatheringCollisionDispatcher::SpuGatheringCollisionDispatcher(class btThreadSupportInterface *,unsigned int,class btCollisionConfiguration *)" (??0SpuGatheringCollisionDispatcher@@QAE@PAVbtThreadSupportInterface@@IPAVbtCollisionConfiguration@@@Z)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "void * __cdecl SolverlsMemoryFunc(void)" (?SolverlsMemoryFunc@@YAPAXXZ)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "void * __cdecl createCollisionLocalStoreMemory(void)" (?createCollisionLocalStoreMemory@@YAPAXXZ)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "public: __thiscall btParallelConstraintSolver::btParallelConstraintSolver(class btThreadSupportInterface *)" (??0btParallelConstraintSolver@@QAE@PAVbtThreadSupportInterface@@@Z)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "public: __thiscall Win32ThreadSupport::Win32ThreadSupport(struct Win32ThreadSupport::Win32ThreadConstructionInfo const &)" (??0Win32ThreadSupport@@QAE@ABUWin32ThreadConstructionInfo@0@@Z)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "void __cdecl SolverThreadFunc(void *,void *)" (?SolverThreadFunc@@YAXPAX0@Z)
1>IrrBPLib.lib(CIrrBPWorld.obj) : error LNK2001: unresolved external symbol "void __cdecl processCollisionTask(void *,void *)" (?processCollisionTask@@YAXPAX0@Z)
1>C:\Users\Mubashar Islam\Documents\Visual Studio 2008\Projects\test\Release\test.exe : fatal error LNK1120: 7 unresolved externals
Why not you should compile libraries for VS 2008 and release most of the people are not using this wrapper just due to linking problems please do something about it
When it's all over, it's not who you were. It's whether you made a difference
Zurzaza
Posts: 153
Joined: Fri Mar 26, 2010 9:41 pm
Location: Filo (FE), Italy
Contact:

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Zurzaza »

Hi all, here i am with the first step for a new irrBP release that will be finished in a few weeks.
Now, after a lot of emails and posts on this forum, i finally decided to create a MSVC 2010 solution for irrBP, and to drop MSVC 2005\2008 support.

Until release of irrBP 0.41, the vc2010 solution will be only accessible on the SVN repository and a package in the download section.
BUT...
There are some warnings by switching from vs2005 to vs2010 (Not only 5 years of difference :P).
1) You NEED to recompile bullet libraries for vs2010 (projects are already included in the bullet download). YOU CAN SKIP THIS STEP by downloading the precompiled vs2010 libs from irrbp download section.
1b) If you decided to recompile bullet libraries by your own, you are advised that bullet doesn't provide the bullet multithread library project in the package, so you have to build your own one otherwise irrBP will !!not!! compile.
2) You also NEED to set the "_ITERATOR_DEBUG_LEVEL=0" (workaround) for compiling configurations different than "Release"

That's all folks...
Some rapid links for you:

SVN REPOSITORY: http://code.google.com/p/irrbp/source/checkout (browse/checkout)
VS2010 PROJECTS PACKAGE: http://irrbp.googlecode.com/files/msvc_projects.zip
VS2010 PRE-COMP VS2010 LIBS: http://irrbp.googlecode.com/files/libs_for_r53.zip

Give me feedback about this ;)
irrBP - an Irrlicht - Bullet Physics Wrapper.
The only irrlicht-physics wrapper that uses multithread technology.
Zurzaza
Posts: 153
Joined: Fri Mar 26, 2010 9:41 pm
Location: Filo (FE), Italy
Contact:

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Zurzaza »

irrBP 0.41 on the air!
No code reviews. Only projects updates and libraries update(bullet 2.79).
irrBP - an Irrlicht - Bullet Physics Wrapper.
The only irrlicht-physics wrapper that uses multithread technology.
jorgerosa
Competition winner
Posts: 117
Joined: Wed Jun 30, 2010 8:44 am
Location: Portugal
Contact:

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by jorgerosa »

• Any irrBP update is planned? (For use with MinGW (with GCC 4.7.2) + Bullet Physics v.2.81) Thanks!
serengeor
Posts: 1712
Joined: Tue Jan 13, 2009 7:34 pm
Location: Lithuania

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by serengeor »

jorgerosa wrote:• Any irrBP update is planned? (For use with MinGW (with GCC 4.7.2) + Bullet Physics v.2.81) Thanks!
Is it that hard to recompile a library? I mean sooner or later you'll probably have to learn how to do it, so why not investing some time now? :)
I'd be happy to help you out, but I'm running 64 bit linux.
Working on game: Marrbles (Currently stopped).
newleon
Posts: 19
Joined: Mon Jan 10, 2011 7:59 am
Location: Pohang, South Korea
Contact:

Re: irrBP - example_vehicle is not working

Post by newleon »

This is a while I am using IPhysics for a driving simulator, but I am not happy with its physics quality. To be more precise its behavior in stopping is not close to real situation. I tried this IrrBP while ago, despite the difficulty of re-compiling it using VS2008, the provided example for vihicle example_vehicle.cpp did not work. I mentioned this to the creator of IrrBP, he told I will take care of it. At that time the IrrBP 0.40 was available for Bullet 2.77.
Now that the IrrBP 0.41 is released I wanted to try it. Again there needed several careful work to re-compile both Bullet 2.79 and IrrBP0.41. After that I tried this example_vehicle.cpp again, this time the results was even worse than previous time. Movement in the scene now is kind of slow-motion (FPS~10) and it seems the physics engine is not working, there is no gravity. The cube is on the air incapable of moving around.
I am not sure what the problem is. I am kind of tired of using these wrappers, none of them is working fine. I am getting this feeling that instead of wasting time on these wrappers, one can start integrating the pure physics engine to his/her program and not only he/she can learn so many things but also a perfect results can be achieved.
Last edited by newleon on Fri Mar 15, 2013 6:09 am, edited 2 times in total.
newleon
Posts: 19
Joined: Mon Jan 10, 2011 7:59 am
Location: Pohang, South Korea
Contact:

Re: irrBP - Re-compiling for VS2008

Post by newleon »

Here is a guide for people who want to re-compile the IrrBP0.41 using VS2008. Following these steps will help you to avoid the ugly linking error.

1-Try to recompile the Bullet 2.79 using the provided solution in bullet-2.79\msvc\vs2008 folder. Unfortunately it is not complete, you have to add one more project to the solution for supporting BulletMultiThreaded (to be precise to generate BulletMultiThreaded.lib). So start with adding a new project to the solution. Then delete all the empty folders and make a new one named src. In that folder create another one named BulletMultiThreaded. Add all *.cpp and *.h files located in the root of bullet-2.79\src\BulletMultiThreaded folder. Then two more folders inside it named SpuNarrowPhaseCollisionTask and SpuSampleTask. Do the same thing with them too, I mean add existing items inside them. After this all is done, match the properties of this newly created project with one of the existing ones, for example, BulletCollision. You have to change a few folders' name, and more importantly set the Runtime Library to Multi-threaded Debug (/MTd) in C/C++|Code Generation. Then rebuild the solution or only the projects not having App in front of their names.

2- When you have done this step, you are ready to re-compile the IrrBP0.41. Try to create a new solution in VS2008. Do not forget to select Static Library in the wizard and remove the check next to Pre-compiled Headers. In the Header folder, create and add the same pattern exist in irrBP-0.41\include folder. Do the same thing with the source folder and follow the pattern of irrBP-0.41\src folder. In the property, first change the Runtime Library to Multi-threaded Debug (/MTd). Then add addition include folders of your Bullet 2.79 and Irrlicht 1.7.2 and IrrBP0.41. Re-build the project and you will get your new IrrBP.lib.

3- Now we are ready to try an example. Say we want to create a solution for example_vehicle.cpp. Make a new project in VS2008, and add this cpp file as existing item to the source folder. Set the additional include and library folders to the appropriate ones. Add the following lib files to the Linker|Input of the property page: BulletSoftBody_debug.lib, BulletDynamics_debug.lib, BulletMultiThreaded_debug.lib, BulletCollision_debug.lib, LinearMath_debug.lib, Irrlicht.lib, IrrBP41.lib. The order is not that important which is mentioned in some other posts. This order works with no problem. Compile and execute the code. Surprisingly it will be done but will not work properly, because there is problem in physics engine. I hope the creator of the IrrBP take care of this problem soon.
chronologicaldot
Competition winner
Posts: 684
Joined: Mon Sep 10, 2012 8:51 am

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by chronologicaldot »

You might consider putting that on the irrlicht wiki if it isn't already there.
Zurzaza
Posts: 153
Joined: Fri Mar 26, 2010 9:41 pm
Location: Filo (FE), Italy
Contact:

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Zurzaza »

Thank you everyone for downloading and testing irrBP.
Thank you also for reporting me bugs and improvements to do in this wrapper.

Unfortunately i have no more time for this project and the irrBP development (as you can see) is stuck.
That because i ended my studies at high school and i started my adventure in university and now I have no time for developing games.
I also realized that my mathematic knowledge was very poor when starting working with irrlicht in my project.

But, I hope someone would continue using or improve irrBP that take me a lot of time to make it a reality!
My mail is always open!

Greetings from Italy
irrBP - an Irrlicht - Bullet Physics Wrapper.
The only irrlicht-physics wrapper that uses multithread technology.
Hysteric329
Posts: 2
Joined: Thu Apr 25, 2013 4:01 pm

Re: irrBP - An Irrlicht - Bullet Physics Wrapper

Post by Hysteric329 »

Hi Developers!
I have a problem with linking irrBP in my project, some errors like this:

Code: Select all

 
undefined reference to 'btCollisionObject::~btCollisionObject()
I do link irrBP and all necessary Bullet libraries, but I think this problem is due to the wrong linking order (when i change this order error change too). What is the right one?
I use MinGW 4.7.2, Irrlicht 1.8, Bullet 2.76 (or 2.77) and irrBP 0.40. Both Irrlicht and Bullet (and irrBP) compile and link normally.

Sorry for my bad English, I'm from Russia ;)
Post Reply