?The main performance bottlenecks seem to be problems like:
No multi-threading support (would increase rendering speed dramatically if
it existed)
No direct access to the GPU (3D hardware acceleration would make it a lot
faster)
Hopefully both of these problems will be fixed with the next release of
Flash, which will probably include Molehill; which would fix a lot of
performance problems.
-----Original Message-----
From: Alexandar
Sent: Saturday, January 01, 2011 5:35 PM
To: Away3D.dev
Subject: [away3d] Re: apparat
Hello.
From my experience, when you go to a high poly count, the worst
bottleneck is the flash drawing api, and code is relatively
miniscule.
I've been experimenting in away3dlite with objects around 3000+ (up to
15 000) polys on screen, and basicaly, with skybox = 5 fps (ie 100%
screen fillrate), and without skybox it's 20-30 fps, especially when
you move away from the object a lot and you reduce the fill area of
away3d to maybe 10% of the screen.
Although, i remember now from one of the experiments with interiors
that when you turn to a low poly wall, you do get quite a performance
increase compared to when you show the full object (both cover more or
less 100% screen fill area). Although, something is telling me it
doesn't have that much to do with away code as, again, I remember
moving out of that same interior model to cover 20% of screen fill
area and again, the performance skyrocketed...
Same performance increases happen when you reduce the width and height
to half of original (not 4 times as much performance, but if remember
correctly at least three).
That is away3dlite... away3d should be using arrays and similar to do
that kind of stuff manualy, so it might prove to be a little bit (2%
maybe?) of a performance increase, but again, with all the cpu time
taken by that increased "manual" workload, something is telling me
that the majority of performance penalties are again going to be
related to bitmap blipping to the screen (ie flash internals), not any
of the code behind away's classes... yb
And cut a long story short, if I was making flash, I would store flash
api classes like bitmapData and it's bitmap manipulation code inside
the flash player, and would probably do the same to whatever
away3dlite uses to draw stuff to the screen, so unless Macromedia-now
Adobe have tards in their ranks, I doubt it's going to matter... Even
if apparat could do something about flash player internals, you would
probably have a hard time getting access to a users flash player
client (ie impossible without hacking and cracking through windows
defenses and flash player defenses, and I'm not saying you could do
that from withing the .swf)...
Generally , if you want performance, make it as pretty as you want it
to be, then try to make it faster a little bit, and then simply reduce
the screen size of the .swf from say 800x600 to 640x480 and voila,
instant performance... I know it's not that simple sometimes (a lot of
the times), but generally, the only way to get performance out of this
god forsaken platform is to reduce the screen size... that will always
solve all your problems if you aren't really pushing it...
I remember one Alternativa3d (I think) demo where the screen would go
all pixely when moving, and I'm investigating whether I could do a
similar thing in away (ie blittling screen to bitmap data and then
bitting that bitmap data at double size to the screen)...
Basically, for biggest performance increases, reduce the screen size
dramatically... If you happen to be pushing flash that much for it to
be gasping for air, that's the least you can do...
PS. err, now that I think about it, resolution decreases do the same
type of performance increase on gpu's too :) we push the tech to
much...
On Dec 31 2010, 1:15 pm, Craig Murray <[email protected]>
wrote:
Thanks Richard.
What would you estimate the improvements to be of something like
apparat's FastMath where sin and cos functions can be be 20 times as
fast? IE How math-bound is a Away3D?
On Dec 30, 11:20 pm, richardolsson <[email protected]> wrote:> Hi
Craig,
> No, we have not been using any of the apparat tools in Away3d. The
> biggest reason really is that most people download the away3d source
> code and add it to their project. As you know, apparat only works with
> compiled SWF/SWC files. Of course you could use apparat tools yourself
> when you compile your project and it will affect the away3d engine
> code in your app as much as it will your own code.
> For those not familiar with apparat,
> seehttp://code.google.com/p/apparat/
> Cheers
> /R
> On Dec 31, 6:33 am, Craig Murray <[email protected]> wrote:
> > Is Away3D using apparat?