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).
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…
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.
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.
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.
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
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
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).
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
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.
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…
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.
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.
The shaders are now packaged, and are pending release! I’ve included some rudimentary documentation, which can be found here: http://www.snowcatsolutions.com/gzrnmdoc/.
You can find out what to expect with this release in this blog post: http://bit.ly/dRJlpm