Btw you know I love you guys (pv3d team), afterall we wouldn't be here if it
wasn't for you!

Wishing you a good weekend (can still take that shot if you want) :P

-Pete

On Fri, Nov 21, 2008 at 9:29 AM, Peter Kapelyan <[EMAIL PROTECTED]> wrote:

> I hope you are talking about future versions (that you have planned) that
> aren't broken like the many examples of those "functional" items you mention
> :P
>
> Enough mudslinging for me - this never gets us anywhere - you can have the
> last word if you want Ralph :) Shoot :P
>
>   On Fri, Nov 21, 2008 at 7:58 AM, Ralph Hauwert <[EMAIL PROTECTED]>wrote:
>
>> Here's something to catch up too....real functionality :
>> Frustum Culling
>> Frustum Clipping
>> 4x4 projection ;-)
>>
>> Ralph.
>>
>>  On 20 nov 2008, at 19:56, Peter Kapelyan wrote:
>>
>>  Papervision still needs to work on it's object creation speed, and a few
>> other areas that put Away3D listed as #1 on the older test.
>>
>> So Papervision still has some work, and catching up to do :)
>>
>> -Pete
>>
>> On Thu, Nov 20, 2008 at 1:46 PM, Seb Lee-Delisle <[EMAIL PROTECTED]>wrote:
>>
>>>
>>> Actually they were using an old version of Papervision. The updated
>>> test shows that it actually uses less memory than Away...
>>>
>>>
>>> http://www.tsoin.com/asblog/2008/11/20/comparatif-moteurs-3d-et-les-plus-performants-sont/
>>>
>>> Seb
>>>
>>>
>>>
>>> On Wed, Nov 19, 2008 at 3:32 PM, Peter Kapelyan <[EMAIL PROTECTED]>
>>> wrote:
>>> > Someone on pv3d list posted this:
>>> >
>>> >
>>> http://www.tsoin.com/asblog/2008/11/18/comparatifs-moteurs-3d-et-le-plus-performant-est/
>>> >
>>> > papervision3d takes 282MB memory while away3d only takes 32mb?
>>> >
>>> > I think that would mean those optimizations are already in Away3D :)
>>> >
>>> > -Pete
>>> >
>>> > On Wed, Nov 19, 2008 at 10:03 AM, Ian Stokes <[EMAIL PROTECTED]>
>>> wrote:
>>> >>
>>> >> HI,
>>> >>
>>> >> this is a letter posted on the PV3d list showing how a developer
>>> >> modded PV3D garbage collection, even though its a different engine,
>>> >> and might not apply, I thought I'd paste it here in case anyone else
>>> >> wants to look at the techniques;
>>> >>
>>> >> 294913 Number3D (around 30% of total memory usage of the game)
>>> >> > 96649 Vertex3DInstance (15% of total memory usage)
>>> >> > 95508 Dictionaries (10% of total memory usage)
>>> >> > 95433 Vertex3D (20% of total memory usage)
>>> >> > =
>>> >> > 582503 objects in memory for our golfers geometry!
>>> >> >
>>> >> > Given how flash has a mark-sweep garbage collector, this was giving
>>> some
>>> >> > interesting performance issues related to garbage collection.
>>> >> >
>>> >> > So the steps we took to optimise it were:
>>> >> > - Each Vertex3D object has a Dictionary instance that is used
>>> compute
>>> >> > normals. The normals computed happens once, however the dictionary
>>> was
>>> >> > not
>>> >> > not free'd. So we Saved ~90.000 Dictionary objects there
>>> >> >
>>> >> > - Vertex3DInstance has an unused normal instantied to 0,0,0, i.e. a
>>> >> > Number3D, it's never referenced or used outside Vertex3DInstance
>>> removed
>>> >> > this: removed ~90.000 Number3D instances
>>> >> >
>>> >> > - Vertex3D caches a "position" as Number3D that is used once for
>>> Normal
>>> >> > calculation, this was never freed. I removed this and just used
>>> original
>>> >> > x,y,z. saved as i did not see a need for this indirection. around
>>> 90.000
>>> >> > further Number3D instances removed
>>> >> >
>>> >> > - Not sure about the safety of this one, however the normal in
>>> Vertex3D
>>> >> > was
>>> >> > not referenced anywhere other than being initialised. So in the end
>>> i
>>> >> > got
>>> >> > rid of this. Another 90.000 more Number3D instances saved
>>> >> >
>>> >> > - last but not least, every Vertex3D has a Vertex3DInstance object
>>> used
>>> >> > for
>>> >> > the rendered onscreen position. Again, this indirection did not seem
>>> >> > neceserry, so I merged these 2 classes into 1 and same object rather
>>> >> > than
>>> >> > child object which saved alot more unneeded object instances and
>>> >> > references
>>> >> >
>>> >> > So these combined optimisations ended us up with:
>>> >> > - 96649 instances of Vertex3D (all vertexes for all frames
>>> naturally)
>>> >> > - 7398 Number3D instances
>>> >> >
>>> >> > This ended up saving us nearly 500.000 object instances and halving
>>> our
>>> >> > apps
>>> >> > memory usage (reported by flex profiler) from 30MB to 15MB. It also
>>> >> > greatly
>>> >> > improved performance of garbage collection.
>>> >> >
>>> >> > You can see a summary from the profiling here:
>>> >> > http://www.kimdanielarthur.com/tmp/papervision_optimise.gif
>>> >> >
>>> >> > Hopefully useful if anyone runs into similar behaviour!
>>> >> >
>>> >> > Kim Daniel Arthur
>>> >> >
>>> >> > ps.
>>> >> > Thanks again for a great 3D library its really brought extra life to
>>> our
>>> >> > games
>>> >> >
>>> >
>>> >
>>> > --
>>> > ___________________
>>> >
>>> > Actionscript 3.0 Flash 3D Graphics Engine
>>> >
>>> > HTTP://AWAY3D.COM <http://away3d.com/>
>>> >
>>>
>>
>>
>>
>> --
>> ___________________
>>
>> Actionscript 3.0 Flash 3D Graphics Engine
>>
>> HTTP://AWAY3D.COM <http://away3d.com/>
>>
>>
>>
>
>
> --
>  ___________________
>
> Actionscript 3.0 Flash 3D Graphics Engine
>
> HTTP://AWAY3D.COM <http://away3d.com/>
>



-- 
___________________

Actionscript 3.0 Flash 3D Graphics Engine

HTTP://AWAY3D.COM

Reply via email to