I have had a question for a long time about ideal specular BTDF (BRDF).

Ideal specular BRDF and BTDF are:

- f_r(w_i, w_o) = F(theta_i) * delta(w_o - R(w_i, n)) / |cos(theta_i)|
- f_t(w_i, w_o) = (eta_o / eta_i)^2 * (1 - F(theta_i)) * delta(w_o - T(w_i, n)) / |cos(theta_i)|

Q. Why are they divided by the cosine of angle of incident direction instead of scattered direction?

I think scattered radiance should be divided by the cosine of scattered angle.

If Fresnel term already accounts for cosine of incident angle (that is also in rendering equation) and cosine of scattered angle (in this case Fresnel term represents incident radiance to scattered radiance ratio?), it seems reasonable for BRDF but not for BTDF. Who accounts for cosine of refracted angle for BTDF?

In general BTDF does not obey reciprocity, but for basic radiance (L/eta^2) it restores reciprocity.

I think it appears that the ideal specular BTDF does not obey reciprocity even for basic radiance.

Which is my misunderstanding?

Sorry for my poor English.

Thanks,

Statistics: Posted by shocker_0x15 — Tue May 24, 2016 5:34 am

]]>

citadel wrote:

And the diffuse Fresnel transmittance is no more than approximation to specular

Fresnel transmittance from all directions.

The original BSSRDF seems to use "directional" Fresnel transmittance not diffuse one.

Is it natural that substituting the ideal specular BTDF produces different BSSRDF compared to the original one?

Of course, there is a high probability I made incorrect BSSRDF expresssion that is generalized to rough surface or I have some misunderstanding about ideal specular BxDF.

Statistics: Posted by shocker_0x15 — Tue May 24, 2016 5:04 am

]]>

Statistics: Posted by joedizzle — Mon May 23, 2016 3:44 pm

]]>

I've been writing a small path tracer code in java, referencing both SmallVCM and PBRT. I have noticed some problem with the grid accelerator code of pbrt-v2 in which I've referenced their code (complete port to java) and the specific part is the setting up ray for traversal in the grid.

Code:

` if (ray.d[axis] >= 0) {`

// Handle ray with positive direction for voxel stepping

NextCrossingT[axis] = rayT +

(voxelToPos(Pos[axis]+1, axis) - gridIntersect[axis]) / ray.d[axis];

DeltaT[axis] = width[axis] / ray.d[axis];

Step[axis] = 1;

Out[axis] = nVoxels[axis];

}

The problem comes with division with ray direction in calculating the NextCrossingT[axis]. Notice that it may yield a negative infinity and positive infinity if the denominator is either -0 or +0 based on IEEE-754 floating point arithmetic standards. This came across whereby I incorporated DirectionalLight (distant delta point light) and I've configured it to generate ray direction if given theta and phi values as spherical coordinates. It has a very big impact when generating shadow rays in which there is no proper intersection. Is it a bug by itself or probably my code is wrong, I just rectified it by avoiding generating -0 values. I also noticed pbrt-v3 does not include grid code, probably there is no plan to include it hence that's why I've put this as a separate topic by itself.

Statistics: Posted by joedizzle — Mon May 23, 2016 3:34 pm

]]>

]]>

There is also a linear correspondence between the position of the beam in the vicinity of the beamsplitter and the angle of light through the aperture. For example, a 0 degree beam passes through the center of the beamsplitter, an 80 degree beam passes through the beamsplitter 40mm from the center and a 40 degree beam passes through the beamsplitter 20mm from the center. This means that one only needs to translate the light source in order to change the angle of the incident beam on the sample.

Please note that the above description discusses moving the light source in the plane of the page. We actually move the light source in the out-of-page direction. This is shown in the new photo on this page: http://eckop.com/optical-instruments/scatterometers/ We've sold a couple scatterometers, upgraded ouir light source and added light source translation to the 45 degree scatterometer (2nd from right), but the picture still gives the idea.

HTH

Statistics: Posted by dr_eck — Thu May 19, 2016 8:06 pm

]]>

]]>

]]>

https://nvidia.wd5.myworkdayjobs.com/en ... R1901998-1

(or contact me via PM for more details or if you have specific questions)

Statistics: Posted by toxie — Wed May 18, 2016 4:01 pm

]]>

joulsoun wrote:

We're very close to snagging an imaging sphere, so I'm curious about how a conoscopic scatterometer deals with light sources? If we want to measure the reflectance with a number of light source angle increments.

We also have non-optically smooth surfaces that we measure, things that are really rough where we need a very big aperture to get a smooth measurement. Any reflections on if this is suitable for a conoscopic scatterometer? We mainly use measurements with SPEOS, but also to fit to material models for other applications.

We're very close to snagging an imaging sphere, so I'm curious about how a conoscopic scatterometer deals with light sources? If we want to measure the reflectance with a number of light source angle increments.

We also have non-optically smooth surfaces that we measure, things that are really rough where we need a very big aperture to get a smooth measurement. Any reflections on if this is suitable for a conoscopic scatterometer? We mainly use measurements with SPEOS, but also to fit to material models for other applications.

Hmm. Given the nature of this forum, I don't want to turn this post into a sales pitch, but it will be difficult. Please PM me if you want more details.

Our conoscopic scatterometers allow the incident angle for BRDF measurements to be varied from normal incidence almost up to the acceptance angle of the scatterometer. The only limitation is that it can only be varied in one plane, so you would have to rotate your sample to get additional planes. BTDF measurements are done with an optional sample table that offers similar capabilities. Scattering is, of course, measured over a portion of a hemisphere, not just in the plane of incidence.

Rough surfaces are no problem for conoscopic scatterometers up to a point. Our 80 degree scatterometer has a 1.5mm diameter input aperture. If your surfaces have a "period" greater than 0.5mm or so and you want to average, it would be necessary to take multiple measurements and average them.

Our software is set up to output either ABC coefficients or pictures. If SPEOS needs a different input, the software can be modified to give you data in a format compatible with SPEOS or your other software.

Statistics: Posted by dr_eck — Tue May 17, 2016 6:14 pm

]]>

Statistics: Posted by joulsoun — Tue May 17, 2016 5:46 am

]]>

spectral wrote:

This hardware looks interesting but completely out of our budget ! Just impressed !

This hardware looks interesting but completely out of our budget ! Just impressed !

Yes, the price is very high. If I could sell 100 systems, the price could be reduced by 90%, but the market just does not seem to be there. Maybe I should do a Kickstarter to really find out.

Statistics: Posted by dr_eck — Mon May 09, 2016 6:49 pm

]]>

Statistics: Posted by citadel — Sat May 07, 2016 3:05 pm

]]>

]]>

Mitsuba in (almost) the same setting:

Statistics: Posted by citadel — Fri May 06, 2016 6:17 am

]]>