Physically Based Rendering – Part Two blog post

Here is the next blog post about PBR.
http://hub.jmonkeyengine.org/2014/12/physically-based-rendering-part-two/

Feel free to comment.

4 Likes

Indeed it becomes more complicated on this part :p. Need to reread multiple times but it’s well explained. Thanks.

Correct me if i’m wrong, but i think you have done 2 mistakes…maybe typing…or me ^^

//direct lighting
for each directLightSource {
directDiffuseFactor = DiffuseBRDF(directlightSource)
directSpecularFactor = SpecularBRDF(directLightSource)
directLighting += Albedo * directDiffuseFactor + SpecColor * directDiffuseFactor
}

//Indirect Lighting, done through Image Based Rendering with an environment map
indirectDiffuseFactor = DiffuseBRDF(EnvMap)
indirectSpecularFactor = SpecularBRDF(EnvMap)

indirectLighting = Albedo * indirectDiffuseFactor + SpecColor * indirectSpecularFactor

Lighting = directLighting + indirectLighting

At line 5 it shouldn’t be
“directLighting += Albedo * directDiffuseFactor + SpecColor * directSpecularFactor
instead of
“directLighting += Albedo * directDiffuseFactor + SpecColor * directDiffuseFactor” ?

And in the Specular BRDF : Cook-Torrance part

The right and left are inversed no? The right ones is the rough version? …or am i completly wrong :s

1 Like

You’re right on both.
Thanks a lot :wink:

I stumbled over the same two typos. Might be irritating for some people who didn’t read “Part One blog post”.

By the way, it’s really nice to see some PBR with image-based lighting in jME (will it be in 3.1 SDK ?).
First time I read about that topic in “OpenGL shading language” (printed in 2010).
The time has come for jME people to know what gloss maps / shininess maps are. ^^
I remember an early discussion in the forums: (old thread from July 2013).

One question: How did you generate the blurred textures seen in “Part One blog post”?

Hm… why can’t I select those funny monkey-smilies anymore?? :frowning: Has the forum software been ‘improved’ again? :wink:

@nehon said: You're right on both. Thanks a lot ;)

No problem, i’ve well understood the concept so. That’s cool :slight_smile:

Cool stuff, I read somewhere that both cryengine and UE4 use Cook-Torrance/GGX and Fresnel-Schlick. JME is for sure keeping up with the commercial players :slight_smile:
Mr. Lagarde has a nice presentation about moving frostbite to PBR:

http://seblagarde.wordpress.com/2014/11/03/siggraph-2014-moving-frostbite-to-physically-based-rendering/

@jmaasing said: Cool stuff, I read somewhere that both cryengine and UE4 use Cook-Torrance/GGX and Fresnel-Schlick. JME is for sure keeping up with the commercial players :-)
That's totally the other way around dude, they're keeping up....but barely ;) Honestly the UE4 guys were really cool to publish their stuff, else IDK if I could have done it. Huge thanks to them.

Anyway I’m not done yet. More to come

@jmaasing said: Mr. Lagarde has a nice presentation about moving frostbite to PBR: http://seblagarde.wordpress.com/2014/11/03/siggraph-2014-moving-frostbite-to-physically-based-rendering/
Thanks ;) But I think I read the whole internet about it... :p This is one of the articles I read 10 times.
@Ogli said: One question: How did you generate the blurred textures seen in "Part One blog post"?
In post one, the convolution is done directly in the shader, making it very slow. Since then I managed to generate them form an envmap rendered in game. More of that in the post series though. Just know that in the end the complete code will be available in the engine.
@Ogli said: Hm.... why can't I select those funny monkey-smilies anymore?? :-( Has the forum software been 'improved' again? ;-)
Actually that's the other way around, we removed the theme because it was wonky and was doing crap in the database. We are moving pretty soon to another software and this time it's a real improvement.
@nehon said: We are moving pretty soon to another software and this time it's a real improvement.