I’ve made nodegroups for 2 categories of materials:
- “Gems and Crystals” (ruby,amethyst,spinel,topaz…)
- “Opaque Minerals” (azurite,marble,pyrite,rhodonite…)
- Their combination makes other material like porcelain and so on.
I’ve tried to add absorption,dispersion,birefringence and dichroism using a physical approach and true values when possible.In other cases not.
Anyway i’ve kept the 3 channels (red,gree,blue) separated,as much as possible.
The effect of birefringence and dichroism are more visible with transparent materials.
Gems and Crystals are based on the nodegroup “Transparent Translucent Material” which can produce glass,diamonds,transparent plastic when used individually.
Opaque Minerals are based on the nodegroup “Opaque Material” which can produce opaque plastic and so on when used individually.
So there are 4 nodegroups to create materials: - “Transparent Translucent Material”
- “Opaque Material”
- “Gems and Crystals”
- “Opaque Minerals”
Metals and Alloys are present in my previous posts.
These are some images.
Light sources are spheres,emissive planes or cubes or spots.
Roughness is zero by default for opaque nodes ,but it can be obviously modified.
Roughness is a non zero value (i’ve decided 0.00032) for transparent /Gems and Crystals,because materials tend to be dark. Thanks to @moony which discovered this.
NOTE:
SINCE THE DIMENSIONS OF THE IMAGES ARE 1920 X 4860 AND 960 x 5340 (COPIED AND PASTED),
PLEASE CLICK ON THE IMAGE,THAN ANOTHER CLICK AND THAN ZOOM +.
IN THIS WAY YOU WILL BE ABLE TO SEE THE DETAILS
and
Many parameters are shared,others affect to opaque minerals or gems and crystals only.
This is the list of parameters with a brief explanation.
-
Index of refraction N: generally,for Gems/Crystals/Opaque Minerals i’ve found a single IOR. To approximate The 3 iors (red green blue) i’ve used dispersion index.
For the base component nodegroups Transparent Translucent Material and Opaque Material ,the iors can be found on internet (http://refractiveindex.info). -
Extinction factor red/green/blue: For Gems and Crystals and their base component nodegroup Transparent Translucent Material,you must insert the value multiplied by 1 million (this to avoid a possible loss of precision),then this will be corrected internally,calculating the absorption value (4PIK/(lambda*1000000)).
For Opaque Minerals and their base component nodegroup Opaque Material,the value is between 0 and 1.
A method to simplify could be the following.
you could make nodegroups with texture nodes/rampnodes and other node to create the real colors you want for the mineral/crystal ,with all values in the range 0 and 1.
Then multiply them by a certain value (1000,500000 or what you want with a maximum value of 1 million) if the material is transparent or translucent.A high value means more absorption and darker color and less transparecy,a low value means lighter color and more transparency.
(0,0,0) = total transparency, (1000000,1000000,1000000) = total opacity.
If the material is opaque,use a math node to make ( 1 - color_value) (subtraction) to find extinction factor. -
Index of dispersion: interval between Red refraction index and Violet refraction index.
-
Birefringence: in a birefringent material, a light ray is split in 2 rays ,an ordinary and an extraordinary ray and these rays refract at different index of refractions (double refraction)
The value of birefringence is the difference between the two refractive indices.
Rotating a transparent birefringent crystal,you can see 2 different refracted images at the same time. -
Optical axis: is the axis (a direction) along which, the index of refraction doesn’t change.It is used (with birefringence and incoming ray angle) to calculate the second refraction index.
It is vector (0,0,1) by default -
AngleX/Y/Z: the rotation angles (radians) of the optical axis.
They are automatically calculated linking the 3 values to the object rotations using drivers in the graph editor (see blender manuals) -
Dichroism: a dichroic material (it must be birefringent too) crossed by a ligth ray,shows 2 distinct colors.
It is used to determinate exctinction coefficients in case of birefringence.
This value depends on the angle of view and the normal or a user map.Value between 0 and 1.
The color changes if you rotate the object. -
Use default dichroism: between 0 and 1. If value is 0 ,the colors are decided by a user map. If value is 1, the colors are decided by default, the first color is chosen for points facing the viewer,the second color for the rest.
-
User dichroism map: a user map (texture node or other) to decide the colors.Between 0 and 1.
Value 1 means color 1,value 0 means color 2,the other value a mix.
If dichroism is 0,the color is obviously color 1. -
Default Dichroism Colors Weight: a value used if default dichroism is > 0.
For values near 0 ,the area of the first color increases and the area of the second color decreases.
For values near 1 ,the opposite. -
Dichroism gamma: this value modifies the effect of dichroism. (1 = no change)
-
Translucency factor red/green/blue : translucency value for rgb (between 0 and 1)
-
Translucency map: it determines the translucency areas. 0 no translucency,1 full translucency,between 0 and 1 partial translucency.
-
Internal reflection strength: used to modify transparent color intensity for total internal reflection.
(0 = white,1 = based on extinction factors). -
Internal reflection ray depth:number of internal bounces. It is used to determinate the part of the Total Internal Reflection Area,which will be affected by the transparent color.This part becomes smaller for high values (5 or more).
With values greater than Internal reflection ray depth,that part is black (many internal bounces),because shaders are based on glossy and refraction shaders,which don’t include Total Internal Reflection. -
Glossy gamma: this value modifies the effect of glossy. High values mean dark and not diffused glossiness,low values mean strong and diffused glossiness (more mirror effect).
-
Subsurface scattering: it decides how much of the light is scattered,between 0 and 1.
Value 0 means no scattering,1 means total scattering, betweeen 0 and 1 means a mix. -
Use default subsurface scattering: betweeen 0 and 1.
Value 1 means default subsurface scattering.Intensity values after surface reflection are used.
Value 0 means that subsurface scattering factors are used. -
Subsurface scattering strength: its intensity. It’s the scale input parameter of subsurface scattering node.
-
Subsurface Scattering factor red/green/blue: user subsurface scattering values for rgb,the color to be scattered.
-
Metallicity: metallic appearance of the surface.
-
Roughness: roughness of surface.
-
Normal: normal of the surface. It can be modified with texture and bump node.
The list of materials in the blend file is the following:
- glass
- green and red glass
- glass with 2 colors decided by a mask
- ice
- diamond
- red plastic
- amethyst
- calcite
- ruby
- topaz
- emerald
- zircon
- sapphire
- spinel
- azurite blue metallic car paint
- amazonite
- azurite
- hematite
- marble
- pearl
- rhodonite
- pyrite
- wolframite
- porcelain and porcelain with a gold decoration
Note that for glass with 2 colors and porcelain with decoration you mustdo a uv mapping.
Gold and aluminium are metal material made months ago in my previous post.
The link for blend file is:
Attachments
crystalsandminerals.zip (3.95 MB)