I apologize ahead of time if there has already been a thorough discussion of this topic, but I couldn't easily find one on the boards!
What i'm after is a discussion on how you all work with a large number of paths or really complex paths that have gradients, blurring, etc. The reason I ask is because I experience a great deal of slow down in rendering when I start adding blurs or clones of objects. Seeing some of the images from the gallery on inkscape.org I know there must be some kind of trickery to doing this. There are beautiful complex vector graphics in the galleries and there must be something i'm missing here!
I have some simple ideas on how to speed up rendering each with pros and cons i've listed below. But i'm really anxious to hear what you guys may have to offer as alternatives or corrections.
- Moving the offending (slow rendering) paths to their own layers and hiding them until I'm done
Pro - This provides a 100% speed up
Con - Now parts of my image are missing, making it impossible to design based on what the hidden layers look like!
- Exporting the slow rending paths to a PNG and reimporting into inkscape
Pro - allows me to see what my final image will look like without having to hide layers of my image
Pro - Decent amount of speed up
Con - There goes the whole benefit of being a vector graphic
Con - Final rendering now looks a lot uglier (crummy aliasing)
What would really be nice is if there was some way to tell inkscape to render a layer once and not try to render it again until I told it to! Kind of like a low res raster graphic that could be used for design only. Is there a feature like this that I'm not seeing? Am I doing one of the things wrong above? Thanks for all your help!
Jason
Working with large number or complex paths
Re: Working with large number or complex paths
One thing that helps is changing the render quality of filters. File>Inkscape preferences>Filters or shift+ctrl+P will bring up the dialog for this. Use the lowest quality for working and then increase the quality when you want to see what the final product will look like.
Re: Working with large number or complex paths
llogg wrote:jason6428 wrote:I have some simple ideas on how to speed up rendering each with pros and cons i've listed below. But i'm really anxious to hear what you guys may have to offer as alternatives or corrections.
One thing that helps is changing the render quality of filters. File>Inkscape preferences>Filters or shift+ctrl+P will bring up the dialog for this. Use the lowest quality for working and then increase the quality when you want to see what the final product will look like.
Alternatively, you can work in 'No Filters' or even 'Outline' display mode when editing files with many filter effects and blurs, especially when zooming in closely.
Re: Working with large number or complex paths
Hiding and unhiding layers is quick and easy, especially using the Layers dialog. Just click the eye icon (open and close the eye). I use it constantly! Although, if you do have a heavy load in the layer, it might take a moment or 2 to redisplay after clicking unhide.
Another idea is sub-layers. If a layer is taking too long to re-render, then you might consider breaking it up into sub-layers.
The only other trick I know of, is to use File menu > Vacuum Defs, periodically, as you work. Usually I only use that when I'm finished with a project. But if it's a huge project, like one I'm working on now, I use it now and then, just to reduce the load as I go.
Another idea, although not usually preferred, is to reduce the number of nodes (Path menu > Simplify). If for some reason, you have a lot of nodes, and path precision isn't a factor, then reducing the number of nodes can help. Also, I've noticed certain tools and/or features add extra nodes that really aren't needed -- the Paint Bucket tool often creates 5 or 6 nodes in a corner, when only one is really necessary; path Inset and Outset; Stroke to Path; Tweak tool; Spray paint tool ... OH! And Calligraphic lines typically have a gazillion more nodes than are often needed.
But that said, reducing the number of nodes isn't going to reduce the file size by nearly as much, as removing filters, for example, or gradients. If for some reason, you have more than twice as many nodes as you need, reducing them will help. But otherwise, not a big help.
Another idea is sub-layers. If a layer is taking too long to re-render, then you might consider breaking it up into sub-layers.
The only other trick I know of, is to use File menu > Vacuum Defs, periodically, as you work. Usually I only use that when I'm finished with a project. But if it's a huge project, like one I'm working on now, I use it now and then, just to reduce the load as I go.
Another idea, although not usually preferred, is to reduce the number of nodes (Path menu > Simplify). If for some reason, you have a lot of nodes, and path precision isn't a factor, then reducing the number of nodes can help. Also, I've noticed certain tools and/or features add extra nodes that really aren't needed -- the Paint Bucket tool often creates 5 or 6 nodes in a corner, when only one is really necessary; path Inset and Outset; Stroke to Path; Tweak tool; Spray paint tool ... OH! And Calligraphic lines typically have a gazillion more nodes than are often needed.
But that said, reducing the number of nodes isn't going to reduce the file size by nearly as much, as removing filters, for example, or gradients. If for some reason, you have more than twice as many nodes as you need, reducing them will help. But otherwise, not a big help.
Basics - Help menu > Tutorials
Manual - Inkscape: Guide to a Vector Drawing Program
Inkscape Community - Inkscape FAQ - Gallery
Inkscape for Cutting Design
Manual - Inkscape: Guide to a Vector Drawing Program
Inkscape Community - Inkscape FAQ - Gallery
Inkscape for Cutting Design
Re: Working with large number or complex paths
I usually switch to "No Filters" mode once things start slowing down. I really wish there was a way to switch rendering modes on a per-layer basis, so that I could flag some layers for full display, some for "No Filters", some for "Outline". That would let me keep colour or filters visible for those objects I need for detailed reference, while putting everything else into outline mode to preserve a general sense of scale and position.
Re: Working with large number or complex paths
There is weird workaround I discovered, but I'm not sure of the impact of using it.
Open the XML editor, and click on the SVG layer group. This will outline the layer objects like they are a group. (Sometime you need to click on something else in the XML editor to get the selection outline).
Now go Edit->Make Bitmap Copy. This makes a bitmap copy of the entire layer outside of the layer hierarchy. You can now hide the original layer from the layer dialog, so it isn't rendered on the fly anymore.
As a extra step with the bitmap newly created (and selected) rightclick Object Properties and "lock" it, and change the ID to something recognizable. This will let you find it in the XML editor later to delete.
-Rob A>
Open the XML editor, and click on the SVG layer group. This will outline the layer objects like they are a group. (Sometime you need to click on something else in the XML editor to get the selection outline).
Now go Edit->Make Bitmap Copy. This makes a bitmap copy of the entire layer outside of the layer hierarchy. You can now hide the original layer from the layer dialog, so it isn't rendered on the fly anymore.
As a extra step with the bitmap newly created (and selected) rightclick Object Properties and "lock" it, and change the ID to something recognizable. This will let you find it in the XML editor later to delete.
-Rob A>
Re: Working with large number or complex paths
Thanks to all of you for your suggestions! I was not aware of several of the methods you mentioned above. Adjusting the filter & blur qualities, using Edit -> Make a bitmap copy and changing the display mode to outline all have excellent results and still allow me to design while still providing a good sense of what the rest of the image will look like without hiding layers. Thanks again for your help!