[vtkusers] Texturing a surface triangle - how to?
Antoine Boivin
a.boivin at m2m-ndt.com
Mon May 2 05:10:00 EDT 2005
To apply the texture coordinate you can make :
profile getPointData setTCoords texcoord
----- Original Message -----
From: "Tron Darvann" <tdarvann at lab3d.odont.ku.dk>
To: <vtkusers at vtk.org>
Sent: Monday, May 02, 2005 10:59 AM
Subject: [vtkusers] Texturing a surface triangle - how to?
> Dear VTK-users,
>
> Does anybody know how to accomplish the following:
>
> I have
> 1) a triangle defined as 3 points,
> 2) And I have a texture (a 2D image), and finally I have
> 3) the texture coordinates for 3 positions in the texture.
>
> How do I paste my triangular patch of the image as a 2D texture
> onto my triangle?
>
> The simple example in TPlane_test.tcl pastes a texture onto a
> vtkPlaneSource, but in that example the texture coordinates
> are created by the vtkPlaneSource. In my case the texture
> coordinates are read from file and inserted e.g. into a
> vtkFloatArray (is that the way to do it?) [I am aware of the
> possibillites for creating texture coordinates through
> vtkTextureMapToPlane, vtkTextureMapToSphere and vtkTextureMapToCylinder
> and manipulation through vtkTransformTextureCoords, BUT since I
> already have my coordinates explicitly defined, I do not need
> these classes...]
>
> (Eventually, when I know how to paste texture on a
> single triangle, I can go on to texture all the triangles
> in a surface scan of an object.)
>
> Thanks for any suggestions.
>
> Tron Darvann
>
>
> Here some code to get the idea of what I'm trying to do:
>
> # This script (modified from CreateStrip.tcl)
> # shows how to manually create a vtkPolyData with a
> # triangle. Then we paste a texture onto it using
> # three texture coordinates in an image...?
>
> package require vtk
> package require vtkinteraction
>
> # First we'll create some points.
> #
> vtkPoints points
> points InsertPoint 0 0.0 0.0 0.0
> points InsertPoint 1 0.0 1.0 0.0
> points InsertPoint 2 1.0 0.0 0.0
> vtkCellArray strips
> strips InsertNextCell 3;#number of points
> strips InsertCellPoint 0
> strips InsertCellPoint 1
> strips InsertCellPoint 2
> vtkPolyData profile
> profile SetPoints points
> profile SetStrips strips
> vtkPolyDataMapper map
> map SetInput profile
>
> vtkBMPReader bmpReader
> bmpReader SetFileName "C:/tron/projects/3dMD/export/050406092854.bmp"
> vtkTexture atext
> atext SetInput [bmpReader GetOutput]
> atext InterpolateOn
>
> vtkActor triangle
> triangle SetMapper map
> triangle SetTexture atext
>
> # Explicitly specify texture coordinates: a triangular patch in the input
> texture.
> vtkFloatArray texcoord
> texcoord SetNumberOfComponents 2
> texcoord SetNumberOfTuples 3
> texcoord SetTuple2 0 0.2348 0.7891
> texcoord SetTuple2 1 0.2454 0.7830
> texcoord SetTuple2 2 0.2128 0.7790
>
> ###### HERE MISSING CODE: TO APPLY THE TEXTURE COORDINATES !!!####
>
> # Create the usual rendering stuff.
> vtkRenderer ren1
> vtkRenderWindow renWin
> renWin AddRenderer ren1
> vtkRenderWindowInteractor iren
> iren SetRenderWindow renWin
>
> # Add the actors to the renderer, set the background and size
> #
> ren1 AddActor triangle
>
> ren1 SetBackground 1 1 1
> renWin SetSize 250 250
> renWin Render
>
> # render the image
> #
> iren AddObserver UserEvent {wm deiconify .vtkInteract}
>
> # prevent the tk window from showing up then start the event loop
> wm withdraw .
>
>
>
>
> _______________________________________________
> 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
>
>
>
More information about the vtkusers
mailing list