Re: VTK + IDL [message #40916 is a reply to message #40681] |
Wed, 08 September 2004 14:16  |
Karl Schultz
Messages: 341 Registered: October 1999
|
Senior Member |
|
|
"Hee Chun" <chun.42@osu.edu> wrote in message
news:da6f35c7.0409071817.4ffbaa88@posting.google.com...
> "Karl Schultz" <kschultz_no_spam@rsinc.com> wrote in message >
>> You can also mix in isosurfaces with the volume rendering to make the
>> layered objects. See the ZBUFFER property on IDLgrVolume.
>>
>> So, yes, you should be able to do something like the kitware picture.
>>
>
> Thanks Karl for the tips. But I still need to ask about the layered
> objects.
> I has been trying to generate isosurfaces of skin and bone. It looks
> fine as I draw them separately, but the semi-transparent skin doesn't
> cover the bone completely as I put them togeter. I know I didn't catch
> the proper isovalue(0~232) for bone/skin with 'head' data set. But I
> tried the following code with the different data sets where I know the
> exact isovalue for skin and bone. The result is the same. Some
> portion of a bone-face is covered by the skin, and the others(ex: the
> bone around eyes) are not. Do I miss something? Is there any
> alternative way?
>
>
> image = [[[red]],[[green]],[[blue]],[[alpha]]]
> oImage = OBJ_NEW('IDLgrImage', image,
> INTERLEAVE=2,Blend_function=[3,4])
>
> isovalue = 120
> Isosurface, volumeData, isovalue, vertex, connect
> oPolyBone = Obj_new('IDLgrPolygon',Data=vertex,Polygons = connect,$
> Shading=1,Style=2, Color=[230,230,230],/Reject,/Zero_opacity_skip)
>
> isovalue1 = 40;
> Isosurface, volumeData, isovalue1, vertex1, connect1
>
> oPolySkin = Obj_new('IDLgrPolygon',Data=vertex1,Polygons = connect1,$
> Color=[255,255,255],Shading=1,Style=2,texture_map = oImage)
> ;
> ;
> oModel ->Add, oPolyBone
> oModel ->Add, oPolySkin
>
I can't tell too much just from your description. But I would guess that
your skin isosurface is intersecting with your bone isosurface near the eyes
and is just disappearing into the bone. Perhaps the data is not good enough
to resolve the two surfaces, or perhaps the isovalues are not quite right.
If I (almost) poke myself in the eye, I notice that there is not a lot of
distance between skin and bone.
As an aside, the ZERO_OPACITY_SKIP property only has effect when there is a
texture map, so you don't need it on the bone polygon.
Other than that, you seem on the right track.
Karl
|
|
|