Hi, everyone:<br>
<br>
I need to use Volume Rendering on an unstructured grid made out of
voxels, the problem is that I have a lot of them (the grid minimum size
is 50x50x50 so at least 25000 voxels).<br>
<br>
I'm doing a truly horrible hack to try to color them: generate a
vtkPoint for each voxel in the grid by means of<br>
<br>
vtkDoubleArray *pts = ....<br>
<br>
for (i=0; i < numberOf Voxels; i++)<br>
pts->InsertNextValue(i);<br>
<br>
Then I assign pts to the vtkCellData of my grid:<br>
<br>
(grid->GetCellData())->SetScalars(pts);<br>
<br>
And finally I populate the color transfer function.<br>
For example if I want to color my grid like a red-green chess board, I
can do: <br>
<br>
for (i=0; i < numberOfVoxels; i++) {<br>
if(i%2 == 0 && i != 0)<br>
ctrans->AddRGBPoint(pts->GetValue(i), 1, 0, 0); <br>
else ctrans->AddRGBPoint(pts->GetValue(i), 0, 1, 0); <br>
}<br>
<br>
The final result is very strange, the colors don't alternate the way
they are supposed to (see the attached jpgs, the first one dimensions
are: 5x5x5 and it looks good, the second one 19x19x19 but the checkered pattern dissapears).<br>
<br>
Obviously I'm doing things wrong (the fact is that I'm somewhat new to
vtk and I don't have the slightest idea of how to accomplish this), or
is there a (short) limit in the number of points my transfer function
can have?<br>
<br>
If not, how can this be accomplished?<br>
<br>
Thanks a lot,<br>
Juan<br>