|
|
|
Return to Panda Features in Development
by Sothh » Sat Nov 20, 2010 8:40 am
Pack it? I sent him the same folder I have been using, which I know has all the modules it needs. I even asked him to check, and sure enough the libpandabullet module was present. I also experienced a similar problem when I used PackPanda to create an installer and installed it on my XP computer. Although it could import all the other custom modules I had in the same folder with it, it would not import it.
I can forward you the file if you will PM me your email address.
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Sat Nov 20, 2010 10:32 am
Well, the error message is pretty clear. Loading a DLL failed. This can be because libpandabullet is not found, or one of the libs required by libpandabullet is not found. This could be a VC runtime lib. I am using VC9. Anyway, I will pm you my mail address.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by Sothh » Tue Nov 23, 2010 9:14 am
I found the problem. I installed Panda 1.7.0 instead of what I usually use, 1.7.1 and I get the same error.
I seems this wont work on 1.7.0, though I don't know why.
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Tue Nov 23, 2010 4:24 pm
Well, libpandabullet.dll is compiled against P3D 1.7.1, that is the current snapshot build. I don't expect it to work with 1.7.0, though it should be possible to compile and link against 1.7.0.
Just to be sure, you can load libpandabullet using P3D 1.7.1 on your friends computer?
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by Sothh » Sat Nov 27, 2010 11:23 am
Yes, it works fine with 1.7.1
Maybe you should give two versions?
Oh, and another thing. I seem to be having a problem with objects going into each other. They go into each other a little before detecting the collision and then going back out. Is there any way I can fix this?
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Sat Nov 27, 2010 3:58 pm
This is called "skin" or "margin" in most physics engine. You can use setMargin on any shape, but don't choose the value too small or you will miss collision.
Two versions are too much effort at this stage.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by whitelynx » Sun Dec 05, 2010 12:45 am
I'd like to try this out and possibly help with development... I'd much rather be using Bullet than PhysX for my projects, especially since they've started integrating OpenCL hardware acceleration support.
I've downloaded libpandabullet-r9.zip and tried building it; the .pyd included doesn't work on Linux apparently:
- Code: Select all
$ ppython 01_Basics.py DirectStart: Starting the game. Known pipe types: glxGraphicsPipe (all display modules loaded.) Traceback (most recent call last): File "01_Basics.py", line 22, in <module> from libpandabullet import BulletWorld ImportError: No module named libpandabullet
$ file libp ppython 01_Basics.py DirectStart: Starting the game. Known pipe types: glxGraphicsPipe (all display modules loaded.) Traceback (most recent call last): File "01_Basics.py", line 22, in <module> from libpandabullet import BulletWorld ImportError: No module named libpandabullet andabullet.pyd libpandabullet.pyd: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
So, I tried installing the latest Bullet from SVN (r2243) and building libpandabullet, and the first time running scons seemed to indicate that it was also rather Windows-specific: - Code: Select all
$ scons scons: Reading SConscript files ... KeyError: 'PROGRAMFILES': File "/home/whitelynx/devel/libpandabullet-r9/SConstruct", line 13: SConscript([ 'SConscript.%s' % PLATFORM, ]) File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 614: return method(*args, **kw) File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 551: return _SConscript(self.fs, *files, **subst_kw) File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 260: exec _file_ in call_stack[-1].globals File "/home/whitelynx/devel/libpandabullet-r9/SConscript.VC9", line 4: PANDADIR = os.environ['PROGRAMFILES'] + '/Panda3D-1.7.1' File "/usr/lib/python2.7/UserDict.py", line 23: raise KeyError(key)
I checked out the SConstruct file, and noticed the PLATFORM line, which seemed to indicate that setting it to 'Linux' was valid, but that doesn't seem to work either: - Code: Select all
$ scons scons: Reading SConscript files ...
scons: warning: Ignoring missing SConscript 'SConscript.Linux' File "/home/whitelynx/devel/libpandabullet-r9/SConstruct", line 13, in <module>
scons: *** Import of non-existent variable ''env'' File "/home/whitelynx/devel/libpandabullet-r9/SConstruct", line 14, in <module>
Is there currently a way to build this on Linux, or should I hack together a method for doing this? I'm not very familiar with scons aside from reading several articles about it, but I'm very fluent in both Python and waf. (which I prefer over scons from a purely feature-oriented and performance-oriented point of view... we use waf for all of our C/C++-based projects)
If it'd be desirable, I'd also love to write a waf build system for this... but it's up to you if you'd want that.
-

