Creating a particle system with streaming SIMD extensions
3d Flames Fire Graphics Animation Programs: Sometimes a well-architected well-implemented particle system isn't enough when it comes to performance. If you are developing for the PC platforms, and your target is Intel Pentium III or Pentium 4 processors, look no further than the Streaming SIMD Extensions.

by William Damon, technical marketing engineer, Software Solutions Group, Intel Corp.

Smoke, fire, water spray, dust, and more all have something in common. They all benefit from a good particle system. For the uninitiated, a particle system is essentially the management of a collection of nonstatic points in 3D space. In most common examples, each point, or particle, goes through an entire life cycle from "birth" through "death." Adjusting the parameters that affect a particle's life cycle allows the creation of various effects. The key ingredient of a particle system that makes the generated effects look so realistic is chaos; a bit of randomness in the behavioral modification of the particles. This paper dives into creating a particle system that takes full advantage of Intel® Architecture.

Sometimes a well-architected well-implemented particle system isn't enough when it comes to performance. Wouldn't it be nice if it were possible to design all the math and physics behind these brilliant effects in such a way that the processor could handle four times the workload? If you are developing for the PC platforms, and your target is Intel Pentium® III or Pentium 4 processors, look no further than the Streaming SIMD Extensions.

Streaming SIMD Extensions allow the operation of instructions on up to four pieces of data simultaneously with a single instruction; hence the acronym SIMD: Single Instruction Multiple Data. Arranging and organizing the data optimally allows for the maximum benefit from these instructions. Hundreds of applications exist for SSE. Here we focus on one that is near and dear to the game programmer's heart.

© 2004 Intel Corp.


Subscribers who liked this article also read:
Multithreaded .NET Web service clients: threads and responsiveness
by Ian Griffiths and Chris Sells, consultants. Intel Corp. Unresp...

If you're interested in this topic, these articles may be helpful:

Transcoding and codec optimization: tips & tricks
by Khang Nguyen, senior applications engineer, Software and Solution...
.NET client application "no touch" deployment: harness the full processing power of the desktop
by Christopher Goldfarb, senior software architect, Intel Software Sol...
Creating Sustainable Business Advantage in Financial Markets - Dual Core Intel Xeon Processor
Decisions that Define Your Future There are a small number of techno...
Creating an ImageEffectGlow within Avalon
by Robert Wlodarczyk, Microsoft Corp. This simple UI is an example ...
Creating high-performance embedded applications through compiler optimizations
from Intel Corp. The role of the compiler in application developmen...

Related Jobs:

Instructional Designer #RCR020601 - IA - Cedar Rapids - Intermec Technologies Corporation
Job Title Instructional Designer Department Technical Training Ope...
Documentation Manager-Software Products #58123 - CA - San Rafael - Autodesk, Inc.
Directeur de la documentation : Produits logiciels Rsum des fonc...
Flash Developer/Programmer #1612 - VA - Newport News - Camber Corporation
Description: Camber Corporation seeks talented, problem-solving Flas...
Project Manager Operations 5, Unix/Linux Server Ops Leader #606270 - OH - Cincinnati - General Electric Company
Job Description: Responsibilities * Serves as a lead for operation...
Software Engineer, Senior./.NET Developer - CA - Brisbane - Stentor, Inc.
Stentor? Inc. is a leader in the distribution, management, and storage...
Software Development Engineer in Test #143849 - WA - Redmond - Microsoft Corporation
got: cool jobs. need: smart people. Help us give designers and develop...
Senior Software Engineer - CA - San Diego - Musicmatch, Inc
SENIOR SOFTWARE ENGINEER The Windows Senior Software Engineer, work...
Software Development Engineer in Test #143514 - WA - Redmond - Microsoft Corporation
got: cool jobs. need: smart people. Help us give designers and develop...
Lead Web Developer #Q07542 - MD - Bethesda - BAE Systems
* Description: o BAE Systems is seeking a Lead Web Dev...
User Interface Designer #2360147 - NY - Syracuse - Ajilon
Description : Ajilon Consulting is an international IT consulting fi...