Page 1 of 1

Performance Optimization wiki article

PostPosted: Tue Apr 13, 2010 5:44 am
by Aloys
Regularly people ask about various ways to enhance performance in an Age. There are number of way to do that; from the obvious to the very specific. There are a bunch of techniques and things to keep in mind, some are Plasma/Alscript specific, some are not; but it is a lot of very diversified infos for a single subject and it is worth it to try and centralise that in a single article.

The difficult part is it to have an article covering a wide range of things while not being too massive. This article should only give an overview of things and provide links to other more specific articles when possible (eg:vis regions,). I know that there are many such articles that are currently missing or imcomplete, it might be a good occasion to further them.

I am not knowledgable enough about the more specific coding aspects but I can lay a base work with all that I know for more specialised people (or myself as I learn more) to fill in the (many) blanks. Even disregarding some specific topics, there is a lot of other content to expand upon and perfect; this is just a first draft.

The article is here. Feel free to complete it where possible.

Re: Performance Optimization wiki article

PostPosted: Tue May 04, 2010 1:17 pm
by ddb174
Good idea! It's important information that all Writers will probably want to know.

Re: Performance Optimization wiki article

PostPosted: Tue May 04, 2010 1:34 pm
by Paradox
I was just adding a bit more information about Occluders, and looking for some examples on Google, and I stumbled upon [ulr]http://www.nodraw.net/2009/12/optimization-in-source-a-practical-demonstration/[/url].
Although the article is geared towards the Source engine, the design principles apply reasonably well to Plasma, especially the part about occluders.

One of the big optimisations that we could make is to generate an actual BSP Tree when exporting, but so far our attempts with libHSPlasma have just made geometry randomly vanish. This is one of the first things I'd like to see if we ever get the source for Cyan's plugin.

Re: Performance Optimization wiki article

PostPosted: Wed May 05, 2010 10:55 am
by ddb174
Drizzle correctly generates a BSP tree and understands the format of them, I believe. (I used it for realMyst->Uru conversion.) Even though most of the realMyst code isn't in the trunk yet, I think this is. So go ahead and use that if it helps.

Re: Performance Optimization wiki article

PostPosted: Wed May 05, 2010 10:56 am
by Paradox
Ah, thanks, I'll take a look. Real code certainly beats deciphering floating point assembly for a bounding box radix sort ;)

EDIT: I'm not finding anything in Drizzle that generates a tree from scratch, just code to handle removing objects. :\