NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Rob- Try using the visad.bom.ImageRendererJ3D which will give you better performance at displaying the sat image. We use it in the IDV for all our texture map rendering if possible because it really speeds up the rendering. For even better performance, you can try using the setReuseFrames() method of that renderer, but you have to be careful. The algorithm will not have to redraw the image if the time is the same. However, since it is only based on time, it doesn't account for different areas or different bands if you change the data in the DataReference. Also, if you do something like change the color palette, it will not be rerendered unless you turn reUseFrames off. Bill's suggestion is a good one to limit yourself to just one rebuilding of the display, but in the end, you are rebuilding the entire display which can be time consuming. Hope that helps. Don Rob Hackett wrote:
I am writing an application which plots many different types of data onto the Display at once. I do not suffer from any real performance issues until I render a satellite image extracted via the AreaAdapter to the display, using a ScalarMap with a DisplayRealType of Display.RGBA. Once the image has been rendered (which in itself takes several seconds), the application begins to suffer from severe performance problems, particularly when adding new DataReferences. Even adding simple data like a Text object takes about 20 seconds, more complicated operations such as drawing a front with the FrontDrawer become virtually unusable. I think that what is happening is that by adding a DataReference I am triggering an event which causes the Display to redraw all it's data, including the satellite image, which then takes several seconds to redraw. This problem is then compounded by the fact that more than one event, will cause the image to be rendered several times, bringing everything else to a standstill. Is there some way of temporarily delaying the replotting of the image until all other activity from an event, or user interaction has ceased. This way the replotting could be performed without holding anything else up? Alternatively, is this caused by something else that I haven't considered? thanks, Rob
-- ************************************************************* Don Murray UCAR Unidata Program dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000 (303) 497-8628 Boulder, CO 80307 http://www.unidata.ucar.edu/staff/donm "Time makes everyone interesting, even YOU!" *************************************************************
visad
archives: