Nvidia fluid demo, do they rotate a triangle mesh ?

nargil

04-11-2008 12:25:34

from 0:46
http://www.youtube.com/watch?v=jRMWNojmUsk

They rotate the nvidia logo and fluids respond to that. Is it made of a trianglemesh or many primitive shapes (but it seems too accurate for that, doesn't it ?) or is everything relative and the they just alter the gravity, camera and sky ?

betajaen

04-11-2008 12:35:08

I think it's gravity, camera and sky.

[rant]
What annoys me though, is Ageia/Nvidia provies this great fluid API to work with, but no hint on how to render the thing (except for a vague mention about spheres), I had an idea of using voxels a while back but that isn't voxels - it's a mesh.

Once I get NxOgre 1.5 running; I want to get cloth/fluids implemented for good.
[/rant]

nargil

05-11-2008 00:18:19

1.5 ?! Sounds crazy! Is it bloody mess or one of the next releases ? I want it now. ;)

betajaen

05-11-2008 02:34:02

I've bumped up the version number, because Bloody mess is so different from Bleeding:

Every scrap of memory is tracked and allocated. Every class so far is being written for "maximum fast" and low memory usage. Every error is being routed through a single class and being routed. It will even dump all errors and leaks to the console if the user's application has an error and quits in mid-function.

I've dropped Params in replacement of "Description" (more or less a container of variables). Another class called Prototype (WorldPrototype, ScenePrototype, RigidBodyPrototype) uses, every NxOgre class that represents a PhysX object (including World) uses a Prototype now; internally and for serialisation.

I haven't decided yet; But I'm leaning in the direction of letting the user handle the implementation of "string params" or in this case "String Description" opening up a massive choice on syntax and formats, serialisation and even scripting languages, but if they don't want that I'll provide an example/alternative.

No code has been written to render the thing; but in an early and buggy version; I had it working with the RemoteDebugger (which I could write another three paragraphs on how I expanded that).

We have SimpleString to hold const char's, and Matrix44 classes now for internal pose's, and real3 and real4 for Vectors and Quaternions. No NxVec3 or NxQuat's are needed, and Ogre::Vector3/Quaternions would only be used in the Ogre3DRenderSystem's implementation of a rendered actor.

You don't have to include any PhysX directories, reference any PhysX libs to run NxOgre anymore; and you don't need the DLL's in the application folder as well. Any PhysX classes that are in the public headers are "hidden" via macros.

Most likely the "classic" cube example will turn into this.

World* world = World::createWorld();
Scene* scene = world->createScene();
scene->createActor(new Box(1), real3_zero);
World::destroyWorld();


Like I said; it's different.

Prophet

05-11-2008 09:42:08

Wow, now I'm glad I'm going a way for half a year. I'm really looking forward to all that!

xadh00m

05-11-2008 22:24:20

Sounds interesting! You did not mention anything character control related. Is there something t the horizon?

betajaen

05-11-2008 22:27:07

Obviously; I want it done. But I haven't given it any thought on how to implement it in Bloody Mess, since it's not in Bleeding.

betajaen

06-11-2008 00:51:10

Every error is being routed through a single class and being routed.

This is very off-topic; bu I added a new class called "Reason". It allows me to do things like this very quickly and professionally.

n:\BloodyCake\BloodyCake\Debug>BloodyCake.exe
-Error -----------------------------------------------------------
Source: n:\bloodymess\compiler\windows\source\nxogreworld.cpp(127)
Reason:
An error occured creating the PhysicSDK. The reason(s) are:
- The supplied SDK descriptor is invalid.
- Hardware maximum page (WorldDescription::mHardwareMaximumPage) is not a power of two number

------------------------------------------------------------------
NxOgre has found no leaks.


Oh, and I wrote my own version of stringstream (SharedStringStream) today. It just handles const chars only, but adding conversions from other types wouldn't be difficult. Impressive really, since I don't use stdio.h anymore (apart from printf), and I had to implement my own strlen function. :)

nargil

06-11-2008 01:56:00

Aren't you inventing the wheel again ? Your coding is like leading an underevolved population from stone age to modern days. Couldn't you just play the coding campaign from at least industry age ? ;)

Any idea why (my) intellisense isn't parsing betajeans classes like container, iterator etc ?

betajaen

06-11-2008 09:40:24

Aren't you inventing the wheel again ? Your coding is like leading an underevolved population from stone age to modern days. Couldn't you just play the coding campaign from at least industry age ? ;)

Any idea why (my) intellisense isn't parsing betajeans classes like container, iterator etc ?


I don't like the stone stage that much and I'd rather the stone age be the bronze age.

Because it's evil. I've simplified the classes a bit now.

mcaden

06-11-2008 09:46:45

Any chance on 'UnStable' moving to stable soon?

betajaen

06-11-2008 10:10:28

Not until we find out what's causing those leaks.

mcaden

06-11-2008 15:46:02

I'm still using T2 - I'm having trouble deleting world though.

Was hoping to jump straight to version 23 but I'll go ahead and upgrade to T5 while waiting for stable.