[ATTN!] RE: Bugs and Errors reported in the last few weeks

betajaen

07-03-2010 16:25:39

Okay chaps, I've decided I'm going to make some room in my calender and try and fix all these bugs and problems all at once.

So far, I have on my list:

- Write Character Controller for Detritus
- Collision Callbacks in Detritus.
- Recompile Flour 0.4 with Detritus.
- Test/Fix Wheels
- Ruby based CMake-like build system to generate any project files.
- Bug with hashes RE: Bodies See Ref. -- Done, Needs Testing.
- sweep test problem - here, first part
- containers' erase problem - here -- Done, Needs Testing.
- containers' linkage problem - here, second part
- Possible crashes with manual mesh (end/meshdata cook)

Anything else?

betajaen

07-03-2010 17:34:15

I'm also considering moving Detritus into the master branch and retiring Bloody Mess.

DingoMD

07-03-2010 19:26:18

Are wheels working with Detritus? I've recently tried to upgrade from BloodyMess, but it seems that the Wheel class is no longer available (i.e. the constructor is set to protected). I'm sorry if this is something I did wrong, but if it's not, this may be one more thing to add to your list.

betajaen

07-03-2010 20:00:46

Are wheels working with Detritus? I've recently tried to upgrade from BloodyMess, but it seems that the Wheel class is no longer available (i.e. the constructor is set to protected). I'm sorry if this is something I did wrong, but if it's not, this may be one more thing to add to your list.

No idea, but I've added it to the list. :D

spacegaier

07-03-2010 20:22:18

If you can fix the points currently on the list, I'd be already happy, as probably most of the rest out here as well :) . Then I could finally come back to the project of mine using NxOgre (which would of course mean, to cut time from my other projects..).

betajaen

07-03-2010 20:26:28

That's the plan, at least. I think next Monday throughout the week is fine for me.

rpgplayerrobin

07-03-2010 21:35:04

Hey,

Did you see my last post on http://www.ogre3d.org/addonforums/viewtopic.php?f=6&t=11303&start=135? (about the hash name error)

Maybe there is another solution than my temporary fix, but I just wanted to let you know something is strange in the code there...

Cheers!

// Excited Robin :o

betajaen

08-03-2010 01:41:59

Yep, I read all posts on this forum even if I don't reply to them. I've added your possible bug to the list.

Druha

08-03-2010 10:53:14

Some bugs/errors/suggestions from me just to keep things all together:
- sweep test problem - here, first part
- containers' erase problem - here
- containers' linkage problem - here, second part
- not confirmed, Shape::getRigidBody didn't work properly. I am going to test it right now.

betajaen

08-03-2010 11:10:56

Added to the list.

Last night, I started to think out what I wanted out of the Ruby Builder Script, and I think I got it.

From using a YAML file, it will be able to write IDE specific project files; assuming it has the capability to do so (I'm just aiming for visual studio at first release). To build in some optional extras, such as the Character Controller (not everyone wants to lug that dll around if they don't use it). I've added an optional directory inside the source directory. When the script build comes along, it will build specific project files for that option using the original NxOgre builder file.

In a nutshell; there will be specific VisualStudio files for those who want CharacterControllers and those who don't. ;)

I'm not going to be heartless, I will provide Visual Studio Project files as before. I will just leave the Ruby/YAML files with NxOgre for those who want it a bit differently, or when I provide different compiler/platform support. They can build them themselves.

Druha

08-03-2010 11:54:57

Additional information about me trying to work with sweep functions.
Here's sample code I used:
NxOgre::RigidBodyDescription desc;
desc.mBodyFlags |= NxOgre::Enums::BodyFlags_DisableGravity;

NxOgre::Actor* a = mScene->createActor(NxOgre::BoxDescription(NxOgre::Vec3(10,10,10)),NxOgre::Matrix44::IDENTITY,desc);
a->setGlobalPosition(NxOgre::Vec3(0,0,10));

NxOgre::Actor* b = mScene->createActor(NxOgre::BoxDescription(NxOgre::Vec3(1,1,1)),NxOgre::Matrix44::IDENTITY,desc);
b->setGlobalPosition(NxOgre::Vec3(0,0,-2));

NxOgre::SweepQueryHits hits;
//NxOgre::SweepCache* sweepCache = mScene->createSweepCache();
for(float i=0;i<20;++i){
if(b->linearSweep(NxOgre::Vec3(0,0,i),3,1,hits, /*sweepCache*/)){
NxOgre::SweepQueryHit hit = hits[0];
NxOgre::RigidBody* rb = hit.mHitShape->getRigidBody();
}
}

