Author Topic: Translucent Onyx Material with feeling of depth  (Read 1768 times)

2022-06-30, 09:24:02

Marcus

  • Active Users
  • **
  • Posts: 75
    • View Profile
    • The Subdivision
Hi folks!

Currently I'm trying to recreate this type of Onyx material.
Especially I'm looking for this "volume-depth" feeling with all the cracks inside the material.

I tried SSS, Translucency and Refraction for this. But nothing is giving the desired effect.
I also fractured the whole geometry in 10000 pieces, but this is looking way to uniform.

Maybe someone have good technique for this kind of material.

Marcus

2022-06-30, 12:15:33
Reply #1

burnin

  • Active Users
  • **
  • Posts: 1532
    • View Profile
Try Layering Volumetric and Parallax mapping... maybe adding fractures (billboards) 

2022-06-30, 12:57:29
Reply #2

Marcus

  • Active Users
  • **
  • Posts: 75
    • View Profile
    • The Subdivision
Try Layering Volumetric and Parallax mapping...   

Uh? Could you explain this a bit further?
Right now I'm trying to fracture it bit more and putting a non-fractured layer in front.
(I will post a preview later this day. I never had something so time consuming to render.. :D)

2022-06-30, 13:47:33
Reply #3

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12708
  • Marcin
    • View Profile
You just made me realize something I haven't thought about before.
Nice pics + scenes incoming...
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2022-06-30, 14:01:13
Reply #4

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12708
  • Marcin
    • View Profile
So, here is the deal:

You can use the Corona Volume Material to create an object filled with heterogeneous medium.
Homogeneous = e.g. milk, where the volumetric effects are the same across the whole volume
Heterogeneous = e.g. clouds, where there is some "pattern" of things which have different density inside.
To do it, create a Corona Volume Mtl, enable the "inside volume" mode in it, and use a texture to control absorption (what is the density of the medium) and/or scattering (what color the medium has). Procedural textures will work great here as they will create 3D patterns. You can use 2D textures too, but they will not work that well as they are just... well 2D.

What I have never thought about was that you can plug the Volume Mtl as the base layer of a Corona Layered Mtl, and then you can add other layers, such as glass or metal on top. So you can create, for example, an object which is made of clear glass (or rough glass!) with a heterogeneous inside.

Here are some quick, simple examples.

The first one is "just" a Corona Volume Mtl + clear glass on top.
The second one is the same but with some roughness added to the glass, and then clearcoat on top.

I hope this can help and gives you some nice results.
The definite drawback is that this can render very slowly... to improve render times, consider the following options:
- in the Corona Volume Material - increase "step size" to get faster rendering and lower quality
- in the Corona Volume Material - enable "single bounce only" to get faster rendering and darker result with no internal light bounces

P.S. Please note that I used Corona 8 HF1 to create this scene, but I would highly suggest installing Corona 8 HF2 - which was literally released while I was typing this post. :)
https://corona-renderer.com/download

Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2022-06-30, 14:14:19
Reply #5

Marcus

  • Active Users
  • **
  • Posts: 75
    • View Profile
    • The Subdivision
Hi Maru!

Thanks! Great hint. I will play with this in the next time a bit to see what can be done with this technique.

In the meantime, here is what I archived so far.
I fractured on box and give it a material with Volume Scattering and a bit of Refraction.
In front is a normal un-fractured thinner box with the same material but a higher Refraction and higher Distance in Volumetric Scattering.

It looks not bad, although the fracture is still too uniform.
Drawback: 13 Passes (7,6%NL) on 2K resolution. Over 1 hour of rendering on a ThreadRipper 3990x


2022-06-30, 14:44:00
Reply #6

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12708
  • Marcin
    • View Profile
some further experiment showing the "depth" it can create
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2022-06-30, 15:08:35
Reply #7

Marcus

  • Active Users
  • **
  • Posts: 75
    • View Profile
    • The Subdivision
Wow. Great idea.
I will play with it a bit further. Let's see if I'm able to archive this complex and very hard shapes like in the reference.

2022-07-02, 15:18:27
Reply #8

burnin

  • Active Users
  • **
  • Posts: 1532
    • View Profile
