<div dir="ltr"><div>Hi all,</div><div><br></div>Indeed, rather than supporting only 'unsigned char' for direct color mapping - using color mode <span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px">VTK_COLOR_MODE_DEFAULT, </span>all integer and floating point types can be used for direct color mapping using the color mode <span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px">VTK_COLOR_MODE_DIRECT_SCALARS.</span><div><span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px">Integer type colors should be between 0-255 and floating point colors should be between 0-1.</span></div><div><span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px"><br></span></div><div><span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px">Dan</span></div><div><span style="color:rgb(0,0,0);font-family:roboto,sans-serif;font-size:14px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 8, 2017 at 10:16 PM, Cory Quammen <span dir="ltr"><<a href="mailto:cory.quammen@kitware.com" target="_blank">cory.quammen@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> I tried it your way in ParaView 5.3.0, and it did not work correctly. Are<br>
> you sure this is implemented in 5.3 and not a new feature in the upcoming<br>
> 5.4?<br>
<br>
</span>Ken,<br>
<br>
This was implemented some time ago. In 5.3.0, I could do the following:<br>
<br>
* Add Sphere Source<br>
* Add Programmable Filter with the Script set to<br>
<br>
A = inputs[0].PointData['Normals']<wbr>[:,0]<br>
B = inputs[0].PointData['Normals']<wbr>[:,1]<br>
C = inputs[0].PointData['Normals']<wbr>[:,2]<br>
<span class="">colors = numpy.empty((len(A),3), dtype='float')<br>
colors[:,0] = A<br>
colors[:,1] = B<br>
colors[:,2] = C<br>
</span>output.PointData.append(<wbr>colors, 'colors')<br>
<br>
* Turn off Map Scalars<br>
<br>
You could also skip this silly use of the Programmable Filter<br>
altogether and color the Sphere source by 'Normals', then turn Map<br>
Scalars off.<br>
<br>
I believe the capability to treat floating-point arrays of 3-tuples<br>
was added to VTK in commit<br>
<br>
commit 00de9a942ff74e797fbe4cd8c67307<wbr>c8065cdade<br>
Author: Dan Lipsa <<a href="mailto:dan.lipsa@kitware.com">dan.lipsa@kitware.com</a>><br>
Date:   Thu Nov 20 13:35:35 2014 -0500<br>
<br>
    Add VTK_COLOR_MODE_DIRECT_SCALARS. See vtkScalarsToColors::<wbr>MapScalars.<br>
<br>
- Cory<br>
<div class="HOEnZb"><div class="h5"><br>
> From: Shawn Waldon [mailto:<a href="mailto:shawn.waldon@kitware.com">shawn.waldon@kitware.<wbr>com</a>]<br>
> Sent: Monday, May 8, 2017 12:11 PM<br>
> To: Moreland, Kenneth <<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a>><br>
> Cc: Thomas Oliveira <<a href="mailto:thomas.oliveira@gmail.com">thomas.oliveira@gmail.com</a>>; ParaView<br>
> <<a href="mailto:paraview@paraview.org">paraview@paraview.org</a>><br>
> Subject: [EXTERNAL] Re: [Paraview] Visualization ternary saturation<br>
><br>
><br>
><br>
> Ken beat me to answering this one... I'll just add that if the data is<br>
> floating point in the range [0, 1], you don't need to convert it to uint8 or<br>
> multiply by 255.  Just creating a floating point vector will give the same<br>
> result.  This is a more recent extension of the functionality: I know it<br>
> works in 5.3 and master but I'm not sure how many versions back support it.<br>
><br>
> A = inputs[0].CellData['A']<br>
><br>
> B = inputs[0].CellData['B']<br>
><br>
> C = inputs[0].CellData['C']<br>
><br>
> colors = numpy.empty((len(A),3), dtype='float')<br>
><br>
> colors[:,0] = A<br>
><br>
> colors[:,1] = B<br>
><br>
> colors[:,2] = C<br>
><br>
> output.CellData.append(colors, 'colors')<br>
><br>
><br>
> HTH,<br>
><br>
> Shawn<br>
><br>
><br>
><br>
> On Mon, May 8, 2017 at 1:56 PM, Moreland, Kenneth <<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a>> wrote:<br>
><br>
> ParaView does not directly support ternary color maps, but if you create a<br>
> field of colors (represented by three unsigned chars), then you can render<br>
> those colors directly by turning off the Map Scalars option. You can create<br>
> these colors with a Programmable Filter with a script like the following:<br>
><br>
><br>
><br>
> A = inputs[0].CellData['A']<br>
><br>
> B = inputs[0].CellData['B']<br>
><br>
> C = inputs[0].CellData['C']<br>
><br>
> colors = numpy.empty((len(A),3), dtype='uint8')<br>
><br>
> colors[:,0] = A*255<br>
><br>
> colors[:,1] = B*255<br>
><br>
> colors[:,2] = C*255<br>
><br>
> output.CellData.append(colors, 'colors')<br>
><br>
><br>
><br>
> Once you apply that script, color by the new “colors” array and uncheck the<br>
> box marked “Map Scalars” (it is an advanced option in the properties panel).<br>
><br>
><br>
><br>
> -Ken<br>
><br>
><br>
><br>
> From: ParaView [mailto:<a href="mailto:paraview-bounces@paraview.org">paraview-bounces@<wbr>paraview.org</a>] On Behalf Of Thomas<br>
> Oliveira<br>
> Sent: Saturday, May 6, 2017 7:24 AM<br>
> To: ParaView <<a href="mailto:paraview@paraview.org">paraview@paraview.org</a>><br>
> Subject: [EXTERNAL] [Paraview] Visualization ternary saturation<br>
><br>
><br>
><br>
> Dear all,<br>
><br>
> Given three cell arrays (A,B,C) representation saturations (A+B+C = 1 for<br>
> every cell) is it possible to generate a ternary saturation image like the<br>
> one attached (obtained in<br>
> <a href="http://www.esss.com.br/Kraken/wp-content/uploads/2014/07/Ternary-Saturation.png" rel="noreferrer" target="_blank">http://www.esss.com.br/Kraken/<wbr>wp-content/uploads/2014/07/<wbr>Ternary-Saturation.png</a>)?<br>
><br>
> In the figure, A, B, C are saturations of water, oil and gas.<br>
><br>
> Best regards,<br>
><br>
> Thomas Oliveira<br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the ParaView Wiki at:<br>
> <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/<wbr>ParaView</a><br>
><br>
> Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>ParaView</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/paraview</a><br>
><br>
><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the ParaView Wiki at:<br>
> <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/<wbr>ParaView</a><br>
><br>
> Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>ParaView</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/paraview</a><br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Cory Quammen<br>
Staff R&D Engineer<br>
Kitware, Inc.<br>
</font></span></blockquote></div><br></div>