I've created 2 Actors to be sure that SweepQueryHit::mHitShape belongs to real Actor. Then I made a sweep test to get data.
hit.mHitShape contains a pointer to a Shape as it should be. But Shape::getRigidBody() returns zero pointer.

Another trouble I met was SweepCache. Here is how Actor::linearSweep is defined
unsigned int linearSweep(const Vec3& motion, unsigned int sweepFlags, unsigned int size, SweepQueryHits&, SweepCache* = 0);

But not passing last parameter makes function throw "Access violation", because it doesn't check whether SweepCache is 0.

Hope it will help you make NxOgre better :wink:

spacegaier

09-03-2010 09:06:46

I think Druha is right here: viewtopic.php?f=6&t=12095

Just a quick fix needed on this issue...

betajaen

09-03-2010 12:18:38

Excellent.

I'm also playing with the idea that I will only release Detritus and so on as static libraries in the future. It's easier to link with; the compiler only takes the code it needs, so in theory smaller file sizes, and the MIT licence allows it.

betajaen

10-03-2010 11:01:44

So, I've been working on the Ruby C-Make like application to generate the project files when needed. It's become some a tradition now that I name my apps/libraries after types of food.

So "Pasta" is only 190 lines of code (including comments), it only does Visual Studio (any version) project files at the moment but I don't see why not it can't be extended to Code::Blocks or anything else - providing the appropriate code is written:

This is the pasta file for NxOgre, if you know YAML. You'd recognise the structure.

---
name: NxOgre
extends: physx.pasta
version: 1.6.0
dependencies:
headers:
- ^PHYSX_Physics^
- ^PHYSX_Foundation^
- ^PHYSX_Cooking^
- if_platform_is windows ^PHYSX_PhysXLoader^
libraries:
- if_platform_is windows PHYSX_LoaderLib
- if_platform_is windows PHYSX_CookingLib
source:
headers:
- ^THIS_DIR^source
code:
- ^THIS_DIR^source
products:
Debug:
output: NxOgre_Debug
preprocessor: NXOGRE_SDK NXOGRE_DEBUG
type: static library
after:
- copyHeaders
Release:
output: NxOgre
preprocessor: NXOGRE_SDK
type: static library
after:
- copyHeaders
define:
SDK_DIR: ^THIS_DIR^../SDK/
DOC_DIR: ^THIS_DIR^../documentation/
actions:
copyHeaders:
- copy source/headers ^SDK_DIR^


And last night, I managed to get Pasta to write a proper .vcproj file that Visual Studio was able to read and compile*.

* Granted it thought that it was going to compile it as an application instead of a library, but still - Nice!

waffleShirt

02-04-2010 03:32:07

Out of interest how is the bug fixing going, and how close is Detritus to being considered stable?

Ive just started using OGRE again after a bit of a hiatus, im porting my old code over to OGRE 1.7 and part of the process is deciding what to do with NxOgre. Either I use BloodyMess, or preferably Detritus if it is approaching a stable release.

betajaen

02-04-2010 10:57:10

Out of interest how is the bug fixing going, and how close is Detritus to being considered stable?

Ive just started using OGRE again after a bit of a hiatus, im porting my old code over to OGRE 1.7 and part of the process is deciding what to do with NxOgre. Either I use BloodyMess, or preferably Detritus if it is approaching a stable release.



Slow but getting there.

I've just been working on the Pasta code and moving the OGRE3DRenderSystem code into it's own sub-project.

projectChase

08-07-2010 12:40:11

Hi

How look wheel bug? iI will be fix soon? Or is better switch to stable release?

betajaen

08-07-2010 12:45:35

Last time I checked wheels work perfectly. I was even writing a simple engine system class to go with them.

projectChase

08-07-2010 12:56:36

Last time I checked wheels work perfectly. I was even writing a simple engine system class to go with them.

So, how you create new Wheel object? Becouse Wheel constructor is still protected and recives NxWheel? (Detritus)

betajaen

08-07-2010 13:11:00

Detritus uses Descriptions for Shapes now;

WheelDescription
BoxDescription
SphereDescription

If you want to use wheels, then you need at least one non-wheel shape in your actor/body to act as the chassis. You do this via a Shapes "vector".

Shapes shapes;
shapes.push_back(BoxDescription(....));
shapes.push_back(WheelDescription(...));

mScene/mRenderSystem->createActor/createBody(shapes, ...);

projectChase

08-07-2010 13:55:48

I'am sory, We are speeking aboute cylinder? Yes? But i know WheelMachinePart wheel. NxOgre::Wheel class has no constructor and isn't possible create WheelMachinePart.

projectChase

17-07-2010 17:58:04

Are some changes with WheelMachine and Wheel? Becouse it is brake of my project and I will be verry happy when it will be fix.