Home Technical Talk

xNormal - MASTER THREAD

1212224262759

Replies

  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Well, I rendered the smiley, wall and flag 4k x 4k with 4/16 AA and cannot reproduce it 8(
    I don't have more examples to test, hehe!

    What image do you posted? I cannot find it on this post.
  • EarthQuake
    Options
    Offline / Send Message
    Some features i'de like to see, they could work similar to how the base texture works on the highres now.

    Feature to load up a mask/alpha onto your highres uvs, that masks off sections of the mesh, for example a leaf texture, so that you can render a bunch of leaves down to a sinlge image, without having the quads from the texture show up, just the masked area. This should work with normals, ao, etc.

    Feature to add a normal map onto your highres, that gets render out + the highres geo.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    EarthQuake wrote: »
    Feature to load up a mask/alpha onto your highres uvs, that masks off sections of the mesh, for example a leaf texture, so that you can render a bunch of leaves down to a sinlge image, without having the quads from the texture show up, just the masked area. This should work with normals, ao, etc.
    That's very interesting.
    Feature to add a normal map onto your highres
    I tried that in the past, the problem is that to compute the tangent basis for a 20M poly mesh is desperately slow.

    I'm investigating micro triangle displacement and prisms. Also subdivision and vector displacement maps.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Hey J! New suggestion.

    In the Object/Tangent space converter tool I would love to be able to simply paste the input normal map - instead of fetching it on disk. Most of the time it's a map I simply want to copy from PS, convert, and paste back so I don't always have a file for it. It's a bit annoying to have to create this texture every time on the desktop.

    Nothing big, but would be handy!
    (and obviously - a copy option in the output window showing the converted map!)
    Thanks!
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    pior wrote: »
    Hey J! New suggestion.

    In the Object/Tangent space converter tool I would love to be able to simply paste the input normal map - instead of fetching it on disk. Most of the time it's a map I simply want to copy from PS, convert, and paste back
    Ok, I'll enable copy/paster there... and I also will put a new Photoshop plugin into the TODO list.

    Btw, I've just uploaded the 3.15.3 Beta 5 if somebody want to test it a few.
    Also added permalinks and RSS support for the web.

    thx!
  • Michael Knubben
    Options
    Offline / Send Message
    also, it'd be nice if you could highlight models and just press delete to remove them, especially if you could do it for multiple models. There are more of these small things that come to mind while using xnormal, are you interested in hearing them? If so, I'll try to remember posting them next time
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    MightyPea wrote: »
    also, it'd be nice if you could highlight models and just press delete to remove them, especially if you could do it for multiple models.
    Sorry, I don't understand that. Currently you can select a mesh on the list and remove it pressing the DEL key... and it works with multiselection too...
    There are more of these small things that come to mind while using xnormal, are you interested in hearing them? If so, I'll try to remember posting them next time
    Sure, I like small things that can make the program better and if they can be fast and easy much better!
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    Hey Jogshy, is there a way of making layer rendering? not by passes but, you select your high and lows and put it in a layer, then keep making your selections, and then when pressing render would render all without stopping, this way we could drink a coffee or two when rendering maps. If there´s already a feature like that, let me know.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    bugo wrote: »
    Hey Jogshy, is there a way of making layer rendering? not by passes but, you select your high and lows and put it in a layer, then keep making your selections, and then when pressing render would render all without stopping
    That's one of the thing I wanna change drastically for xn4. You should be able to select a bunch of meshes in the scene. Then you can make layers, define if you want the mesh X to cast AO over the mesh Y but not over the mesh Z, etc... Also to render a normal map for the meshes I and J and, at the same time, render an AO map for K and O... and also to execute/write your own python/lua/javascript scripts.

    In xn3, you can use the command line to render various XML setting files but is a bit more difficult and slow to setup.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I've just uploaded the beta 6. It includes some bug fixes + the copy/paste for Pior.
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    awesome to see the updates Jogshy, do you know if Nvidia already made an official driver that supports CUDA?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    bugo wrote: »
    awesome to see the updates Jogshy, do you know if Nvidia already made an official driver that supports CUDA?
    Nope. They're still beta. I don't know when NVIDIA gonna release the official drivers with CUDA 2 support... I could not see any roadmap but I hope before the end of the summer... which is good so I can polish a bit more the renderer and also to adapt the Photoshop filters.
  • urgaffel
    Options
    Offline / Send Message
    urgaffel polycounter lvl 17
    Thank you so much for this program jogshy. It's a lifesaver considering how crap Max/Maya is with high poly meshes...

    Do you have any eta on when xNormal v4 will be out? I'm just curious, 3.15.x works fine but it sounds like you have some really cool ideas for the next release :)
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    urgaffel wrote: »
    Do you have any eta on when xNormal v4 will be out? I'm just curious, 3.15.x works fine but it sounds like you have some really cool ideas for the next release :)
    The 3.15.3 will be available once CUDA2 is available(August, I hope...). Meanwhile I'm optimizing the new polymesh system(because currently is too slow) to allow subdivision and improved displacement/vector mapping in the future.

    Once I finish the 3.15.3 I need to finish a multi-platform engine... which gonna be the basis of the 3D system for xn4. It includes node-based shaders(like UE3)... i'm designing the shader editor currently.... but I want to use OGL 3.0 which has not been releared yet(I need OGL for linux...).

    And then, I can start the serious xn4 development.... which will be very fast because I've a lot of code almost done... and I have the ideas very clear... unlike xn3 which has been patched and patched to the death :D
  • Michael Knubben
    Options
    Offline / Send Message
    Have you ever considered letting Xnormal triangulate meshes upon import? I regularly export meshes with a few ngons (that aren't really visible, and therefor the smoothing isn't really important.), and even a few times when I had a mesh that wass fully triangulated, it complained. It'd be nice if I wouldn't have to go back to other software to triangulate it.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    MightyPea wrote: »
    Have you ever considered letting Xnormal triangulate meshes upon import? I regularly export meshes with a few ngons (that aren't really visible, and therefor the smoothing isn't really important.), and even a few times when I had a mesh that wass fully triangulated, it complained. It'd be nice if I wouldn't have to go back to other software to triangulate it.
    The problem with n-gons is that some applications allow to make non-convex faces or faces with holes in the middle(they store them as a list of coplanar triangles)... instead of triangle fans. n-gons can be very slow to triangulate if triangle fans are not used. The modelling program you use knows better how the n-gons are stored and, probably, they have a triangulate/quadrangulate option(like Maya) which gonna be much more optimal than my implementation. Just press over that before exporting... or, even better, just use quads and triangles :D

    They have also another problem... for Catmull-clark subdivision I need quad faces only... and to quadrangulate a n-gon can be difficult and very slow.
  • zOffTy
    Options
    Offline / Send Message
    zOffTy polycounter lvl 16
    is there an option to control intensity of DiffuseGI on map?
    I try with spec map, but nothing :/
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    zOffTy wrote: »
    is there an option to control intensity of DiffuseGI on map?
    I try with spec map, but nothing :/
    Yep, inside the 3D viewer, near the light intensity white slider. It's called something like DiffuseGI intensity.
  • Michael Knubben
    Options
    Offline / Send Message
    Alright, fair enough. And ofcourse it's no bother to triangulate before export (and I do usually end up with mostly quads, really, except for one or two n-gons), I'm just forgetful :D
  • zOffTy
    Options
    Offline / Send Message
    zOffTy polycounter lvl 16
    yep jogshy :p
    the slider change the intensity of all the mesh. I wondered if it was possible to change intensity on certain zone of my textures?
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    zOffTy wrote: »
    yep jogshy :p
    the slider change the intensity of all the mesh. I wondered if it was possible to change intensity on certain zone of my textures?
    Ah, hehe, nope. That's one of the things I wanna change for xn4. I'm afraid you have to duplicate the diffuseGI texture, modify it for each mesh and assign it.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    zOffTy wrote: »
    yep jogshy :p
    the slider change the intensity of all the mesh. I wondered if it was possible to change intensity on certain zone of my textures?
    Ah, hehe, nope. That's one of the things I wanna change for xn4. I'm afraid you have to duplicate the diffuseGI texture, modify it for each mesh and assign it... but usually you want to assign the same ambient cubemap and intensity to all the meshes or the illusion dissapears.
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    You rock Jogshy! Waiting for Xn4 version pal!
  • zOffTy
    Options
    Offline / Send Message
    zOffTy polycounter lvl 16
    ok jogshy :)
    Thanks for the tips!
  • urgaffel
    Options
    Offline / Send Message
    urgaffel polycounter lvl 17
    I get some weird shading on my normal maps compared to the ones I get straight out of ZB3. Anyone have any idea why?

    normalweirdness.jpg
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    urgaffel wrote: »
    I get some weird shading on my normal maps compared to the ones I get straight out of ZB3. Anyone have any idea why?

    normalweirdness.jpg
    Hahahah, funny scar :D
    About the strange waves there... can you post some screenshots with the cage, map settings, lowpoly/highpoly settings and alignment? I suspect is due to something related with the cage's faces.
  • Joao Sapiro
    Options
    Offline / Send Message
    Joao Sapiro sublime tool
    hey jogshy sent you an email regarding sending highpoly stuff etc for you to test the normal map bug :)
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Johny wrote: »
    hey jogshy sent you an email regarding sending highpoly stuff etc for you to test the normal map bug :)
    Nice, thank you :D I've not received it yet... I bet yahoo takes some time to process it.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Any idea about a good environment for this?

    lamb1nv2.jpg


    lamb2kd7.jpg



    A gas station... a city scape... a crossroad with semaphores... a building? ... and ... any volunteer, pls ? :D
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Do you mean an environment cubemap for reflections? Or an actual scene?

    I think that as soon as you want to go for such objects (cars, and heavy real-life macinery in general) you really need some sort of accurate reflection going on, otherwise they would look alot like toys.

    You also need to kill all the yellow highlights on the lambo shadow side. If this side is shadowed, then that means no direct light hits it. Hence these bright edges shouldn't be bright at all :)

    However! the yellow bounce from the lambo to the nypd car is absolutely fantastic looking. Or maybe you faked that with a smart trilght setup?

    Last details : with shadows this dark, the shadowed side of the dark should be much darker (except for the bright yellow bounce obviously)
    You need a cleaner ground texture btw :P

    All in one, awesome stuff as usual!!
    I just wish my computer could display your screenspace AO effect!
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    pior wrote: »
    Do you mean an environment cubemap for reflections? Or an actual scene?
    3D objects, yep.
    I think that as soon as you want to go for such objects (cars, and heavy real-life macinery in general) you really need some sort of accurate reflection going on, otherwise they would look alot like toys.
    Yep hehe.. the scene was aimed for the realtime ray tracing driver.
    However! the yellow bounce from the lambo to the nypd car is absolutely fantastic looking. Or maybe you faked that with a smart trilght setup?
    Nope. It's realtime photon mapping from the DX10 renderer.
    Last details : with shadows this dark, the shadowed side of the dark should be much darker (except for the bright yellow bounce obviously)
    You need a cleaner ground texture btw :P
    Yep, the "ground texture" is really the grid... and it's light-matte by default.

    ps: An update...

    lambor3ph5.jpg


    Btw, the next week i'm gonna upload the RC1 with a lot of changes
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    I just uploaded the 3.15.3 RC1. Feel free to test it a few.
  • MM
    Options
    Offline / Send Message
    MM polycounter lvl 17
    hi jogshy, i have been having problem getting good hard surface bakes. i am not sure if my modeling is the problem or the baker itself.

    here are the results compared to Maya2008 which seems to make a little better normal map than xnormal. i used a simple rounded edge cube for testing.

    you can download the test mesh from here:
    http://www.megaupload.com/?d=WAHA5HBE

    wsqxpu.jpg

    qo9hua.gif
  • urgaffel
    Options
    Offline / Send Message
    urgaffel polycounter lvl 17
    jogshy wrote: »
    Hahahah, funny scar :D
    About the strange waves there... can you post some screenshots with the cage, map settings, lowpoly/highpoly settings and alignment? I suspect is due to something related with the cage's faces.

    Here you go, crazy mash up of screen shots:

    normalweirdness.jpg

    Tried using the cage but it gave the same errors. Here's the low and high in the 3d viewer and a screen of the cage.

    xnormal_cage.gif

    I guess xNormal 4 will have resizable window? Taking the screenshots of the settings was a bit of a pain since I had to take a screenshot, scroll a bit to the right, take another screenshot etc etc ;)

    Btw, if you click "Save settings" and then cancel, the window that pops up says "Settings saved correctly" even though you canceled :D

    Also, unless you type in .sbm or .obm when saving the meshes in the 3d viewer, it seems it gives a "Can't find plugin" error message and closes the 3d viewer.
  • EarthQuake
    Options
    Offline / Send Message
    Theres really not any reason you even need to use the cage for this. I dont really ever use the cage, just turn it off and set the ray distances, that should give you some better results.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    MM wrote: »
    hi jogshy, i have been having problem getting good hard surface bakes. i am not sure if my modeling is the problem or the baker itself.
    Have you tried the "harden normals" option in the lowpoly list? Did you use a cage or uniform ray distances?

    Well, usually you need to bevel the hard edges to get good results.
    urgaffel wrote: »
    xnormal_cage.gif

    Cage on the left image is not set well... it has to cover completely the highpoly model... and I see three spots uncovered by the middle... also you need to extrude a bit more than that to avoid numerical stability problems.
    Btw... how many triangles are you using in that "lowpoly" mesh? I see it too dense, hehe!
    urgaffel wrote: »
    I guess xNormal 4 will have resizable window?
    Yep, but xn3 has a resizeable window already... but you need to use the OGL or DX10 graphics driver, not the DX9 one.
    Also, unless you type in .smb or .obm when saving the meshes in the 3d viewer, it seems it gives a "Can't find plugin" error message and closes the 3d viewer.
    That's cuz it's SBM and OVB :p
    Better don't add the extension, just use the name... the program will put the extension based on the selected file filter.
  • Joao Sapiro
    Options
    Offline / Send Message
    Joao Sapiro sublime tool
    btw santi , any chance for you to include a somesort of marker to just render the area i want ? instead of having to re render the whole thing ? like we mark on the preview window and type "render again this part" or something , that would be really handy :)
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    Johny wrote: »
    btw santi , any chance for you to include a somesort of marker to just render the area i want ?
    Yep, it's planned for xn4
  • MM
    Options
    Offline / Send Message
    MM polycounter lvl 17
    jogshy wrote: »
    Have you tried the "harden normals" option in the lowpoly list? Did you use a cage or uniform ray distances?

    Well, usually you need to bevel the hard edges to get good results.

    if i use harden normal it breaks the smoothing group in the mesh. thats never good since it breaks up the normal map along the hard edges because of the missed area.

    maya gives comparatively better normal map without any bevel edges, it seems to compensate for the default vertex smoothing where else xnormal isnt is only doing the compensation pertial. i also tried the averages normal(which is similar to my exported normals since i exported the low mesh in one smoothing group)

    beveling edges is not a good option for me at the moment.
  • solar
    Options
    Offline / Send Message
    solar polycounter lvl 18
    Is there a toggle to turn on/off diffuse textures to view the model with just normal map etc?
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    MM if your engine can deal with them I would recommend object-space normal maps. In such cases (flat mechanical surfaces) they perform great, and are pretty much universal in their implementation if I understand correctly. So no shading difference from one viewer/engine to the other.
  • urgaffel
    Options
    Offline / Send Message
    urgaffel polycounter lvl 17
    jogshy wrote: »
    Have you tried the "harden normals" option in the lowpoly list? Did you use a cage or uniform ray distances?
    EarthQuake wrote: »
    Theres really not any reason you even need to use the cage for this. I dont really ever use the cage, just turn it off and set the ray distances, that should give you some better results.

    Haven't tried harden normals no. Tried both cage and ray distance and they produce the same result.
    Well, usually you need to bevel the hard edges to get good results.

    It's not the beveled edges that I'm concerned about, it's the tubes that are very square (they basically look like a low resolution pixelated line that has been resized and blurred a couple of times) when rendered with xNormal but look fine when generated with Zbrush (the area circled in red in the image posted earlier). Here's the area I'm talking about:

    comparison.gif
    Cage on the left image is not set well... it has to cover completely the highpoly model... and I see three spots uncovered by the middle... also you need to extrude a bit more than that to avoid numerical stability problems.
    Btw... how many triangles are you using in that "lowpoly" mesh? I see it too dense, hehe!

    This is just a test case so please ignore the denseness of the lowpoly :) (I do know how do it properly, just a bit lazy in this case since I was playing around with Zbrush at the same time as testing xNormal :poly122: ). I did try and extend the cage so that it covered the whole mesh and it still produced those somewhat weird results.
    Yep, but xn3 has a resizeable window already... but you need to use the OGL or DX10 graphics driver, not the DX9 one.

    I mean the main user interface where you set all the baking options, high/low density meshes etc. Is that resizable?
    That's cuz it's SBM and OVB :p
    Better don't add the extension, just use the name... the program will put the extension based on the selected file filter.

    I meant that if you try to save the mesh without adding the extension in the file name, it won't save. For example, if I click "Save mesh" and type in "lowpoly" and hit enter it won't save and give the error I mentioned earlier (missing plugin blah blah). If I type in "lowpoly.sbm" it works. Maybe you could have it so that it automatically adds the file extension that you picked from the drop down list? See image below for example:

    nosbm.gif


    This is all done in 3.15.3 Beta 7 by the way.
  • MM
    Options
    Offline / Send Message
    MM polycounter lvl 17
    pior wrote: »
    MM if your engine can deal with them I would recommend object-space normal maps. In such cases (flat mechanical surfaces) they perform great, and are pretty much universal in their implementation if I understand correctly. So no shading difference from one viewer/engine to the other.

    yea object space works great, but UE3 we have dont support that and besides we would have to make unique UV for the entire mesh to use object space.

    theoretically tangent space should give same results or close enough.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    MM wrote: »
    if i use harden normal it breaks the smoothing group in the mesh. thats never good since it breaks up the normal map along the hard edges because of the missed area.
    Well, for a cube you can use that but for more comples models, indeed, nope.
    maya gives comparatively better normal map without any bevel edges, it seems to compensate for the default vertex smoothing where else xnormal isnt is only doing the compensation pertial.
    Yep, i'm trying to figure what Maya does with the vertex normals when it finds a had edge. I'm pretty sure it's applying some kind of normal threshold based on the face's angle. Can you post a screenshot of the Maya's normal map options regarding this, pls?
    I mean the main user interface where you set all the baking options, high/low density meshes etc. Is that resizable?
    Ah hehe! Nope, it's not. You need to use the scrollbar... and I know, it's a pain that's why i'll start xn4 from zero with a more standard UI.
    I meant that if you try to save the mesh without adding the extension in the file name, it won't save
    Ahhh... I think the problem is the path you're using. The paths should not include points. If not, it will use .asberg/Desttop/ZBrush/pooop as the extension... which is invalid. I need to change the code so it allows points in the path.
  • Joao Sapiro
    Options
    Offline / Send Message
    Joao Sapiro sublime tool
    check your p.m's again jogshy :)
  • MM
    Options
    Offline / Send Message
    MM polycounter lvl 17
    its pretty much default settings:

    try it yourself with that mesh.

    33nc5c2.jpg
  • nome_sane
    Options
    Offline / Send Message
    jogshy wrote: »
    Yep, i'm trying to figure what Maya does with the vertex normals when it finds a had edge. I'm pretty sure it's applying some kind of normal threshold based on the face's angle.

    Hi everyone, I'm a long time lurker first time poster.
    I have have also noticed the way Maya deals with hard edges in surface transfer.

    From what I can tell what it does is ray cast as if the edge was soft. BUT calculates the difference between the highpoly normal and the lowpoly, hard normal not the ray direction. That way the shading is correct.

    I have never used anything else that works this way but I think it would be very useful as an option in xnormal as it can help make hard edges, almost seamless.

    That's only my guess at how it works though.
    Thanks for making such a great program.
    Patrick.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    @Johnny. Thanks. I'm investigating.

    @MM. I bet the magic is on the "Match using: Geometry normals". The other option is "Surface normals". Anybody can explain what's the difference between both, pls?

    @Nome_sane. So if the vertex normal in the lowpoly is soft then I ray cast as is doing now... but if it's a split normal(hard edge) then I use the lowpoly vertex normal and not the cage's direction to ray cast?
  • nome_sane
    Options
    Offline / Send Message
    jogshy wrote: »
    @MM. I bet the magic is on the "Match using: Geometry normals". The other option is "Surface normals". Anybody can explain what's the difference between both, pls?

    Yes it looks like that is indeed where the magic lies!!

    This shows the difference between the two.
    norms_example.jpg

    And this is a diagram of what I think is going on.
    norms_diagram.jpg

    So basically to do this I believe you would ignore the low poly models normals and cast all the rays as if every edge on the low poly model was soft. But once you have found the correct point on the high poly mesh for each ray you calculate the difference between the high poly normal at that point and the original low poly normal for that ray.
  • jogshy
    Options
    Offline / Send Message
    jogshy polycounter lvl 17
    But I think you can get a similar result using "harden normals" + no cage...
    That should be equal to the Maya's surface normals.

    "Average normals"(or "exported normals" if you already averaged it on the modelling app) + no cage = Maya's geometry normals.

    I suspect what Maya is computing the tangent basis in a different way. I wonder what happens if you render object space normal maps instead of tangent space ones.

    btw, Johny sent me a model to reproduce the pixelization problem... i'm analyzing it now.... I bet is a bug in the pixel filtering process.
1212224262759
Sign In or Register to comment.