Home Technical Talk

Rendering normal buffer in max?

polycounter lvl 13
Offline / Send Message
ImSlightlyBored polycounter lvl 13
Hi guys
This seems like max 101 here, all I'd like to do is get out a copy of the normal buffer when rendering in max. I'm using default scanline. I only really use max for making FX textures so at the moment I'm not concerned about the best renderer, and almost out of prinicpal I don't really want to have to try out Vray, etc as I thought this is something that should be quite easy?

Can't see it listed under render elements. The other thing I tried was using a DX shader to just display the normals (thanks, Ben Cloward) but of course that can't be rendered?

Cheers

Replies

  • Brendan
    Options
    Offline / Send Message
    Brendan polycounter lvl 8
    You're after world space normals, right? This'll probably cause people to baulk, but can you cheese it with red, green and blue directional lights?
  • Frankie
    Options
    Offline / Send Message
    Frankie polycounter lvl 19
    I guess it's not helpful but just in case, render elements from the render setup tab lets you get the zdepth from a render.
  • ImSlightlyBored
    Options
    Offline / Send Message
    ImSlightlyBored polycounter lvl 13
    @Brendan - that's certainly something to consider (as I am looking for world space normals) as a last resort, I was really hoping for some nice quality normals :(
    @Frankie - yeah I've seen that, again a last resort really I guess I could run the zdepth through crazybump or something else, again, i was hoping for the accuracy of the actual normals but it seems a little difficult to set up.

    cheers guys
  • cw
    Options
    Offline / Send Message
    cw polycounter lvl 17
    If you are rendering normal maps for vfx, have you tried render to texture?
  • ImSlightlyBored
    Options
    Offline / Send Message
    ImSlightlyBored polycounter lvl 13
    I'd not considered that! I'm guessing you can just render an anim as normal through rtt?
  • Frankie
    Options
    Offline / Send Message
    Frankie polycounter lvl 19
    RTT spits out all the images from a frame range if you have one setup, but I've only had it enabled as a mistake so haven't used it deliberately.

    If you did a zbuffer a one of the nvidia or xnormal photoshop plugins should work just as well as crazy bump as you don't need to try and extract values from a diffuse texture to get an approximation of heigh values, then you could possibly setup an action in photoshop... and make sure you save the output at the highest bpp possible. It does sound like a hassle, I'm also suprised max didn't have normal in the render elements?
  • LoTekK
    Options
    Offline / Send Message
    LoTekK polycounter lvl 17
    You won't be able to bake down the normals per se via the dx shader, but you can use the vertex shader to transform the output to UV space in the viewport. After which you can use

    gw.setPos 0 0 2048 2048 (2k x 2k, for example);
    img = gw.getViewportDib();
    img.filename = bmpPath + bmpFilename + ".bmp";
    save img;
  • rs3d
    Options
    Offline / Send Message
    Just download the John Burnett's InfoTexture Material from maxplugins.de, this gives you some options.
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    Why not use the RenderToTexture and choose WorldSpace as Normal Map Space?
  • ImSlightlyBored
    Options
    Offline / Send Message
    ImSlightlyBored polycounter lvl 13
    I'm probably going to try all of these ideas, but I've just tried InfoTexture and that was exactly what I was looking for, and it works great. Cheers guys!

    It still feels like there should be a way to output the normal buffer by default, it seems a bit odd.
Sign In or Register to comment.