[vtkusers] vtkFixedPointVolumeRayCastMapper question
Lisa Avila
lisa.avila at kitware.com
Wed May 25 15:23:12 EDT 2005
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
><<mailto:lisa.avila at kitware.com>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>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>http://www.vtk.org/Wiki/VTK_FAQ
>>Follow this link to subscribe/unsubscribe:
>><http://www.vtk.org/mailman/listinfo/vtkusers>http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
>
>--
>Randall Hand
><http://www.yeraze.com>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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20050525/2b88ef45/attachment.htm>
More information about the vtkusers
mailing list