Free surface FaceIPF generation

42 views
Skip to first unread message

ZELONG WANG

unread,
Aug 29, 2025, 6:32:05 AMAug 29
to dream3d-users
Hello all, 

I have been working on generating the FaceIPF colour of a typical grain, using the filter 'Generate IPF colors (face)' filter. 

As acknowledged, this filter writes two RGB triplets per face, one for each side, but as it comes to my material, a thin film material, grains tend to be grown across the thickness, where the grain meets the free surface, adjoining with no other grain. This yields a blackened surface at the surfaces adjoining the free surface and also pores. 

However, theoretically, since the FaceIPF illustrates the triangle’s unit normal, and in my case, the grain meets the free surface on the top surface, so this surface FaceIPF should be the same colour as the grain IPFZ colour. 

Is there any chance i can yield the colours for those interface attaching free surfaces?

Best wishes

Michael Jackson

unread,
Sep 3, 2025, 1:22:53 PMSep 3
to ZELONG WANG, dream3d-users
Hello, 
    I do not think there is anything built into DREAM3D-NX that will accomplish this. There might be room for a future filter enhancement to allow to re-use the IPF Color if one of the Face Labels is Phase=0 or GrainId = 0 or some other criteria.


--
Mike Jackson                    mike.j...@bluequartz.net
BlueQuartz Software         www.bluequartz.net
President/Owner               Dayton, Ohio
Principal DREAM.3D Developer


--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dream3d-users/46cfecf1-f05d-4c53-9622-d98ffaf5ce99n%40googlegroups.com.

Michael Jackson

unread,
Sep 5, 2025, 11:30:26 AMSep 5
to ZELONG WANG, dream3d-users
Hello Zelong, 
   After thinking about this I think I may have a solution although this may not work in every situation. This is with DREAM3D-NX version 7.2.1. I am attaching the pipeline. You will need to adjust the initial bits where I read in the data and surface mesh the voxel volume. 

Here is my longer explanation of what I am doing. The “Compute IPF Colors (Face)” filter outputs a 6 column vector for each face where the first 3 columns are the RGB for the first “Triangle Face Label” and the second set of 3 columns are for the second value in the “Face Labels” pair for a given triangle face. Pores and boundaries should be labeled with a “0” (Zero) value which means that the “black” color should always be in the first 3 columns of the 6 column output array.

So we use the “Split Data Array (By Component)” to extract out all components of the RGBRGB array into 6 separate arrays. We then use the “Combine Attribute Arrays” filter twice to combine the first 3 and the second 3 RGB sets into a 2 separate arrays. Now when you visualize the data you can simply select the second array that was produced from the 2nd iteration of the Combine Attribute Arrays filter.

Mike Jackson

On Sep 4, 2025 at 07:25:33, ZELONG WANG <Dylan...@hotmail.com> wrote:
Hello Michael, 

Appreciate for your response and answer !

Do is there any possible way to do this, for example, in Paraview? 

The only way now I can manage to get the colouring is to separate out the black surfaces and colour them with a solid colour that is copied from the grain IPF. 

best, 
Zelong
face_ipf_color_visualization_easy.d3dpipeline

Michael Jackson

unread,
Sep 12, 2025, 12:03:48 PMSep 12
to ZELONG WANG, dream3d-users
Dear Zelong, 
     Unfortunately there isn’t a good route to do this replacement with DREAM3D-NX itself, but you could definitely do this with some python scripting and using the python version of DREAM3D-NX. Works off the same license. 


--
Mike Jackson                    mike.j...@bluequartz.net
BlueQuartz Software         www.bluequartz.net
President/Owner               Dayton, Ohio
Principal DREAM.3D Developer


On Sep 11, 2025 at 06:36:19, ZELONG WANG <Dylan...@hotmail.com> wrote:
Hello Mike, 

Really appreciate for your help ! I think that is a significant step forward for my project !

Though, I wanted to show the IPF colours of those 'black' surfaces or exposed surfaces. If i was right, the 'Compute IPF colors(face)' assigns those surfaces with 6 '0's, i.e., all six columns of the RGB is 0. Theoretically, it should have those surfaces as IPF colours from the 'GrainIPF', or the IPF colours from the grain voxels at those surfaces. 

Could we replace somehow those '0's in the 'FaceIPF' with the RGB values from grain IPF? 

Best regards,
Zelong
Reply all
Reply to author
Forward
0 new messages