Hi Marius,
Marius Schmidt wrote:
Hi again VisAD community,
as my work progresses I fall more and more in love with the ease of
use of the VisAD library :-). But for today I do not only have laud
but also a bunch of questions I hope you can help me with:
1. Gray Scale:
a) I have learned from the tutorial and documentation, that I have to
create a custom lookup table to provide a gray scale mapping using
Display.RGB(A). If I only map to gray in a 3D display I was wondering,
if internally 24 (32) bit texture are used nevertheless? If yes, is it
possible to enforce the use of an 8-bit luminance texture instead to
reduce memory consumption and allow bigger datasets uploaded to GPU
memory?
Yes, this is possible, we've done this with our new image renderer. It
can be
forced on the command line, and hopefully we'll just detect from table when
it can be used. This is development code, so you won't have access to it
right away.
b) Before I started working with VisAD I experimented with some
fragment shader based application of lookup tables as explained in
some literature. I searched the library for the usage of Shader
programms but did not find any. Am I guessing right that color table
is applied to data before uploading it to the GPU? At which place
might it be possible and a good idea to implement a shader based
lookup table for real-time coloring of depictions (by only exchanging
the lookup map stored as lookup texture in GPU memory and accessed by
a fragment shader)?
Using byReference rendering, and a smart analysis of what work needs to be
done on a 'doTransform', we're getting pretty close to this kind of
capability
while staying away from GPU specifics. I'm not sure how portable shader
programming is.
2. Viewers position:
I have not found a way yet to Setup the initial users view point
viewing direction, I guess I overlooked something, can you help me out ?
I believe Transform3D in Java3D has methods which will help you.
3. Process monitor
Some calculations or data fetching processes in VisAD take longer than
a few seconds and I would like to display their progress using a
process monitor showing the user, that there is still something going
on. I have seen, that as soon as the display is up and there are
calculations going on a "please wait" message is being displayed. But
that does not work for initial pre-displayed processes like fetching
and analyzing data of a bigger Netcdf dataset. Is there a hook to ask
Visad how many percent of a job is already processed ?
4. Netcdf
a) I have seen that there is Plain as a reader for NetCDF datasets. I
transformed one of the dicom image sets available at the human visible
project into netcdf format, but without attention to any convention
like CF. Following the VerySimple and Simple example of the developers
guide did not really worked for me, so I set the MathType,
FunctionType and Set informations up manually and handed them over to
a FlatField. Then I used Plain only to read the sample values from the
netcdf file into the FlatField in reversed order. It works allright
but I am wondering what to keep in mind, that the plain reader works
innately. How do I have to prepare my NetCDF files, which conventions
are known to Plain?
b) I shall try to visualize some of the measuring results of the
Coltrims experiment (for your interest:
http://hsb.uni-frankfurt.de/web/research/atomic/coltrims/).
Unfortunately the data files come in chunks of more than 10 GB each. I
found that there are classes called VirtualData, FileFlatField, etc.
and hope, that my guess is right. Are they are somehow intended to be
used for accessing datasets that do not fit into memory? How do I
utilize them for fast retrieving of slices in dimension of 500MB? I do
not have the heart yet trying to access one of those files, because I
did have not really understood, how to use them, and I do not want to
freeze my system instantly :-D
I'll try to get you some specifics on what was done with caching, our
goal is to be
able to animate perhaps several hundred, roughly 1000x1000, satellite
images. Of
course, caching saves memory, but is performance hit.
Tom