whitelynx
-
- Posts: 54
- Joined: Wed Dec 31, 2008 2:56 pm
- Location: Lubbock, TX
-
by enn0x » Sun Dec 05, 2010 2:59 pm
The .pyd is a Windows 32bit DLL. It's not usable on Linux. So far I provide - together with the source code - only Windows binaries.
Also the build script is Windows-only so far. There is a main script (SConstruc) which is platform-independent, and which loads a platform-dependent file for setting up the environment (e. g. SConscript.VC9). All you would have to do is add a script for your platform, and make sure it gets imported by the main script.
I didn't try to compile on Linux so far. Might be there have to be some smaller changes to the code, but nothing serious.
Once the module is added to the P3D source code it will be compiled for all platforms automatically, so currently I don't attempt to provide build scripts for Linux, Mac, etc.
I have no problem if you want to provide build script for waf. I haven't used waf so far, and I'm not fixed on SCons. You will have to spend some time on the interrogate & interrogate_module calls, but I can provide help here.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by whitelynx » Sun Dec 05, 2010 9:16 pm
Ok, I started trying to write a SConscript.Linux file for this, and it mostly seems to be working, but it's trying to include a file that doesn't get installed by Bullet:
- Code: Select all
$ scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... g++ -o built/bullet_composite.os -c -fPIC -DFORCE_INLINING -DBUILDING_PANDABULLET -DHAVE_PYTHON -Ibuilt -Isource -I/usr/include/python2.7 -I/home/whitelynx/packages/panda3d-cvs/src/panda3d/built/include -I/usr/include/bullet/bullet source/bullet_composite.cxx In file included from source/config_bullet.h:26:0, from source/config_bullet.cxx:15, from source/bullet_composite.cxx:1: source/bullet_includes.h:36:72: fatal error: Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.h: No such file or directory compilation terminated. scons: *** [built/bullet_composite.os] Error 1 scons: building terminated because of errors.
I'm assuming this file is in the Bullet source... is this actually needed? Shouldn't we be sticking to things that Bullet provides in the install?
-

whitelynx
-
- Posts: 54
- Joined: Wed Dec 31, 2008 2:56 pm
- Location: Lubbock, TX
-
by enn0x » Mon Dec 06, 2010 1:10 am
Hmmm... I checked out r2243 this weekend, and I still can see this file. Directory trees checked out from SVN should be the same both on Windows and Linux.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by whitelynx » Mon Dec 06, 2010 10:22 am
Ok, I think I found the issue... apparently the AUR package for Bullet has BUILD_EXTRAS turned off for some odd reason. I'm working on that package to try and get those files installed; I'll let you know how it goes.
-

whitelynx
-
- Posts: 54
- Joined: Wed Dec 31, 2008 2:56 pm
- Location: Lubbock, TX
-
by whitelynx » Tue Dec 07, 2010 3:40 pm
Even manually building Bullet, it never installs that file, which leads me to believe it should be an internal-only file, and should not be used by external projects. The btBulletWorldImporter.h file and btBulletWorldImporter class don't even show up in the Bullet API docs. If it should be externally accessible, we'll need to talk to the Bullet team and get it changed upstream; otherwise, we really should be sticking to what's available in their public API, or this won't work at all on Linux systems without getting the source.
-

