Re: Software Architecture/Design
Erik Engheim <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <[email protected]> |
> Think about your application as consisting of 2 types of objects: State > Objects and Process Objects. > > A State Object (SO) handles a state (surprise). It can be anything from > a texture to a database to a display to a list of integers. In an OO > language, SO's will typically be implemened as classes/objects with the > usual set/get/add/remove methods. In a functional language, SO's are > typically implemented as (immutable) values. So if I understand this correctly it is a lot like the Visualization Toolkit (vtk) is organized? In VTK (http://www.vtk.org/doc/release/5.4/html/a00374.html) you have subclasses of vtkDataSet which contains geometry, topology and attributes. Subclasses can be things like point set, grid, lines etc. Then they have subclasses of vtkAlgorithm (http://www.vtk.org/doc/release/5.4/html/a00101.html) which has a number of inputs and outputs. You connect together algorithms through the input and output channels. On the channels vtkDataSet objects are consumed or produced. Sounds to me like vtkDataSet is like an SO object and vtkAlgorithm is like an PO object in your jargon? Basically you get system of pipelines where you could do flow analysis and figure out which PO objects can be excuted in parallell etc. They have a vtkExecutive object which takes care of running the algorithms in the right sequence and or parallallizing them. I always thought this system looked really neat, but I have heard people doing performance test of vtk vs Open Inventor and they said Vtk was too slow. So I am not sure if the approach is inherently slow or whether vtk just doesn't have a good implementation of this approach. I assume that if you use this in a game engine, you are able to get good performance out of this approach? _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com