Monday, July 26, 2010
Shader Tips.
I've been working on a high end shader over the last few days. this particular shader needed a diffuse map, a normal map, a specular map (color and alpha mask), a cube map, and a fallback texture. The cube map provided reflections which were mapped over the normals (from the normal map) of the model. Here are some random things I've learnt.
1. Add ambient light, don't multiply.
2. To mix colours, multiply them together, then multiply by 2 to retain the same brightness.
3. Use the Unity3D macros in UnityCG.cginc, they make life much easier.
Subscribe to:
Post Comments (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
I have just spent an hour trying to track down a weird bug in some Javascript interpolation code. The offending code looks like this: var n ...
-
The procedural planet package has been updated to version 1.4, and you can see the new demo here . It features better city light control, be...
-
Dear Lazyweb. Imagine a nice RESTful interface for working with Tags. The URL: /tags/ will return a list of all the tags. The URL: /tags/fo...
-
Why would I ask that question? Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages i...
-
I've just finished refactoring an awful C# class. I had been delaying the job for a while because I didn't want to do it. Then, whil...
-
I've built sites with Django, TurboGears and Pylons. I've come to prefer Pylons. Why? Pylons gets out of the way, and stays out of t...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
I've just uploaded Fibra 2 to the cheeseshop. Fibra 2 includes the promised non-blocking plugin, which allows a generator based task to...
2 comments:
"2. To mix colours, multiply them together, then multiply by 2 to retain the same brightness."
"Same brightness" as what? Color1 or color2? The average? If you only want to mix the "color", not the brightness, you likely need to convert to a different color-space (like YUV or HSB).
I may be confused, but I think you're doing:
vec3 col0 = vec3(0.1f);
vec3 col1 = vec3(0.1f);
vec3 your_result = 2.0f*(col0*col1);
vec3 correct_result = mix(col0,col1,0.5f);
- giving
your_result = 0.02f
correct_result = 0.1f;
(the math works for 0.5 though :P )
LOL. I have much to learn. :-)
Post a Comment