In the Unreal Engine, there are mainly two material settings. One is the SubSurface scattering Basic (SSS Basic), and the other is SubSurface scattering with the Parallax function as the Height map display method (SSS POM).
In the "SSS Basic" Material, I used the "Power" node to connect the BaseColor and SubSurfaceColor. When adjusting its parameters, if I lower the value, I can display more of the SoftSurfaceColor I set. On the other hand, if I want to maintain more of the BaseColor, I can increase the value, which allows the SoftSurfaceColor to be more influenced by the BaseColor, without losing the details from the BaseColor.
Additionally, I connected the opacity to reflect the impact of SoftSurface. I placed the SoftSurfaceScattering texture here and used a "CheapContract" node to adjust how much the object is affected by the SubSurfaceColor. For the HeightMap, I directly connect it to Displacement channel. For the Normal, I applied a FlattenNormal, so I can easily adjust the strength of the normals. If the Normal value is closer to negative values, it will become stronger (closer to -1), while if it's closer to positive values (close to 1), it becomes weaker.
For other properties like Ambient Occlusion, Roughness, and Metallic, I used an ARM texture map to combine the texture resources and assign them to the corresponding RGB channels. Finally, I used Capture Coordinates to adjust the texture's tiling.
SSS POM Material
In the Parallax material, there are two main features that stand out. The first is that its height display uses the Parallax method, and I used a special node called ParallaxOcclusionMapping. When this node is applied, it takes the Height Map (texture Object) , and then applies it to the Normal Map's UV. Finally, it connects to the Normal channel, the ParallaxOcclusionMapping node also offer some parameters which adjust the height scale and sampling values.
Additionally, My opacity is linked to a Fresnel node, which has the ability to use a Lerp to adjust the gradient, creating a smooth transition from outside to inside, or vice versa. This allows me to achieve an effect where the outer edges are more transparent, and the inner part is more solid in terms of transparency. I then combine this with the opacity texture to create a dual effect. This way, I can control the opacity gradient, with a smooth transition from inside to outside, while also maintaining the texture of the opacity itself.
When I finished adjusting all the settings and applied the material to the egg, I encountered a significant issue. Even though the egg had transparency, a nice parallax height effect, and the yolk feeling, it lost its reflective and refractive properties. It no longer reacted to environmental light sources, making it look flat and unrealistic. To solve this, I made some adjustments to the material. I changed the reflection setting from the original pixel normal offset to index of refraction (IOR). After this change, the pixel depth offset in the parallax occlusion mapping no longer worked, as it was essentially canceled out. However, this adjustment restored the reflection and the way the material interacted with environmental light. I’m satisfied with this version now, so I decided to use it as the final one.