Re: Oceans [message #43388] |
Wed, 06 April 2005 12:13  |
Rick Towler
Messages: 821 Registered: August 1998
|
Senior Member |
|
|
Ken Mankoff wrote:
> Hi Group,
>
> I have just been handed a project to image modern and paleo-ocean
> bathymetry, 3D temperature, and 3D salinity. On a 2 deadline.
>
> I can contour the bathymetry quite easily, and produce small-multiple
> images of the data in X,Y, and Z without a problem. That'll probably
> take a day. Now I have 2 weeks minus a day to do the rest.
>
> I don't have a whole lot of 3D experience in IDL and am wondering if
> anyone can provide a suggestion or code base that could help with this
> project.
>
> I know Rick Towler does some similar work, and I have a feeling the
> Thunderstorm Demo would be a good place to start too. If anyone has any
> other advice I'd love to hear it.
Hi Ken,
First thing I would do is order that new graphics card. :) The best
"gaming" card you can afford (Geforce 6600GT or 6800GT are nice
options). Really. You can burn up a lot of polys rendering large
surfaces. But maybe you're set...
I can offer my camera object and the camdemo_di_cullnfly application. I
personally do all but the simplest 3d visualizations with my camera.
Yeah, easy for me, but it is really pointless to do 3d w/o some easy way
to navigate. The di_cullnfly demo should introduce you to using the
camera in an interactive sense and demonstrate view frustum culling
which, if you'll be writing an interactive app, you'll probably want to
consider at some point.
As for your bathymetry objects, I personally roll my own with a
quad-strip/tri-strip meshing algorithm and IDLgrPolygon but you could
use IDLgrSurface. You'll probably want to do the lighting at this stage
as well since optimal lighting is most likely surface dependent. I have
an app that allows for interactive "tweaking" of bathymetry (lighting,
decimation, meshing, sampling, texturing) but it is *very* rough. I may
be convinced to cough it up but with a huge YMMV/YGWYPF clause.
I don't know the best way to visualize 3d temp and salinity (I don't
worry about the water, just the creatures in it :) Volumes are pretty
much out of the question. Too slow. You could use IDLgrPolygon objects
as 3d contours but meshing would be a bit of a challenge (maybe QHULL?).
Presentation too would be tricky. Color coded opaque objects would be
easy but you wouldn't be able to see the bathymetery except in
x-section. Transparent objects would look "cool" but they would be a
headache to manage with IDL's simple renderer (Karl, any progress on
that new renderer ;). Another approach would be to texture a
"billboard" that covers the entire draw window to display the current
temp/salinity slice. A general solution would be very tricky though
(but also very cool!) Hopefully others can give you some ideas.
If you are going to be creating fly thru animations let me know. I have
a "director" object that while isn't really ready for public consumption
allows you to create/save/load and run the camera along flight paths.
Also, if you're on windows you'll want Ronn's IDLtoAVI .dlm.
Here's the URL. Yes, I am embarrassed that the pages are broken in
Firefox/Moz but some day, s-o-m-e d-a-y, I will fix them...
http://www.acoustics.washington.edu/~towler/IDLviz.html
-Rick
|
|
|
Re: Oceans [message #43442 is a reply to message #43388] |
Fri, 08 April 2005 10:50   |
Ken Mankoff
Messages: 158 Registered: February 2000
|
Senior Member |
|
|
On Wed, 6 Apr 2005, Rick Towler wrote:
> Ken Mankoff wrote:
>> Hi Group,
>>
>> I have just been handed a project to image modern and paleo-ocean
>> bathymetry, 3D temperature, and 3D salinity. On a 2 week deadline.
>>
>> I can contour the bathymetry quite easily, and produce
>> small-multiple images of the data in X,Y, and Z without a
>> problem. That'll probably take a day. Now I have 2 weeks minus a
>> day to do the rest.
>>
>> I don't have a whole lot of 3D experience in IDL and am wondering
>> if anyone can provide a suggestion or code base that could help
>> with this project.
>>
>> I know Rick Towler does some similar work, and I have a feeling
>> the Thunderstorm Demo would be a good place to start too. If
>> anyone has any other advice I'd love to hear it.
>
> First thing I would do is order that new graphics card. :) The
> best "gaming" card you can afford (Geforce 6600GT or 6800GT are
> nice options). Really. You can burn up a lot of polys rendering
> large surfaces. But maybe you're set...
Ha! I've been given 2 weeks. Not 2 weeks and a graphics card :).
My main dev system is a Dual 2.5 G5. Works well there. Right now I'm
on a 1 GHZ G4 PowerBook which is the system that this will be
running on. So thats that. If it needs to look good then I'll
pregenerate a movie, or the audience can just wait a few seconds.
The great news is I just converted my data into the format that the
thunderstorm demo reads, and it works perfectly. It took about 20
minutes to complete the project. OK, not quite, I still have to go
in and re-label the axes, and the UI could use some re-arranging,
but somehow I think I'll meet the deadline now. It is times like
this that I truly LOVE IDL. Not like those times when I am trying to
get high quality fonts or do anything graphically fancy in Direct
Graphics.
As for the rest of your long (and useful) post. Thank you. It looks
like lots of good information, and I'll be exploring it and asking
for more help when I figure out exactly what is wanted beyond what
the thunderstorm demo provides. I know already, for example, that we
need the ability to inject data / modify points. That might be more
important than fly-through interactivity.
> Here's the URL. Yes, I am embarrassed that the pages are broken
> in Firefox/Moz but some day, s-o-m-e d-a-y, I will fix them...
>
> http://www.acoustics.washington.edu/~towler/IDLviz.html
FYI, it looks fine in my FireFox (OS X 1.0.2 i think). And safari.
Not sure what the problem is.
I have downloaded your demos, but I cannot run them. They crash on
line 374 in rhtgrcamera__define.pro on the PLANES=planes keyword.
; Calculate viewing frustum vertices.
self.frustum = RHTgrCamera_ComputeFrustum(self.zclip, self.fov, $
self.eye[2], PLANES=planes)
self.frustPlanes = planes
-k.
|
|
|
|
Re: Oceans [message #43818 is a reply to message #43748] |
Sat, 30 April 2005 10:37   |
Ken Mankoff
Messages: 158 Registered: February 2000
|
Senior Member |
|
|
On Thu, 28 Apr 2005, naics wrote:
> ...looking at the thunderstorm demo as a starting point.
>
> I was just courious about what format the demo reads and how you
> went about converting your data to this .
If you look in the stormtrack code (I think it is d_vectrack.pro)
you will find a line that looks like this:
restore, demo_filepath('storm25.sav', SUBDIR=['examples','demo','demodata'])
Go restore that file, and I see it contains: P,T,U,V,W, all of type
FLOAT = Array[61, 61, 25]
I made a SAV file that contained the same variable names as above.
My dimensions were different (still 3, but (36,24,13)) and the demo
handles this without a problem. Actually, I do not have vector data,
so I left U and V as empty (all zero) arrays.
Copy d_vectrack somewhere local, and replace the restore command to
work with your own file, and voila!
-k.
|
|
|
|
Re: Oceans [message #43854 is a reply to message #43818] |
Thu, 05 May 2005 15:31  |
naics
Messages: 8 Registered: April 2005
|
Junior Member |
|
|
Hey Ken,
Thanks for the response.
One more thing though, how did you access the "storm25.sav" file. Did you
just enter:
restore, demo_filepath('storm25.sav',&
SUBDIR=['examples','demo','demodata'])
into the command line. I tried that but nothing happened.
thanks for you help
|
|
|
Re: Oceans [message #43855 is a reply to message #43818] |
Thu, 05 May 2005 15:23  |
naics
Messages: 8 Registered: April 2005
|
Junior Member |
|
|
Hey Ken,
Thanks for the response.
One more thing though, how did you access the "storm25.sav" file. Did you
just enter:
restore, demo_filepath('storm25.sav',&
SUBDIR=['examples','demo','demodata'])
into the command line. I tried that but nothing happened.
thanks for you help
|
|
|