Good job. Thanks for sharing
Good job. Thanks for sharing
Could you explain me then why there is no similarity between thin-film over conductive material while taking values from table I've wrote about in post #34?
@JettG_G also stated:
Before, trying to understand all the analytic spectral integration stuff in that paper was really hard, so I pretty much skipped it when I tested out their interference equation (which gave the exact same result as the equation I used from Pruster). After getting another good look through it, I think it might be doable in Blender...
Well, since everything else pans out pretty nicely, it could be that their n3 value is different than specified (actually couldn't find a specification in the supplementary), or the spectral part is very important (don't expect it), or perhaps they made a mistake?
Edit: not excluding mistakes on my/our part
Last edited by prutser; 09-Jan-18 at 09:57.
the biggest influence ,beside the right formulas,are the used IOR and k values afaik.then the used trichromatic RGB wavelengths lambdas,makes a huge differents with my testings (because that results in different frequency/color disburtion).
for a even more accurate shader,you can implement the calculation from the temperatur that results in different IOR,or the rising damping factor in the thinfilm with increasing thickness.to name a few ideas, for more realworld influnce factors.
afaik ,the spectral calculation ,in the paper that doo posted,uses a calculation for matching eyesensitivity,for a better wavelength disburtion especially for the red,because the red has influence in the low wavelength at around 4x0 nm and the yellowish red part iirc 580-600+.
edit,you can double your accuracy simply with doubling the sample rate.now you have 3 for RGB.you can make a spectral render for the poor man.simply calculate the magenta cyan and yellow with the correct wavelength lambdas and IORs ofcourse.and combine the results.than you have 6 sample points.
Last edited by pixelgrip; 09-Jan-18 at 10:50.
That's actually already included in 'k': a thicker absorbing film (that is, k>0) will automatically transmit less light
Only if you assume a spectral shape of your lamp (each lamp individually) and weigh the relative components accordingly.you can double your accuracy simply with doubling the sample rate.now you have 3 for RGB.you can make a spectral render for the poor man.simply calculate the magenta cyan and yellow with the correct wavelength lambdas and IORs ofcourse.and combine the results.than you have 6 sample points.
Just for reference if anyone is interested, I did a poor man's spectral calculation with 81 samples across the spectrum for my OSL script (same physics as this node group) some time ago. Here I assume a white light spectrum (D65) and also used white light in Cycles (R,G,B)=(1,1,1).
Conclusion: it only matters if you really want scientifically exact results, represented on a RGB display.
Here's the full post for reference: https://blenderartists.org/forum/sho...=1#post3081668
Hey everyone, it was brought to my attention, so I updated the blend file to have an attribution to Robin Marin for the scene.
Also, while I have not been able to implement the equations correctly from the papers mentioned above, I think I may have found a different way to implement some fake spectral calculations. Though, I'm having trouble attempting to implement it.
The idea is that if I input a gradient of wavelengths (linear interpolation) into the Interference Component node group (found inside the Interference node group) as a very small texture (along with a map of n and k values made in the same way), the result will be a map of reflectances. The map is then multiplied by a fake white color to produce color. I basically intend for it to work similarly to pixels on an electronic screen.
Now, I'm not exactly sure if it will end up working but here's a link to the file I've been working on. Try playing around with it and see what you can get:
https://www.dropbox.com/s/xv5og0dzos...ral.blend?dl=0
The link will also be in the first post.
I'm running out of time right now to describe some of the ideas I have to implement the fake spectral stuff correctly, so I'll make another reply with them as soon as I can.
I have also actually created a new simplified Interference node group (made similar to what's described above but with constant interpolation) that I'll be posting soon. This method works much faster than calculating the Interference Component node group three times. Although, because of the many small textures used in this method, the refraction shader does not converge fast enough. To fix that, I kept the original setup alongside the new one, so the new one calculates the reflection colors and the old one calculates transmission colors. It should not matter in the end that the calculations are different because the result should all be the same.
Last edited by JettG_G; 31-Jan-18 at 19:01.
Come see my sketchbook! Click.
Hello! I'm really impressed seeing what you did there, and I want to ask you a question. Is adding Glossy shader physically correct? Isn't better idea to make colored specular component of dielectric shader or mix it with metal color? I'm attempting to create super physically based uber shader using 3 RGB IOR values, can I use and mention your method in my semi-tutorial video showing the node structure of PBR shader? I'll give you credit, of course I should post some results on May - June, when I finish animation
Yes it is correct. The total amount of light is the sum of the transmitted part (T), reflected part (R) and the absorbed part (A), so setting the total to 100% means T+R+A = 100%. R and T are calculated by the shader. For a solid metal, there is no transmitted part so T = 0; Therefore, just having a glossy shader which takes care of the R part is sufficient in that case.
For a colorless (non-absorbing) dielectric, A = 0, therefore R+T = 100%. Therefore, you hook up the R part to the glossy shader and add a refractive shader to it where the color input takes the T output of the node. Note that for a simple glass the reflection is colorless (if the light source is white), but that with interference effects this changes (soap bubble effect). However, it is still the correct thing to do.
If the base material of your dielectric is colored, it means it absorbs light. The standard glass shader in blender doesn't handle this correctly. Two issues arise: 1) If you select a color, the color is the same regardless the thickness of the object, and 2) the reflection of the object is colored. This doesn't happen unless the material is hugely absorbing but then you wouldn't use a glass shader anymore. You can check yourself with any colored glass object that with a white light the reflection is white as well.
Gottfried Hoffman wrote a nice tutorial on how to fake the absorption inside the glass: http://www.blenderdiplom.com/en/tutorials/419-tutorial-absorption-in-cycles.html
The best solution to fake it then is to take the T output of the node from this thread and put it into a refractive shader which includes Gottfried's trick. The glossy shader with the R part as color input is then added again which gives you a pretty accurate glass shader.
If it gives the result you like it's all fine, but physically it's incorrect.Isn't better idea to make colored specular component of dielectric shader or mix it with metal color?
Bookmarks