Rank: Advanced Member
Groups: Guest
Joined: 6/9/2016(UTC) Posts: 34
Thanks: 22 times
|
When rendering very large images (my scenario at the moment is 8267x16062 pixels) it takes a very long time to render other images onto it (i didnt time it exactly but over 10 minutes). Due to pipelining where it chunks up the rendering, it calls my drawer a lot of times and each time i reload and rerender a lot of high resolution images (in my case 18).
One optimisation i want to try is only drawing objects that are actually inside the current chunk being rendered by the pipeline. Is there any information anywhere on how to do this culling? or do you have any code samples please? Matrix math isn't my strong point.
I know there are also other optimisations i can make as well such as caching the images in memory but this seems like it would improve performance a lot.
ps. Is it possible to tune the pipelining code such as configuring the size of the chunks? (or would that be a bad idea anyway?)
Thanks
|
|
|
|
Rank: Advanced Member
Groups: Guest
Joined: 9/19/2006(UTC) Posts: 505
Was thanked: 41 time(s) in 41 post(s)
|
Hi Chris, It's hard to say for sure what is the reason of low speed and whether it is possible to do something to improve it without seeing the code. There is no way to change the chunk size. The idea is not bad, and we will consider it in future versions. The only way to get the current offset of a drawer is to check Ty element of the transformation matrix. Each time it will be different. Code:drawer.Draw += (sender, e) =>
{
Console.WriteLine(e.Graphics.Transform.Elements[5]);
};
And also there are two things I would try to improve the performance: - If there is no need in matrices and clipping paths, try to use Combiner class for drawing images. It should be faster.
If you give us a small snippet, I could check it more precisely. |
Best regards, Eugene Kosmin The Aurigma Development Team
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.