[vtkusers] vtkFixedPointVolumeRayCastMapper question
Randall Hand
randall.hand at gmail.com
Thu Jun 2 13:52:46 EDT 2005
Ok, I was finally able to resolve this. the problem seems to have been in
how I was combining the 2 datasets. I'm guessing the FixedPointRayCastMapper
must be doing some fancy pointer magic for speed, but when I used a :
OpacityData->GetPointData()->AddArray(Colordata->GetPointData()->GetArray("colorField"))
and then a vtkMergeFields to combine the two arrays, it didn't work.
I simply switched to using a vtkImageAppendComponents and it works perfectly
now.
(Sorry Lisa, forgot to include the mailing list the first time... Reply vs
Reply All :) )
On 5/25/05, Lisa Avila <lisa.avila at kitware.com> wrote:
>
>
> Well, the TestFixedPoint*.tcl scripts test all the configurations (single
> component, multiple component, independent, not independent, shade on, shade
> off, nearest, linear, MIP, composite, etc.) and this test is passing so
> there is at least one example of 2 component dependent data rendering
> correctly. Can you try this: save the data that you input to the volume
> mapper. Can you load this into VolView? The mapper has changed quite a bit
> since that released version, but it should at least give us a clue that your
> data is what you expect it to be. The fact that you have a solid black cube
> when you don't have shading on and your color transfer function is set to
> solid red is suspicious. What type is your data? (int, float, unsigned
> char,....?) (The test only checks unsigned char for two component depended -
> I can change it to your data type if that is different to see if a problem
> arises.) Does your color function span the scalar range of your first
> component? (Shouldn't matter since Clamping is on by default, but perhaps
> you turned it off?)
>
> Thanks,
>
> Lisa
>
>
> At 03:04 PM 5/25/2005, Randall Hand wrote:
>
> Sadly, none of that worked.
> 1) Checked, and even if I have them backwards I should see something other
> than a blurry black spot.
> 2) Tried, no difference really.. With shading on I get a few specular
> highlights on my blurry black spot, but still isn't right.
> 3) I'm working with offscreen Mesa rendering, which is why I had this on.
> I commented it out, so it would use the default, but still no dice.
> 4) I set it to use all-red, and I still got my blurry black spot. I
> changed it to be all-red, and all opaque (set my opacity function to a
> constant 1) and my blurry black spot become a solid black brick (as
> attached).
>
> Any ideas?
>
> On 5/25/05, *Lisa Avila* <lisa.avila at kitware.com > wrote:
>
> Looking quickly at your code I don't see anything obviously wrong.
> However, I would suggest trying a few things to isolate the problem:
>
> 1) Make sure your first component is the one you want mapped to color, and
> the second is the one you want mapped to opacity.
>
> 2) Try volProp->ShadeOff(). Perhaps you do not have good gradients in your
> data and that is causing the problem (although you have a high ambient so
> that shouldn't be the problem...)
>
> 3) Leave your ImageSampleDistance at 1.0 (the default). Keep in mind that
> a distance of 0.5 means that you cast 4 rays for every pixels on the
> screen. I believe when OpenGL maps this texture to the screen, it will
> sample it for the pixel value, meaning that you are throwing away 3/4 of the
> information you created during ray casting.
>
> 4) If all these fail, try using a solid color transfer function (all
> values map to red for example) - do you get what you expect?
>
>
> Lisa
>
>
>
>
> At 02:15 PM 5/25/2005, Randall Hand wrote:
>
> I have a long pipeline setup to render a multifield dataset. one field I
> want mapped to opacity, and the other one is a vector that I want magnitude
> mapped to color.
> My pipeline resembles the following:
>
>
> vtkDataSetReader -> vtkArrayCalculator (to calculate magnitude) ->
> vtkGaussianSplatter -> vtkImageShiftScale = Dataset with ColorField single
> component scalar
> +-> vtkGaussianSplatter -> ImageShiftScale = Dataset with OpacityField
> single component scalar.
>
> I then do a
> OpacityData->GetPointData()->AddArray(Colordata->GetPointData()->GetArray("colorField")),
> and pass the result through a vtkMergeFields to combine the 2 fields into a
> single dual-component field, and make the new field the Active Scalar.
>
>
> I then construct my volume parts:
> vtkVolumeProperty *volProp = vtkVolumeProperty::New();
> volProp->IndependentComponentsOff();
> volProp->SetColor(xf_Color);
> volProp->SetScalarOpacity(xf_Opacity);
> volProp->SetInterpolationTypeToLinear();
> volProp->ShadeOn();
> volProp->SetAmbient(0.7);
>
> // Now setup the Ray Caster
> vtkFixedPointVolumeRayCastMapper *modelMapper =
> vtkFixedPointVolumeRayCastMapper::New();
> modelMapper->SetImageSampleDistance(0.5);
> modelMapper->SetSampleDistance(0.1);
> modelMapper->SetInput(mergeFilter->GetOutput());
>
> // Creating Volume
> vtkVolume *volume = vtkVolume::New();
> volume->SetMapper(modelMapper);
> volume->SetProperty(volProp);
> volume->Update();
>
> When all is said and done, however, I just get a darkish blurry spot
> (image Attached). Can anyone see what's wrong, or have I exposed a bug in
> the FixedPointVolumeRayCastMapper ? I've been waiting to do this since I
> figured out that the old VolumeRayCastMapper couldn't handle multi-component
> data, and i'm anxious to see this work for once :)
> --
> Randall Hand
> http://www.yeraze.com
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
>
>
> --
> Randall Hand
> http://www.yeraze.com
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
--
Randall Hand
http://www.yeraze.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20050602/a64bf4eb/attachment.htm>
More information about the vtkusers
mailing list