As well as is experimented & explained by maru, using Max, you have an advantage of OSL (& parallax mapping) to create such effect and even render it way faster.

ie. Cycles "proof of concept"
(& although it's done via Blender, you can use Cycles w/ Max or do it w/ OSL & Corona For Max) 


And "a proof of concept" proposal for inner fractures (just using reflection boards) on vimeo @~22min

PS
For a C4D user, OSL is out of scope. 

2022-07-05, 14:31:24
Reply #9

pokoy

  • Active Users
  • **
  • Posts: 1850
    • View Profile
I may be late for this one, but still wanted to share it in case it's useful.

Since this is a nice challenge I attempted to recreate both the mineral texture and the volumetric 'splits' in the material:
1. The mineral structure can be reproduced to some degree with procedural maps. However, some of the built in maps are cumbersome or lack some functionality. I gave it a go with a 3rd party map called 'Electric', it can be used to get the white and red veins without much headache since some artistic controls are exposed, re-building the same setup with built in maps is more complicated. While the map is free (get it from maxplugins.de, it's part of the BlurBeta Plugin Pack), it needs some manual installation steps for the workstation and render servers. But once installed you have some nice additional noise map(s) to play with.

2. There's a nice trick to introduce these splits in the material by creating a noisy plane (or several) and scattering it over the object's surface. The material applied to these 'splitters' has a Distance Map it's opacity slot (with the Onyx geometry used as distance objects) setup up in a way that they render only inside the geometry of the mineral - white for the 'inside' color, black for 'far' color. When the onyx material is a volumetric material like Marcin already has shown, the 'splits' will fade out within the onyx geometry which can look way better than any mapped approach. Varying the angle of the splitter geometry with regards to the onyx geometry can create interesting looks, similar to what you show in your reference image.
The downside - the more 'splitters' you have, the longer it renders...

Attached are 2 images of both the green and the yellowish onyx material and the scene file (max 2021 and 2018 versions).

Let me know if you want to know some details about the setup, it's going to be a longer post and since you might have already found a way I wouldn't write a wall of text in vain ;) I've played with it extensively and could probably give some useful pointers as it takes a lot of testing to get good results and/or reduce render times.

In order to open and render the scene you would need to install the 3rd party map first:
- close max, head over to maxplugins.de
- choose your max version on the left side
- search for 'blur' in the search field
- download any plugin from the results - it'll always download the same zip of the entire BlurBeta plugin pack
- open the zip, locate the plugins (most likely in the 'x64' folder)
- copy 'electric.dlt' to your 'maxroot/plugin' path (or any other plugin path that you know will load in max)
- copy 'blurlib.dlu' to your 'maxroot/stdplugs plugs' path (important!)
- start up max
- you should now be able to see a map called 'Electric' -> the scene should load fine

Hope it helps.

2022-07-05, 15:06:53
Reply #10

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8779
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Is this entirely procedural? If it is, then it looks flippin good and even if it isn't, it still very nice!
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2022-07-05, 15:19:14
Reply #11

pokoy

  • Active Users
  • **
  • Posts: 1850
    • View Profile
The volumetric material is entirely procedural, the 'splits' are geometry but can be quickly created with only one plane (with a noise modifier) and then scattered with CScatter/ChaosScatter/tyFlow/PFlow... I've used tyFlow here, realized too late that CScatter would've done the job, too. You can then get a different split look with a different seed in a second.

I've tried using the Cellular procedural map for the splits but ended up discarding this approach - too fake'y, strange and unnatural looking result.

I wish Max team would have bought some of the maps Blur produced. In fact, some maps shipping with Max were created by the Blur guys decades ago but for some reason they didn't include all of them, and now you need to install them manually. Good thing is, David Baker from maxplugins.de has our backs by recompiling them for each new Max version.

Unfortunately, OSL was another missed opportunity - the OSL noises shipping with Max will give you most of the functionality needed, but they have not been written with the 'artist' in mind - you have to know how to get there by combining nodes and knowing what parameters do what. Most Blur maps on the other hand have been hardcoded for certain noise flavors but are way more controllable by introducing meaningful parameters and ways to further distort them etc. I can't justify fiddling with OSL noises, UV and math nodes when I can simply use a single map and get there much quicker.