Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

The GzRNM (Radiosity Normal Maps) Thread (Poll: to release or not to release)

Discussion in 'Made With Unity' started by Geenz, Oct 26, 2010.

  1. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    I'm sure that some of you have seen my Radiosity Normal Map shaders, and may have even seen my SSBump shaders.

    For those of you not familiar with it, here's a web player, and a few screen shots of the shaders:
    Web Player of RNMs + Specular highlights




    For some background on RNMs and SSBumps, you can read Valve Software's presentations on RNMs and SSBumps here:
    http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_EfficientSelfShadowedRadiosityNormalMapping.pdf
    http://www.valvesoftware.com/publications/2006/SIGGRAPH06_Course_ShadingInValvesSourceEngine.pdf

    My RNM shaders come in three variants:
    Specular RNM - This shader applies a specular contribution based upon the shader's bump basis (PC/Mac Only for the moment).
    Diffuse RNM - This shader only applies diffuse lighting based upon the RNMs supplied to it.
    SSBump RNM - This shader applies static diffuse lighting WITH self shadowed normal maps as well (requires an external application for the SSBump Conversion).

    All shader variants will include both "Vanilla" RNMs and my "Compressed" RNMs.

    My compressed RNMs combine the 3 directional components that RNMs output into a single texture that encodes light intensity. You can use an additional lightmap that encodes light color as well for colored lighting, and it can even be stored at a fraction of the resolution of the CRNM map (which can really come in handy for iOS devices!)

    As it stands, the RNM shaders are complete. However, the workflow for using them is a bit more complex than using the old Lightmapped shaders from Unity 2.x, and requires an external 3D application for RNM generation (such as Maya, 3ds Max, or Modo).

    As such, I've created a poll, which you can read about and vote on here: http://snowcatdesign.org/index.php/2010/10/poll-to-release-or-not-to-release/
     
    Last edited: Dec 19, 2010
  2. Nick3d

    Nick3d

    Joined:
    Jan 28, 2010
    Posts:
    100
    I would love to use the RNM shader, but the main point is always the same: you can't do everything inside Unity, so to get the RNM you have to use another program and then import everything into Unity, which is a pain....

    What I mean is that having a very powerfull lightmapper inside Unity is really handy because you can see in no time the preview of your lighting in the scene, so someone ( I don't remember if was someone from the staff ) says that probably in future release of Unity there will be the support for RNM, which will be perfect...

    Now I'm asking you: is worthed to work on a long term project ( I don't think that build a lightmapper to compete with Beast is very quick to do ) when there is the possibility to get the same results with Beast probably in future releases?

    I repeat, I would love to see RNM within Unity, the problem, especially for large scene, is that is really time consuming to bake your maps in a 3d app, then import everything inside Unity and assing those textures to your models...I did the same exact things with lightmaps before Beast and was so much time consuming that I gave up after a while...
     
  3. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    I've looked at several scenarios for this.

    One scenario, I could repurpose a third party renderer by writing a format exporter for Unity in C#, and setting up a script to start render jobs, then have some scripts and special shaders that handle lightmap assignment from there.

    Another scenario, I could write the lightmapper entirely in C#, bring it into Unity, and have it handled there, but for something like a ray tracer, doing it like that would limit what I could implement later (such as using OpenCL or CUDA to accelerate rendering, or enabling the ability to setup render farms).

    Or, I could write a lightmapper as an entirely custom built piece of software from the ground up in C, and provide an interface for Unity to use it.

    Those are just a few things I've looked at, and in the long run, it could be more beneficial to pursue it as new pre-computed lighting techniques are researched and developed. At that point, I could just modify the lightmapper however I need, and expose additional options for other people's needs (for example: one person may want Halo 3-like pre-computed spherical harmonics instead of Valve's RNMs, or my CRNMs which you have to make by hand as it stands, regardless of what lightmapper or renderer you use).

    It's definitely something I'd like to do, but I know there's people out there that would like the RNM shaders as is. So I'd definitely like to hear what the community would like for *now*. I can always offer upgrades later, if the need arises.
     
    Last edited: Oct 26, 2010
  4. Nick3d

    Nick3d

    Joined:
    Jan 28, 2010
    Posts:
    100
    Well, I think that if you can offer multiple ways to achieve a proper result would be fantastic...
    I mean, think about the Unity3D targeting: mostly games, but lots of visualization, presentations, educational, simulation, and so on, so very probably people usually want something that works properly, instead of having a perfect lightmapped/normalmapped environment that just shows how good are your skills with a 3D app, so offering multiple ways I think that could be a nice solution.
    Think about teams, where everyone do its job and follow a standard pipeline, how a person can use the lightmapper in order to achieve different results ( Halo like, Half Life 2 like.... ); think about indie developers ( even the single person that works on a project ), what could be the best solution for him to get good results without spending hours transfering textures/lightmaps form a 3D app to another...

    For me, right now, Unity3D has very good graphic power, but is still a bit far from UDK, which I used and I loved it, but being a indie developer working with UDK is a nightmare, due to the fact that is very tedious and you can't spped up your workflow a lot.
    Having almost everything inside Unity3D ( except for the modeling part, but 3D apps exist for that purpose ) is very handy and allows you to create and see in realtime what your world will look like, and works for everything, from a single room to a big map of an RPG game...

    Having something that could work inside Unity will be absolutely fantastic, I'm talking about a full lightmapper and a proper shader editor ( god, I love the one in UDK ), that everyone ( from a coder to a 3D artists ) can use.
     
  5. QFS

    QFS

    Joined:
    Jan 22, 2009
    Posts:
    302
    Personally all I want is something that simply works. Whether I have to bake the maps in Modo and carry it back to Unity and assign it to the shaders, I could care less ... as long as it gets the results. A few extra steps isnt going to kill me, especially since you have to already bring in other assets and tweak them here and there.

    If Unity is going to expose this functionality in Beast in a future release then I say dont bother creating a whole new lightmapper/lighting system. But if they are not, then I'd say, yes, please create one.

    But essentially you could do both. Release the RNM shaders and how to use them in the mean time, and if things fall through and if that functionality isnt officially released in a future version of Unity, then you can go ahead and create the new lighting solution.
     
  6. Nick3d

    Nick3d

    Joined:
    Jan 28, 2010
    Posts:
    100
    So, let me understand this, there is no way to get the RNM within Unity tweaking the Beast settings or doing something else do achieve this results, unless you use an external 3d app to get that, is that right?

    So the only "hope" is to wait the Unity guys to integrate this function or create a bew lightmapper...let's see what happen :D
     
  7. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    I wouldn't write a lightmapping system just for RNMs. I'd be writing one that could produce other static lighting techniques as well.
     
  8. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    Just a nifty feature of the SSBump RNM shaders:

    The SSBump RNM shaders handle dynamic lighting with SSBump maps as well. No specular as of yet, but that's an issue all of its own that won't be easily solved that yeilds high quality results :p

    It can work for totally dynamic lighting well enough, but I'd advise using it very sparingly (as it's more expensive than a generic lambertian diffuse term).
     
    Last edited: Oct 30, 2010
  9. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    a solution that works with unity and beast is preferable for most people given the variety of modelling packages out there. It has to work on iphone to be worth it :)
     
  10. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    It hardly has to work on the iPhone to be worth it, but for the most part, everything but my specular shaders (in their most complex form at least) will work on iOS devices from at least the 3GS and up.
     
  11. kurylo3d

    kurylo3d

    Joined:
    Nov 7, 2009
    Posts:
    1,123
    to hell with the iphone.. i want baked textures that react with normal and specularity with beast preferably. Just to make pc games... not goofy little iphone games..
     
  12. wesrm

    wesrm

    Joined:
    May 20, 2009
    Posts:
    193
    Hi Geenz,

    I agree with QFS. I'd love to have access to the shader now. It's no issue for me to transfer the maps myself from my 3D app as it's more important for me to utilize RNM for iOS. I'd wait a bit to see what Unity does with Beast. I've heard that if it's wanted then they'll expose the functionality through Beast, but I believe it will take a hefty re-write of sorts due to Beast's requirement of exposing the functionality through the Beast API rather than the XML settings.

    Thanks!

    Wes
     
  13. kurylo3d

    kurylo3d

    Joined:
    Nov 7, 2009
    Posts:
    1,123
    I dont even like beast to be honest. Too many bugs... And the implementation on a per scene basis instead of per object just makes things rediculously hard to work with. Can we have the working version for a 3d package generated lightmap... my company is willing to pay. Geenz, I really wish you would pm, i tried to pm you but I dont know if you check your messages.
     
  14. Geenz

    Geenz

    Joined:
    Sep 1, 2010
    Posts:
    99
    Last edited: Dec 19, 2010
  15. ykk

    ykk

    Joined:
    Dec 8, 2009
    Posts:
    51
    How can i setup RNM lightmap in 3ds max? Where can i find the documents of workflow.
     
    Last edited: Jan 16, 2011
  16. ykk

    ykk

    Joined:
    Dec 8, 2009
    Posts:
    51
    How the workflow in 3ds max? Any tutorial or documentation?