> I'm developing on a p3 450 with a geforce2mx graphics card/w 32mb ram. 
384mb system ram.

OK, that's probably most of the difference!

> I need per-particle rotations (since I also hook my particle system into 
my >weapon subsystems). But i've not started optimising yet so i'm 
transforming 
>points even when not needed. The "physics" for the particles are 
laughable at 
>this point. All that's being done is a position.x + directionVec.x 
system, with 
>no environmental (gravity, wind resistance) effects being applied. All 
that the 
>particles check for collisions are the extents of the level. Of course, 
for my 
>weapons stuff i'll hook them into my actual physics engine, but for the 
>generalized case, this doesn't happen.

Sounds like fun. I started doing that, and ripped it out when I saw how 
slow it was going to be and that I wouldn't likely use it in the near 
future � however I abstracted a RotatingParticle which can add that 
facility, and particle types can be mixed and matched in my design, so 
some could rotate (bigger ones) and others not for example. Might be a 
nice compromise.

> I should also mention that this system is being tested in a real game 
>environment, with Physics, AI, and Input running, and around 10k 
triangles (with 
>2 textures) on screen before the particle system even starts.

Nice. I only have simple gravity � well a vector of anything applied to 
all particles in the system. So wind + gravity can be simulated like 
that. In my test I have a compiled 20,000 triangle "floor" with lighting, 
plus the 5000 2-tri particles with single alpha-blend texture and 
gravity.

> 5k particles sounds reasonable in a stand-alone application, but this is 
for a 
>real game, not to put your numbers down (as you didn't specify what else 
is 
>happening in your application).

You dare put my numbers down?! Haha, I really don't care one iota :-)  
Like I said I was curious to see what the differences were to see if my 
code is oversimplified, or my machine is a (relative) monster.

> I'm thinking that 2k-3k visible particles should be the target for a 
particle 
>system in J3d, but due to the inherent overhead of using J3d, if it's 
not a low 
>level j3d JNI routine being called, I cannot forsee this happening. I'm 
hoping 
>for 800 when all is said and done, and 1200 when all possible 
optimisation (ie. 
>Using java2d for non-rotational, single texture particles) is complete. 
Of 
>course, this is based on my machine specs, as yours are clearly much, 
much 
>superior.

On your current machine specs you're probably right. I have noticed with 
j3d that with my config it's not so much the geometry as the number 
crunching that is the performance hit. Reducing method calls can help but 
in my experience this didn't seem to affect the performance of my code 
much at all � so I went for nicer code structure and flexibility.

> Question: Have you tried implementing a triangleStripArray version of your 
code > using jdk1.4 && j3d1.3beta? What are the performance improvements?

No I haven't had time, and I could never get 1.3 beta to install. Got 
bored with trying :-(

Do you mean using a single TriangleStripArray for the whole system? I 
suppose that should have its theoretical benefits

Oh, and one thing... I don't have "face the viewport" rotations in my 
particle system at the moment... so I reckon that'll bring the particles 
right down to about 1000 on my system @ ~55fps

If you want someone to try your game for you... ;-)

Marc

==========================================================================To 
unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to