Good job so far! I do have some input here... It looks like you're using the G term that was described in the paper, which seems fine. It's not 100% right though in practice/use, since we make a substitution of G, and introduce something called V, for visibility. This was what Lazarov did in his 2011 paper... So V is…
you're looking at one part of the whole sum. and that's why it doesn't look like it's working to you. the whole sum for the BRDF is: (D*F*G)/(4 * NoL * NoV) where D = that custom node (Specular Distribution), G = geometric shadowing, F = fresnel. see supporting images here for the the full formula node. with one-minus…
hey guys, over the last few days i've been working on this: I'd love for people to play around with it and let me know what they think. http://crazyferretstudios.com/public/PhysicallyBasedLighting.upk The reason i made this was to get used to a newer way of working, with the industry moving toward a PBR setup, and very few…
BIG OOOOOOOL' UPDATE! http://crazyferretstudios.com/public/PhysicallyBasedLighting_v1_03.upk Have just put in a basic layering system! you can now have four different material layers which can be defined in the following ways! - Albedo Colour: choose your materials base albedo. use texture on/off set to 0. - Albedo…
UPDATE TIME!!! 00:08 - 27/09/2013 http://crazyferretstudios.com/public/PhysicallyBasedLighting_v1_05.zip I STRONGLY RECOMMEND DELETING ALL PREVIOUS VERSIONS ENTIRELY. this will stop any cross over between the shader functions, and hopefully minimize any errors. there are a lot of changes under the hood in this update, so…
I've isolated the above issue to the following formula: float3 IBL = SampleColor * F * G * VoH / (NoH * NoV); in particular, NoH is not working. if i plug a constant into it, it looks fine regardless of the value. so now i'm a little stuck. edit - i think i've solved it by renormalizing NoH.
This is the one for ambient specular? Hard to say how bright it is. Looks like a refactored Smith GGX? Could work. You can experiment, maybe even try a regular Smith-Schlick float a = 1.0f / sqrt(0.78539816f * roughness + 1.57079632f); // square "roughness" if you need to :P float G = 1.0f / (NoL * (1.0 - a) + a) * (NoV *…
Uh right, i thought of static cubemap and not of those captured, that indeed would result black if there is no light... my bad :) Anyway almighty, if you don't mind, i was asking that because i found a missed node in G(V) (you plugged in the multiply instead of the divide) and also i found that K is only divided by 2…
Where we are talking about "IBL" here, we should be calling it "Ambient". There is Ambient Specular and Ambient Diffuse. Both should be part of the custom lighting, not the emmisive slot. This is an approximation we're doing here, so sometimes we have light sources that don't exactly match our cubemap. Another term for…