whitelynx
-
- Posts: 54
- Joined: Wed Dec 31, 2008 2:56 pm
- Location: Lubbock, TX
-
by enn0x » Tue Dec 07, 2010 5:01 pm
...otherwise, we really should be sticking to what's available in their public API, or this won't work at all on Linux systems without getting the source.
Ah, glad that nobody will ever again ask me when hardware acceleration will be enabled, e. g. OpenCL. It's not part of the "public" API, so we don't need to care about it. Sorry for the sarcasm.
Seriously, I don't believe your problems with compiling Bullet including the extra libs will be a real issue. You can either compile the extra libs and link libpandabullet.so statically, or link dynamically and distribute them alongside libpandabullet.so.
For now, if you really want to explore, you can simply remove the includes and all methods dealing with serialisation/deserialisation from the source code. Don't be afraid to mess around with code. The next release will be a full rewrite anyway.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by whitelynx » Wed Dec 15, 2010 4:01 pm
Sorry, I thought I had sent this like a week ago...
Ok, didn't realize Bullet was that far behind on making sure their public code was actually accessible. (and sorry if I'm coming across as antagonistic... I tend to get a bit worked up when code isn't written to be easily portable)
For now I'll compile against the source dir. (this just won't work on source distros like gentoo, because there the source directory is removed once the install is completed, and you can't expect prebuilt binaries to work because everything's built from source)
I've changed the SConscript.Linux file I'm writing to point to the Bullet source directory, and I've put together a small patch to fix some compilation errors under GCC. I'll have to look at it again in a couple days when things calm down at work, but then I should be able to post it.
-

whitelynx
-
- Posts: 54
- Joined: Wed Dec 31, 2008 2:56 pm
- Location: Lubbock, TX
-
by enn0x » Thu Dec 23, 2010 9:59 am
Well, Bullet is quite young, and far from stable. There are lots of "experimental" features.
About compiling: I didn't include the Bullet source code directly, but have been running the MSVC projects which come with Bullet. The output has been (1) executables for the demos, and (2) static libraries for the major Bullet components. When building libpandabullet I include the Bullet headers, and then link the shared library against the static Bullet libs. Should be possible to reproduce on Linux too.
About build system: I am playing around a bit with waf currently. Not really my favorite, and I still have to find out how to run interrogate & interrogate_module, but waf supports Python 3 (unlike SCons), and I will be moving to Python 3 for most of my work soon.
There is still a lot o do at work before the end of the year, but in January/February I will have more spare time to spend on this project.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by Sothh » Thu Dec 23, 2010 5:58 pm
I think I found another glitch. I just started working on terrains, and I was trying to sync Panda's terrain with Bullets. When just using a block as a character it works fine, but when ever a Bullet Character collides with the terrain the window freezes up and stops working.
Any ideas?
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Thu Dec 23, 2010 8:37 pm
I have been able to reproduce this problem. It's the same as with plane shapes. No problem with my wrappers, but with the Bullet library itself.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by Sothh » Fri Dec 24, 2010 5:11 pm
Oh, thats a pain. I am now using a sphere, and setting the cameras position to that of the sphere. It actually works quite well, as long as you set the damping to a high level.
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Fri Jan 07, 2011 3:33 pm
Here is a new version - it's experimental and a complete rewrite with lots of API changes:
http://enn0x.p3dp.com/libpandabullet-r11.zip
Summary of changes:
* All physics objects are derived from PandaNode now (this is rigid body, soft body, ghost, character and vehicle).
* Collision filtering is based on Panda3D's CollideMask. Only the "from" collide mask is used.
* Compound shapes are no longer required for bodies with several shapes. The btCompoundShape is created internally (I still have to optimize this, since currently a btCompoundShape is always internally created, no matter how many shapes are added to a rigid body).
* Many objects and methods have been renamed, in order to fit better with Panda3D's naming pattern.
* Build system is now 'waf'. Still Windows-only. Currently I am not using anything from Bullet's "extra" directories.
I still have problems with synchronization of soft body transforms, so please don't use soft bodies yet.
All the changes have been done in order to find a tighter integration with Panda3D. I'm not 100 percent convinced that this is the right way of providing Bullet physics in Panda3D, so please feel free to comment on the new version or - even bettere - suggest other ways.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by enn0x » Tue Jan 11, 2011 5:10 pm
And yet another version:
http://enn0x.p3dp.com/libpandabullet-r12.zip
What's new:
* Built using Panda3D-2010.12.28-82 and Bullet r2260
* Debug renderer: sphere shapes are now rendered as spheres, and not as diamonds like before.
* Prevent nodes from getting flattened out.
* BulletDebugNode: it's no longer necessary to call hide/show after calling setVerbose.
* Mass properties will be updated automatically after shapes are added/removed from a rigid body.
* Classes derived from PandaNode have been renamed to reflect the inheritance, e. g. BulletGhost --> BulletGhostNode.
* Optimized adding/removing of shape. No implicit btCompoundShape will be created if only one shape is added.
* "Explosions" caused by "setPos" etc. being not applied right after creation of an object should no longer appear.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by Anon » Wed Jan 12, 2011 2:45 am
Id like to see your results, but i cant compile your project with waf
on win7 64bit
-
Anon
-
- Posts: 1556
- Joined: Thu Oct 29, 2009 3:07 am
by enn0x » Wed Jan 12, 2011 7:54 am
The important part of the console output, which gives information about what is going wrong, is ABOVE what you posted as screenshot. I guess you will see something like this:
- Code: Select all
Waf: Entering directory `C:\Development\BulletMk4\built' [1/6] libbullet_igate.cxx: -> built\libbullet_igate.cxx *** Error in bullet_utils.h near line 31, column 73: parse error Error parsing file: 'bulletAllHitsRayResult.h' Waf: Leaving directory `C:\Development\BulletMk4\built' Build failed
The problem is that you probably didn't set the path to Panda3D (current snapshot builds, 1.7.0 is not enough!). Check if those paths you see on your screenshot are right: - Code: Select all
-S"C:\\Program Files/Panda3D-1.7.1/include" -S"C:\\Program Files/Panda3D-1.7.1/include/parser-inc"
Finally, if you have adjusted all paths, including the path to the compiled Bullet library, you should adjust the compiler flags and defines for 64bit Windows. I see in your screenshot that you are using 32bit defines.
I'm sorry, but I don't have a Windows7/64bit machine, so I can't test anything for you. Maybe someone can send me a full build log of Panda3D on Windows7 (with --verbose of course). I could try to make a best guess then.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by powerpup118 » Thu Jan 13, 2011 4:56 am
Hi, your work is AMAZING! I really really enjoy it! Everything works really well (I had lots of fun with the car demo  )
Keep up the great work,
~powerpup118
-

