VSG Logo   OpenInventor Forum

Go Back   Open Inventor Forum > Open Inventor Main Forum

Open Inventor Main Forum General discussions about Open Inventor from VSG

Reply
 
Thread Tools Display Modes
  #1  
Old 04-01-2012, 12:34 AM
East2010 East2010 is offline
Distinguished Member
 
Join Date: Aug 2011
Location: China
Posts: 117
Default how to improve the picture quality of a slice?

I create a segy slice with SoOrthoSlice,SoVolumeData,SoTransferFunction,and find that the quality of it is not good,how to improve it?that is,which class (or classes) will be used?

Thank you.
Reply With Quote
  #2  
Old 04-03-2012, 05:47 AM
mikeheck's Avatar
mikeheck mikeheck is offline
Moderator
 
Join Date: Sep 2008
Location: Carlsbad, CA, USA
Posts: 809
Default

Quote:
Originally Posted by East2010 View Post
I create a segy slice with SoOrthoSlice,SoVolumeData,SoTransferFunction,and find that the quality of it is not good,how to improve it?that is,which class (or classes) will be used?
Can you be more specific about how the quality is not good?

One possibility is that LDM is not rendering using the full resolution data. That's not usually a problem for SoOrthoSlice, but it is possible if the volume is very large and LDM's maximum allowed memory is relatively small. That's not likely to happen with Open Inventor 8.1 or later because the default memory setting is a percentage of the total system memory. However using 8.0 it might be necessary in some cases to explicitly set maximum system and/or texture memory larger than the default (see SoLDMGlobalResourceParameters).

If you're rendering with the full resolution data already, then about the only option to increase quality for SoOrthoSlice is to set the interpolation field to MULTISAMPLE_12 (instead of the default LINEAR).
Reply With Quote
  #3  
Old 04-05-2012, 04:02 AM
East2010 East2010 is offline
Distinguished Member
 
Join Date: Aug 2011
Location: China
Posts: 117
Default

First,I explaint the not good quality of segy section:
When I rotate the segy slice with the mouse,and find that the surface of it will change,shows as attchments.(I think it loads different level data when the section rotated,so I want it not to change when it rotated),and find that the surface of it does not look like a segy section for it is not continuous along the lineups.

So I think the quality of it is not good.

Second,
Quote:
If you're rendering with the full resolution data already
,
Sorry,I do not know 'the full resolution'.If do it,what about the speed?
Attached Images
File Type: jpg picture1.jpg (16.0 KB, 2 views)
File Type: jpg picture2.jpg (12.2 KB, 2 views)

Last edited by East2010; 04-05-2012 at 09:15 AM.
Reply With Quote
  #4  
Old 04-06-2012, 07:41 PM
tachart tachart is offline
Active Member
 
Join Date: Feb 2012
Location: Houston
Posts: 25
Default

Mike,
I'm having the same issue with SoHeightFieldRender. When I change either the geometry or proerty values, it renders first with a lower-resolution version of the property (and probably the geometry also, but I can't really tell with my example) and then immediately rerenders with full resolution.

Is there any way to force full resolution rendering? I assume this is the same for all the VolumeViz render nodes.

Thanks,
Tim
Reply With Quote
  #5  
Old 04-07-2012, 01:17 AM
mikeheck's Avatar
mikeheck mikeheck is offline
Moderator
 
Join Date: Sep 2008
Location: Carlsbad, CA, USA
Posts: 809
Default

Quote:
Originally Posted by East2010 View Post
First,I explaint the not good quality of segy section:
When I rotate the segy slice with the mouse,and find that the surface of it will change,shows as attchments.(I think it loads different level data when the section rotated,so I want it not to change when it rotated),and find that the surface of it does not look like a segy section for it is not continuous along the lineups.
So I think the quality of it is not good.

Second,
Sorry,I do not know 'the full resolution'.If do it,what about the speed?
The "full resolution" data is the actual data values in the source data set. This is what VolumeViz will display IFF there is enough memory to load it. The lower resolution (subsampled) data is what VolumeViz will display when there is not enough memory. By default VolumeViz is allowed to display a mix of full resolution and subsampled data. I think that's what we're seeing in the first image you posted and maybe in the second image.

It will helpful if you could post:
- Dimensions and data type of the volume
- Tile size you are using
- How much memory VolumeViz is allowed to use (Value returned by SoLDMGlobalResourceParameters::getMaxMainMemory()
From this info we can compute the memory needed for your volume.

Normally if you're seeing mixed resolution tiles that means there is not enough memory to load the necessary full resolution tiles. Loading the data for an OrthoSlice uses more memory than you might think... That's because, by default, LDM loads "tiles" of data. Typically a tile is 64^3 or 128^3. In the Users Guide chapter about VolumeViz there is a section called "LDM Memory Requirements" (it's a sub-section of "Large Data Sets") that explains the math. To summarize, for a 1000^3 volume containing float data, you need 300 MB of memory to load the tiles for one slice. You only need 80 MB to load the tiles if it's byte data. And of course if you display another slice within that same "slab" of tiles you don't need to load any additional data. Open Inventor since 8.5 (I think) defaults the VolumeViz memory to 50% of system memory, but note that in older versions of OIV the default memory limit is only 256 MB.

So the first/best strategy to eliminate mixed resolution is make sure the VolumeViz memory limit (see SoLDMGlobalResourceParameters setMaxMainMemory) is, if possible, big enough to load all the tiles in the slice.

If you don't need to change the slice number very often (and have OIV 8.0+), an alternate strategy is to set the largeSliceSupport field to TRUE (read about it in the SoSlice class). Basically what this does is tell VolumeViz to make special requests to the volume reader and only load the minimum set of data values needed for this slice, instead of loading complete tiles. It always displays full resolution data. For a 1000^3 volume this reduces the memory requirement for a slice of float values to around 4 MB. However it will be slower to display the adjacent slice.

Another alternative, with different trade-offs, is to call the SoLDMGlobalResourceParameters class setSliceEqualResolution() method with TRUE. This tells VolumeViz that all the tiles used to render a slice must be the same resolution. This avoids the mixed resolution case. However if there isn't enough memory to load all the full resolution tiles, VolumeViz will display the slice using lower resolution data.
Reply With Quote
  #6  
Old 04-07-2012, 01:43 AM
mikeheck's Avatar
mikeheck mikeheck is offline
Moderator
 
Join Date: Sep 2008
Location: Carlsbad, CA, USA
Posts: 809
Default

Quote:
Originally Posted by tachart View Post
Mike,
I'm having the same issue with SoHeightFieldRender. When I change either the geometry or proerty values, it renders first with a lower-resolution version of the property (and probably the geometry also, but I can't really tell with my example) and then immediately rerenders with full resolution.

Is there any way to force full resolution rendering? I assume this is the same for all the VolumeViz render nodes.
Yes, you can request that only full resolution data be used.
From each data node (the geometry and property nodes), get the SoLDMResourceParameters object from the ldmResourceParameters.
On this object set the fixedResolution field to TRUE and the resolution field to 0 (full resolution).

Note this is just a request. If VolumeViz can get all the data into memory, it will do that. If not, it may have to use some lower resolution data.

Also note that when loading data from disk, this may cause a longer delay between changing the data and seeing the result on the screen. That's because it takes longer to load the full resolution tiles. In your case, where you're loading data from memory and it's effectively a new data set, it doesn't matter.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:28 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, vBulletin Solutions, Inc.
Copyright VSG, SAS, 2008.