Re: Software Architecture/Design
"Morten Brodersen" <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <75D8A4885965449AA9EF77627D9528B3@QUAD> |
I don't really know VTK well enough to give an answer to that :) However, from your description and after having taken a quick look at the website I would say definitely not. Sending objects via channels and having a runtime organizing the flow would be sloooooooooooooooow. Not something I would recommend :) The SO/PO approach is super simple. It is just methods/functions calling methods/functions feeding output from one call to the input of another. Something the compiler can totally optimize. Morten -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Erik Engheim Sent: Friday, 4 June 2010 7:14 PM To: [email protected] Subject: Re: [Sweng-Gamedev] Software Architecture/Design > 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 _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com