Does an atom with no alpha have a performance hit when it's on screen compared to off?
I know all atoms will always create more and more memory usage, and depending on what they're doing they'll obviously use more cpu, but in terms of actual rendering, does the renderer actually like, entirely just skip the atom and move onto the next one?
If not is it possible to force something to not-render? What if it isn't invisible, can I still force it to not-render? Does setting its invisibility to 101 cause it to not-render?
Questions man. Questions.
![]() Feb 9 2016, 2:38 pm
|
|
An icon with full alpha still has to render, it's rendering an icon with full alpha. If you don't want something to render you need to make it invisible, setting invisibility will make an object not render at all for a client without a high enough see_invisible value.
|
All displayed icons impact performance in the following ways:
- They get added to a list. - They get sorted. - They get examined for rendering. Before sorting, a cull is done on any ovrlay/underlay icons that are out of bounds. If the parent is out of bounds and has nothing left in bounds, it too is culled. Icons that have no icon (that is, there's position info and they're in the list, but no icon will be drawn) will not draw any sprite, so the only savings there is that a few small calls are skipped. If you use an actual icon that just happens to be blank, the renderer will draw it. |
Lummox JR wrote:
All displayed icons impact performance in the following ways: Thanks for the information! A few follow up questions Before sorting, a cull is done on any ovrlay/underlay icons that are out of bounds. If the parent is out of bounds and has nothing left in bounds, it too is culled. What is 'bounds' in this context? Are you speaking of outside the client bubble, or within the client bubble but outside of the view? iirc there's something like an overlay can't be too far from its parent before it no longer shows up but I might just be blowing steam here, could you elaborate a little? Icons that have no icon (that is, there's position info and they're in the list, but no icon will be drawn) will not draw any sprite, so the only savings there is that a few small calls are skipped. Ah this is the real meat of my question. So long as you have an actual icon set, it will attempt to be drawn. Nadrew above mentioned invisibility prevents rendering, is this a 'healthy' 'workaround'? |
Rushnut wrote:
What is 'bounds' in this context? Are you speaking of outside the client bubble, or within the client bubble but outside of the view? iirc there's something like an overlay can't be too far from its parent before it no longer shows up but I might just be blowing steam here, could you elaborate a little? When it comes to the cull, I'm speaking in terms of the actual drawn map, plus any extended bounds from screen objects. (The cull currently does not account for shrinking a PLANE_MASTER via transform, though. Grouping into planes happens after the sort.) Basically at that point all the items that might be drawn have been accounted for, and then it's time to pare down icons that clearly won't be needed. Given that I don't think the cull pulls many icons out at all, I might just lose it. We didn't used to have a cull there at all; it was added when the original webclient went online because at the time all of that was server-based, and the goal was to present fewer icons to the client. If you use an actual icon that just happens to be blank, the renderer will draw it. Yes, that's one option you have. An atom that's invisible to the player won't generate any icons to go into that list in the first place. |