----- Original Message ----- From: "RWGRAY" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, December 31, 2001 1:47 PM Subject: Re: [JAVA3D] Best way to deal with many "duplicate" objects such as particles?
> What is meant by a "particle" here? Is the "particle" a Sphere object? How > is a "particle" coded in Java 3D? What do you use it for? "Particles" are half way to hi-fi simulation of the world. The high-high end engineering and physics simulations break their models into small chunks they pretentiously call "finite elements," but game people call them "particles." The approach is the same. You have code that forms the particles and then describes how the particles change - their position, velocity, appearance, their fission rate, e.g based on their position in space and what the neighboring particles are doing. It turns out that the best way right now to get convincing looking flame, turbulent flow, explosions, etc. is to use particles and give them enough real physics to get what you want but not so much that the calculations hog all of your resources. There's nothing disreputable or hackish about particles. The game people and the hi-fi simulators are heading in the same direction on the same path. The game people just want their stuff to run on a hundred million or so boxes, while the hi-fi people are content with a few. Cheers, Fred > > > Bob Gray > > -----Original Message----- > From: Discussion list for Java 3D API > [mailto:[EMAIL PROTECTED]]On Behalf Of David Yazel > Sent: Monday, December 31, 2001 1:31 PM > To: [EMAIL PROTECTED] > Subject: Re: [JAVA3D] Best way to deal with many "duplicate" objects > such as particles? > > > The trick we are doing is to build a composite texture whcih consist of all > the small particle textures, generally in greyscale with alphas. Then we > use a geometry updator against dynamic byref arrays of floats. We vary the > texture size and orientation for every visible particle on every frame. > Another trick is to change the texture coordinates to cause the texture to > rotate, although you can do the same thing with the vertices. Our particle > system manager actually manages all the visible particles in a single > geometry updator. All the various emitters feed the manager, who then owns > the particles until they have decayed. This has the added advantage of > allowing the manager to adjust particle densities and increase decay rates > if the system reaches critical saturations. My suggestion would be to > manage the particles yourself and not use seperate shapes unless you need > to. > > David Yazel > http://www.cosm-game.com > > > > > ----- Original Message ----- > From: Marc Palmer <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, December 31, 2001 12:54 PM > Subject: [JAVA3D] Best way to deal with many "duplicate" objects such as > particles? > > > Hi, > > I've written some particle system code that I am rendering with Java3D. > > What is the most efficient way (in terms of performance, not less memory) > to render thousands of identical shapes that are at different locations > in the scene, and change their position+rotation every frame? > > Currently I am creating one Shape3d with the Geometry set by my code that > creates a double[] with all the vertices for all the particles that are > in the system. This means I don't need any transform nodes as all > particles are transformed and their vertices written to the geometry. > > However I now come to add texture support for these particles, and > supplying the texture coordinates. These are likely going to be the same > for every particle and yet I will have to set them for every one, as the > single shape contains all of the vertices for the thousands of particles. > > Is there any better way of doing this for high performance? > > Is there some way of reusing a the geometry for a single particle without > creating one shape object for every particle and pointing it to the > shared geometry and transforming each one individually? > > Is there are hardware that accelerates this kind of "replicate and > transform" functionality that Java3D could take advantage of? > > Thanks in advance. > > > ========================= > 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". > > ================================================================ =========== > 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". > > ================================================================ =========== > 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". > > =========================================================================== 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".
