Print at Jan 24, 2022, 1:34:35 PM

Posted by at May 27, 2014, 9:11:50 PM
Re: Sweet Home 3D 4.4
So you mean that Ni shouldn't be used directly,

Sorry it is a miss understand!, I mean that Ni shouldn't be derived correctly(Script Error & it is the bug).
[Sorry once again for any spelling mistake or grammar mistake].
{I usually do open sh3d in eclipse & edit then export file as -java-jar file. Then using 7zip replaces proper class files in SweetHome3D.jar and start test rendering.}

In this script line I understand that
TransparencyAttributes transparencyAttributes = appearance.getTransparencyAttributes();
if (transparencyAttributes != null
&& transparencyAttributes.getTransparency() > 0
&& !ignoreTransparency) {
if (material instanceof OBJMaterial
&& ((OBJMaterial)material).isOpticalDensitySet()) {
this.sunflow.parameter("eta", ((OBJMaterial)material).getOpticalDensity());
} else {
// Use glass ETA as default
this.sunflow.parameter("eta", 1.55f);
float transparency = 1 - transparencyAttributes.getTransparency();

photorender calls a value (Ni)as optical_density from objmaterial(*.mtl) and assigned to ETA and give it to sunflow for rendering.
But I want to tell you that it fails to find the value from mtl file comes with .obj.
Because assigned a value 2.5f as ETA for the 'if' condition if what ever the value of Ni. Then Render & the glass object render with optical density 2.5f. If I changed the glass material color/Texture it renders in optical density 1.55f.
So I come to the conclusion that :
optical density calling from (its default) *.mtl file or
assign the value for eta failed.
So sunflow render a black dot instead.
I doubt that because of script error(spelling mistake /failed to maintain Ni value limitation in between 0.001-min to 10-max).

I am not propose 2.5f as eta.But the above image values are get from
sunflow sample render secene file( opened in notepad & rendered in sunflow gui.
2.5f takes 20% to 40% more time for rendering than 1.55f but give more realistic glass reflection.
I found an invisible bug that when I import a furniture(most time *.3ds) & save it, then it produces a *.shed file consist of imported furniture as *.obj&*.mtl. But the bug is that when I export the imported furniture as *.obj then the file(*.obj&*.mtl) is totally different from than the saved file(the content of file/the method by which is used to export). This will not seen in geometry creation, but affect in glass type objects that have a curvy vine glass shape.
Each time Import then export then again import & export each type of obj files are created & after some exports later the material glass loose its Ni value. I think the bug lies in OBJ exporter because If I import Obj files It saves same file but export then file creation method chagned & create a different file is being created, with no Ni parameter in mlt file some times.
So please remove current Obj exporter(creation method) & use furniture library creator's/save as sh3d file's Obj saving algorithm instead