[vtkusers] Transparency issue beetween actors
Bertrand de Boisdeffre
bertrand.boisdeffre at gmail.com
Thu Aug 19 06:03:56 EDT 2010
I tried this code (maybe wrong):
vtkPolyDataMapper.SetSetResolveCoincidentTopologyToPolygonOffset()
slicemapper= vtkPolyDataMapper.New();
sliceMapper.SetInput( "");
...
but it doesn't resolve my problem. However, this method is static and i
don't know if i have to call it as I do in my code.
2010/8/19 Jothy <jothybasu at gmail.com>
> Try setting .SetResolveCoincidentTopologyToPolygonOffset in the
> vtkPolyDataMapper.
>
>
> Jothy
>
> On Thu, Aug 19, 2010 at 9:18 AM, Bertrand de Boisdeffre <
> bertrand.boisdeffre at gmail.com> wrote:
>
>> Hi,
>> I have an issue about actors transparency. I try to display in a 3D scene,
>> some volumes ( vtkPolyData are the source) intersected by a plane which has
>> an image texture.
>> I manage to display correctly all my actors, but when i set an actor
>> opacity to a value different to 1, if this actor is located beetween the
>> camera and the "image plane", it diseapears.
>>
>> Here is my code to built my "image plane":
>>
>> vtkActor sliceActor = new vtkActor();
>> // ImageSlice full path
>> string imageFullPath =
>> System.IO.Path.GetFullPath(xmlBinding.GetSlice(XmlSlice.SliceRef).pictureRelativePathWithOverlays);
>>
>>
>> // Read the file
>> vtkPNGReader imageReader = new vtkPNGReader();
>> if(System.IO.File.Exists(imageFullPath))
>> {
>> imageReader.SetFileName(imageFullPath);
>> imageReader.Update();
>>
>> vtkPlaneSource plane = vtkPlaneSource.New();
>> plane.SetOrigin(0, 0, 0);
>>
>> if (XmlSlice.SliceRef != 0)
>> {
>> plane.SetPoint1(511 * THOutline.PIXELSIZE, 0, 0);
>> plane.SetPoint2(0, 0, -674 * THOutline.PIXELSIZE);
>> plane.SetXResolution(1);
>> plane.SetYResolution(1);
>>
>> }
>> else
>> {
>> plane.SetPoint1(0, 511 * THOutline.PIXELSIZE, 0);
>> plane.SetPoint2(0, 0, -674 * THOutline.PIXELSIZE);
>> plane.SetXResolution(1);
>> plane.SetYResolution(1);
>> }
>> plane.SetCenter(XmlSlice.SlicePos.Xum,
>> XmlSlice.SlicePos.Yum, XmlSlice.SlicePos.Zum + (674 * THOutline.PIXELSIZE /
>> 2 - this.GetFocalPositionImageTopUm()));
>>
>> vtkPolyDataMapper sliceMapper = vtkPolyDataMapper.New();
>> sliceMapper.SetInput(plane.GetOutput());
>>
>>
>>
>> sliceActor.SetMapper(sliceMapper);
>>
>> vtkTexture sliceTexture = vtkTexture.New();
>> sliceTexture.SetInput(imageReader.GetOutput());
>> sliceTexture.InterpolateOn();
>> sliceTexture.SetQualityTo32Bit();
>>
>> sliceActor.SetTexture(sliceTexture);
>>
>> }
>> return sliceActor;
>>
>> So the image is correctly display, but if i had an a other actor as in
>> this schema (top view):
>>
>> _________ :
>> image slice actor
>>
>> 00000000000 :
>> "volume actor"
>>
>>
>> -
>> |
>> | : camera
>>
>>
>> if volume actor opacity = 1, all work well.
>> if volume actor opacity != 1 =>
>>
>> _________ : image slice actor
>>
>>
>> 0 00 : "volume actor"
>>
>>
>> -
>> | | : camera
>>
>>
>> I make some researches on web, and i found (maybe) a solution : using
>> "vtkDephtSortPolyData but I am not sure to know how it works ( and maybe it
>> is not the solution) .
>>
>> So i ask your help.
>>
>> Best Regards,
>> --
>> Bertrand de Boisdeffre
>> Etudiant 2A SICOM Phelma Grenoble-INP
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>
--
Bertrand de Boisdeffre
Etudiant 2A SICOM Phelma Grenoble-INP
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100819/6deb48e3/attachment.htm>
More information about the vtkusers
mailing list