Author Topic: Retroreflector shader  (Read 2772 times)

2018-06-08, 20:24:29

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8779
  • Let's move this topic, shall we?
    • View Profile
    • My Models
I'd like to create usable retroreflector material in Corona, but have no clue how to do that. I did some experiments with modelling actual retroreflecting geometry few years ago and it worked pretty good in Corona, but of course that is not very practical way to approach this task. I'd like to get the effect only through material. I found very impressive breakdown of retroreflector shader made in Blender: https://www.artstation.com/artwork/zNXxd but i'm not sure if that's possible to replicate somehow in 3ds max.

If anyone has some suggestions, please do not hestitate to share it out :]
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2018-06-08, 22:45:39
Reply #1

sprayer

  • Active Users
  • **
  • Posts: 794
    • View Profile
here the same topic for vray https://forums.chaosgroup.com/forum/v-ray-for-maya-forums/v-ray-for-maya-general/76356-fluorescent-orange-material?p=836784#post836784

if make it the same, we can use coronaData node with shading normal option and insert in coronaNormal, but i think it's bug or something and it shades in bump slot not smooth. Not sure how  it will work to camera, sadly falloff not working in bump
« Last Edit: 2018-06-09, 06:03:17 by sprayer »

2018-06-09, 11:08:24
Reply #2

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8779
  • Let's move this topic, shall we?
    • View Profile
    • My Models
I don't think that pluging CoronaData to CoronaNormal node, would give any meaningful results, as the latter expects tangent space normals as input and the former provides object (world?) space normals as output and as you said, there's no way to link them to a camera. The closest thing to retroreflection effect, that i managed to achieve so far, was to add edit normals modifier to an object and manually turn all normals towards the camera. That gives good retroreflection, but totally screws shading of the object, not to mention that there's no way to link normals to a camera, nor to animate them. I think we need a shader that would use object's unaltered normals for diffuse shading, but would bend them towards a camera for specular reflection. Maybe that is possible to achieve with OSL? But then again, there's no way to use OSL in Corona if you're not on latest 3ds max...
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2018-06-09, 12:32:43
Reply #3

pokoy

  • Active Users
  • **
  • Posts: 1850
    • View Profile
There was a challenge on this exact topic with cool results and different renderers and approaches but apparently the site is down right now. Maybe you can send them an email asking for access:
http://shaders.xyz/forums/topic/challenge-03-retroreflector/

I recall one approach was a good bump/normal map based on a microscopic image of the surface structure mixed with reflection falloff to take care of different angles. Pretty cool results in general, I was surprised to see it was possible with such a simple setup.

2018-06-11, 14:08:07
Reply #4

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12711
  • Marcin
    • View Profile
Real life reference of what exactly you have in mind Romullus, plz?
I am thinking of something like volume mtl with high (positive/negative?) directionality, and something reflective behind it. But that's just a random idea without any real research, so it could as well lead to a dead end. ;)

Edit: it kinda seems to work, even with no reflective layer underneath :)
« Last Edit: 2018-06-11, 14:20:46 by maru »
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2018-06-11, 14:22:51
Reply #5

Jpjapers

  • Active Users
  • **
  • Posts: 1644
    • View Profile
Little offtopic but can fstorm bake geopatterns to mesh?
If so you could mimic the material surface as geometry, apply it to your object as a geopattern then use the mesh output in corona if thats possible?
Essentially physically mimicking the material rather than with maps.

edit: Re-read OP. I see you wanted a map only approach
« Last Edit: 2018-06-11, 14:27:45 by jpjapers »

2018-06-11, 15:12:58
Reply #6

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8779
  • Let's move this topic, shall we?
    • View Profile
    • My Models
@maru, i'm attaching example, but if you ever drove the road at night, you know what i'm talking about. I'll try your scene, thanks, but i have doubts that volumetric hack could be practical solution, it probably won't work on thin meshes, it will be expensive and it will shade incorrectly in daylight.

@jpjapers, the problem is, that the type of retroreflection that i'm interested in, is hardly replicable with geometry at all, even if we could use tools like geopattern. https://en.wikipedia.org/wiki/Retroreflector#Cat's_eye
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2018-06-11, 16:32:33
Reply #7

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8779
  • Let's move this topic, shall we?
    • View Profile
    • My Models
To my surprise, maru's method is not bad at all. I just replaced volume material with Corona material and set opacity to 0 and it became more manageable in scenarios where light isn't shining from  the direction of a camera. It's not perfect, but pretty useable. Thank you, maru!
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2018-06-11, 17:17:33
Reply #8

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12711
  • Marcin
    • View Profile
Fun! You can also use LightMtl with a falloff map ;) or we would probably need the light/shadow mode to make it even better.
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us