New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Corrected Schlick specular term and added specular normalization constant #1518
Conversation
Don't worry, it's normal, you should see which mess we made sometimes with git with @mrdoob ;). Cool that you took the plunge, once you learn the basics, workflow with git is pretty simple, just you need a good client (I use TortoiseGit on Windows). About specular term changes - are you sure they are correct? I tried and it seems they completely mess several examples (though problem may be these may had parameters tuned to compensate for shader bugs?). It feels like if specular term was sucking out light. |
I am certain as I'll ever be that it is correct. With proper parameters, the results are incredible. Yes, the parameters in the examples will have to be changed. As Hoffman points out, for most materials, spectral is 2% (0x050505) to 5% (0x0d0d0d) and shininess can vary from 0 to 1000+. Keep ambient the same as diffuse. Metals now work well with no diffuse term, fairly high spectral reflectance, and shininess of 10 or so. The glare at low angles off of flat surfaces looks great now, too. BTW, thank you and @mrdoob for all your hard work on this project. I am learning a lot from you. |
This seems worse than I thought - it looks related to #1292, something going wrong in HLSL triggered by particular GLSL code constellation around loops :S Well, at least we know your changes were ok. Now we just need to figure out some workaround for ANGLE bug. The one I used before works (add extra light), but this is quite costly. This change was relatively small and different from what was triggering problems before, so maybe there is some other way. |
I'm on Mac. |
This is really really bizarre, even more so than this other issue. This doesn't work: float specularNormalization = ( shininess + 2.0 ) / 8.0; This does: float specularNormalization = ( shininess + 2.01 ) / 8.0; float specularNormalization = ( shininess + 1.99 ) / 8.0; Well, I guess I will just leave it at that and pray this doesn't break for some combination of other parameters (it's not about value of |
WOw , that is really cooool |
…physically based specular term. See discussion here: mrdoob/three.js#1518
No description provided.