powerpup118
-
- Posts: 325
- Joined: Sat Apr 17, 2010 11:59 pm
by powerpup118 » Thu Jan 13, 2011 3:23 pm
Hi, I was wondering, are Character Controller Nodes supported on heightfields?
I ask because I tried to place the character demo into the height field demo, with the code looking like:
- Code: Select all
import sys import direct.directbase.DirectStart
from direct.actor.Actor import Actor from direct.showbase.DirectObject import DirectObject from direct.showbase.InputStateGlobal import inputState
from panda3d.core import AmbientLight from panda3d.core import DirectionalLight from panda3d.core import Vec3 from panda3d.core import Vec4 from panda3d.core import Point3 from panda3d.core import TransformState from panda3d.core import BitMask32 from panda3d.core import Filename from panda3d.core import PNMImage
from libpandabullet import BulletManager from libpandabullet import BulletPlaneShape from libpandabullet import BulletBoxShape from libpandabullet import BulletRigidBodyNode from libpandabullet import BulletDebugNode from libpandabullet import BulletCapsuleShape from libpandabullet import BulletCharacterControllerNode from libpandabullet import BulletTriangleMesh from libpandabullet import BulletTriangleMeshShape from libpandabullet import BulletHeightfieldShape from libpandabullet import ZUp
class World(DirectObject): def __init__(self): base.setBackgroundColor(0.0, 0.0, 0.6, 1) base.setFrameRateMeter(True)
base.cam.setPos(0, -20, 4) base.cam.lookAt(0, 0, 0)
# Light alight = AmbientLight('ambientLight') alight.setColor(Vec4(0.5, 0.5, 0.5, 1)) alightNP = render.attachNewNode(alight)
dlight = DirectionalLight('directionalLight') dlight.setDirection(Vec3(1, 1, -1)) dlight.setColor(Vec4(0.7, 0.7, 0.7, 1))
dlightNP = render.attachNewNode(dlight)
render.clearLight() render.setLight(alightNP) render.setLight(dlightNP)
# Input self.accept('escape', self.doExit) self.accept('r', self.doReset) self.accept('f1', self.toggleWireframe) self.accept('f2', self.toggleTexture) self.accept('f3', self.toggleDebug) self.accept('f5', self.doScreenshot)
self.accept('space', self.doJump) self.accept('c', self.doCrouch)
inputState.watchWithModifiers('forward', 'w') inputState.watchWithModifiers('left', 'a') inputState.watchWithModifiers('reverse', 's') inputState.watchWithModifiers('right', 'd') inputState.watchWithModifiers('turnLeft', 'q') inputState.watchWithModifiers('turnRight', 'e')
# Task taskMgr.add(self.update, 'updateWorld')
# Physics self.setup()
# _____HANDLER_____
def doExit(self): self.cleanup() sys.exit(1)
def doReset(self): self.cleanup() self.setup()
def toggleWireframe(self): base.toggleWireframe()
def toggleTexture(self): base.toggleTexture()
def toggleDebug(self): if self.debugNP.isHidden(): self.debugNP.show() else: self.debugNP.hide()
def doScreenshot(self): base.screenshot('Bullet')
def doJump(self): self.player.setMaxJumpHeight(5.0) self.player.setJumpSpeed(8.0) self.player.doJump()
def doCrouch(self): self.crouching = not self.crouching sz = self.crouching and 0.6 or 1.0
self.player.getShape().setLocalScale(Vec3(1, 1, sz))
self.playerNP.setScale(Vec3(1, 1, sz) * 0.3048) self.playerNP.setPos(0, 0, -1 * sz)
# ____TASK___
def processInput(self, dt): speed = Vec3(0, 0, 0) omega = 0.0
if inputState.isSet('forward'): speed.setY( 3.0) if inputState.isSet('reverse'): speed.setY(-3.0) if inputState.isSet('left'): speed.setX(-3.0) if inputState.isSet('right'): speed.setX( 3.0) if inputState.isSet('turnLeft'): omega = 120.0 if inputState.isSet('turnRight'): omega = -120.0
self.player.setAngularVelocity(omega) self.player.setLinearVelocity(speed, True)
def update(self, task): dt = globalClock.getDt()
self.processInput(dt) self.mgr.doPhysics(dt, 10, 0.008)
return task.cont
def cleanup(self): self.mgr = None self.worldNP.removeNode()
def setup(self): self.worldNP = render.attachNewNode('World')
# Manager self.debugNP = self.worldNP.attachNewNode(BulletDebugNode('Debug')) self.debugNP.show()
self.mgr = BulletManager() self.mgr.setGravity(Vec3(0, 0, -9.81)) self.mgr.setDebugNode(self.debugNP.node())
# Box (dynamic) shape = BulletBoxShape(Vec3(0.5, 0.5, 0.5))
np = self.worldNP.attachNewNode(BulletRigidBodyNode('Box')) np.node().setMass(1.0) np.node().attachShape(shape) np.setPos(0, 0, 4) np.setCollideMask(BitMask32.allOn())
self.mgr.attachRigidBody(np.node())
self.boxNP = np # For applying force & torque #- This heightfield code with a character is broken.. why? img = PNMImage(Filename('models/elevation2.png')) shape = BulletHeightfieldShape(img, 3.0, ZUp) np = self.worldNP.attachNewNode(BulletRigidBodyNode('Heightfield')) np.node().attachShape(shape) np.setPos(0, 0, 0) np.setCollideMask(BitMask32.allOn()) self.mgr.attachRigidBody(np.node()) #- Comment out the code below for static planes and enable this code to see what I mean ''' Heightfield is broken with character? #- Using static planes works fine with the character shape = BulletPlaneShape(Vec3(0, 0, 1), 0) np = self.worldNP.attachNewNode(BulletRigidBodyNode('Ground')) np.node().attachShape(shape) np.setPos(0, 0, -1) np.setCollideMask(BitMask32.allOn()) self.mgr.attachRigidBody(np.node()) #- Comment the static plane code out and uncomment the heightfield code #- It then crashes saying: #- Assertion failed: (_flags & F_lock_count) != 0 at line 68 of c:\buildslave\dev_sdk_win32\build\panda3d\built\include\mutexSimpleImpl.I ''' # Character self.crouching = False
h = 1.75 w = 0.4 shape = BulletCapsuleShape(w, h - 2 * w, ZUp)
node = BulletCharacterControllerNode(shape, 0.4, 'Player') np = self.worldNP.attachNewNode(node) np.setPos(-2, 0, 4) np.setH(0) np.setCollideMask(BitMask32.allOn()
self.mgr.attachCharacter(np.node())
self.player = node # For player control
self.playerNP = Actor('models/ralph/ralph.egg', { 'run' : 'models/ralph/ralph-run.egg', 'walk' : 'models/ralph/ralph-walk.egg', 'jump' : 'models/ralph/ralph-jump.egg'}) self.playerNP.reparentTo(np) self.playerNP.setScale(0.3048) # 1ft = 0.3048m self.playerNP.setH(180) self.playerNP.setPos(0, 0, -1)
b = World() run()
that, and it error's out (crashes python.exe)
here's the only thing it prints to the terminal:
Assertion failed: (_flags & F_lock_count) != 0 at line 68 of c:\buildslave\dev_sdk_win32\build\panda3d\built\include\mutexSimpleImpl.I
was just curious if I had done something wrong or what, I know this is still uber beta, even if it is uber cool.
~powerpup118
-

powerpup118
-
- Posts: 325
- Joined: Sat Apr 17, 2010 11:59 pm
by Sothh » Thu Jan 13, 2011 5:17 pm
There is a bug in Bullet that does not allow the use of characters on height fields.
-
Sothh
-
- Posts: 235
- Joined: Sat Oct 24, 2009 10:33 am
- Location: Virginia, USA
-
by enn0x » Thu Jan 13, 2011 5:36 pm
There is a bug in Bullet that does not allow the use of characters on height fields.
Right, but I'm using a patched version of Bullet which solves this bug.
See the above post for details:
https://www.panda3d.org/forums/viewtopic.php?p=66858#66858
What causes the crash here is some weirdness in BulletDebugNode, in particular the colors for lines. I will investigate the weekend.
Turning off the debug renderer should work as a temporary workaround.
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by enn0x » Thu Jan 13, 2011 6:16 pm
-
enn0x
-
- Posts: 1267
- Joined: Wed Nov 08, 2006 1:39 am
- Location: Germany, Munich
by powerpup118 » Fri Jan 14, 2011 3:02 am
Hey enn0x, it works great!
Your patch fixed it and the code works good now, many thanks.
~powerpup118
-

powerpup118
-
- Posts: 325
- Joined: Sat Apr 17, 2010 11:59 pm
by powerpup118 » Fri Jan 14, 2011 4:22 am
Hey enn0x, back again - I know what you're thinking, "When will he leave? >.>" nah just kidding though if you want me to just shush and let you work let me know
(Does the BulletHeightFieldShape (or it's node) provide a way to display a visual texture? otherwise I assume that I must build my visual heightmap using panda's heightfield generator found here, in which case)
When matching a bullet heightfield with a panda visual heightfield, several inconvenient things happen (which I think might be easy-ish to include)
you have to turn the visual map using setH(90) because I guess panda or bullet disagree with the starting rotation or something
after that, the bullet map starts in the center point of the image (image width / 2 image height / 2, basically), the panda visual heightmap starts.. in some corner, so you have to set it's X and Y to offset half the image (which is weird), I wonder if either we could offset the bullet heightfield to match the panda3d one, OR add a way for a texture to be set on the bullet heightfield
these are just idea's and I'm only hoping to give good feedback, what you've done so far is brilliant and I really want to see it go further
So it's totally up to you if you think this is important or non important or anything
~powerpup118
-

powerpup118
-
- Posts: 325
- Joined: Sat Apr 17, 2010 11:59 pm
Return to Panda Features in Development
Who is online
Users browsing this forum: No registered users and 0 guests
| | |