Home Technical Talk

Normal-only shaders? [max, Vray]

polycounter lvl 2
Offline / Send Message
Pinned
RH3D polycounter lvl 2

I want a normal-only shader that I can assign to a plane and then place that plane over other meshed (a decal, essentially)

It'd be great for various types of damage - cracks, dents, edge decals etc

I basically want the diffuse, for example, to not exist. I don't mean black, I mean non existent - or at least passed-through.. Think of an opacity map that ignores the normal, for example

This is pretty common place in the realtime world but when you want to render these things in vray, its next to impossible it seems?

Can someone shove me in the right direction please 😅

Replies

  • oglu
    Offline / Send Message
    oglu polycount lvl 666

    What about the new Decal feature?

    https://youtu.be/5kzR_TdMGU4

  • gnoop
    Offline / Send Message
    gnoop polycounter

    Maybe in Unreal but not in our game , we always need some base color with alpha . I asked programmer why and he told me decals are rendered into its own buffer then use the buffer alpha to mix over . Without diffuse color it would be just black background . So my guess it's not that common.


    But in Vray my guess you should be able to render whatever buffers you want on your own using AOV constructor or anything like that and then apply it at 2d compositing stage. I've never been a Vray user although, it's just how would I approach to this using Blender.

  • RH3D
    Offline / Send Message
    RH3D polycounter lvl 2

    Yeah I tried this but unfortunately its the same thing - you HAVE to have a diffuse attached to the shader :/

  • RH3D
    Offline / Send Message
    RH3D polycounter lvl 2

    yeah, sorry - common place in unreal, I should say...

    you lost me at AOV constructor but yeah doesnt seem like theres anything like that in vray..

  • gnoop
    Offline / Send Message
    gnoop polycounter

    I stopped to use MAx for rendering anything long ago so my memory is a bit in fog about it but my guess you should be able to render uv or just normal AOV whatever MAx calls it nowadays . I mean you render the normals AOV before deacals then normal AOV of decals only and then composite it back together in 2d compositor . Just composite them without decals base color . Pretty sure Unreall does exactly this.

    Well, its lots of extra pain so perhaps someone knows better . It's just the hard way is always there too :)

    I imagine nowadays certain animation could be rendered straight into beauty pass render , sort of forwarded style in red shift or something but before it always been 2d compositing stage where you assemble your final render and could do whatever you want in the process .

    I also imaging it could be done through a sort of raycast shader where you basically project normals from decal to underlying material but I am not sure . I recall I once did something like that in Modo and before that in Lightwave . Have no idea how to do it in MAx although. Just guess it should be possible too theoretically.

  • RH3D
    Offline / Send Message
    RH3D polycounter lvl 2

    ah I get it. Yes thats a workaround i suppose I didnt think of that, thanks - wow is that a long winded way to go about it though - I'll have to figure something else out...


    off-topic:

    The more I look into this the more I think im better off just using a realtime render... Im wondering how marmoset would handler large scenes with lots of lights..

  • RH3D
    Offline / Send Message
    RH3D polycounter lvl 2

    Maybe if there was a way to assign something to the diffuse slot that simply isnt renderable to camera? (clutching at straws here)

  • gnoop
    Offline / Send Message
    gnoop polycounter

    I use Octane render . They added a kind of buffers compositing straight into the render itself but it's so convoluted I never went deep into it really , Out of box it seems also can't render the normal only untill it's a part of underlying material itself . So perhaps you should look for a way how to project decal normals onto undelaying material with a kind of fancy UV mapping , extra UV channels . But again I have never used Vray so have no idea what's possible there.

  • RH3D
    Offline / Send Message
    RH3D polycounter lvl 2

    Marmoset cant do it either. I think its a unique feature of custom engine we use at work...


    For now Im just giving it the same maps as whatever its sitting on except a different normal. works for small details like this


  • Eric Chadwick

    You could try VRayMtl with black diffuse, white Reflect, white Refract, and a low IOR like 1.01

    This would make the surface nearly invisible except for specularity.

    If you wanted to layer that, plug it into a VRayBlendMtl.

  • Eric Chadwick

    You can also simply load the normal map in a VRayBitmap node with a reserved UV channel that you use for nothing else.

    Disable Tiling in the node.

    Add a UVW Map modifier on your model, set to that reserved UV channel, and wire the gizmo to a Point helper so you can move it around, animate it even!

    Plug the VRayBitmap into a VRayNormalMap node, and layer that with the base bumps using a Composite node.

    Boom.

Sign In or Register to comment.