# Rusinkiewicz table BSDF¶

## Description¶

This BSDF model uses tabulated values. The coordinate system is the described in A new change of variables for efficient BRDF representation. The four geometric variables are thetaH, phiH, thetaD, phiD. This variable change is more efficient than the classical inbound/outbound vectors for all glossy materials.

The BSDF may be anisotropic if it depends on phiH.

This tabulated format is not currently editable in the graphical user interface, and should be provided in OCXML or OCBIN file formats.

The BSDF coefficient may be RGB, spectral values, or any set of channels having a primary spectrum. These primaries are represented by the spectrum children nodes. For instance:

• An achromatic (gray) BSDF will have a single spectrum child primary. The spectrum will be uniform, with a value of 1
• A RGB BSDF will have three primaries, each being set to R, G and B primary spectrum using preset spectra.
• A spectral BSDF will, for instance use a set of square spectra as primaries.

The grid on the H vector is defined as follows:

• thetaH takes a list of values, not necessarily evenly spaced. The first value is always 0° and the last 90°
• for each thetaH value, phiH can take a different number of evenly spaced values from 0° to 360°. This results in an igloo-shaped grid.
• A phi_h_sym parameter defines the symmetry along phiH

The symmetry parameter phi_h_sym is interpreted as follows:

• 0 or 1 means no symmetry, the first phiH is 0 and the last one is 360*(1-1/num_phi_out).
• -1 is an axial symmetry along the incident plane. The first phiH is 0 and the last one is 180.
• -2 is an axial symmetry plus a periodicity of 180°/2 = 90°. The first phiH is 0 and the last one is 90
• A value n above 1 means a periodicity of 360°/n. The first phiH is 0 and the last one is 360*(n-n/num_phi_out).

The grid on the D vector is defined the same way except:

• thetaD values are always evenly-spaced between 0° and 90°. The number of thetaD angles is then deduced from the number of values in the num_phi_d table
• there is no symmetry parameter for phiD is always 2 (which derives from the BRDF reciprocity)

Note

## Children Nodes¶

This node is a spectrum list. It may have a variable number of spectrum children.

 user-defined First primary user-defined Second primary user-defined ...

## Ocean XML 3.0 example¶

<bsdf type="rusinkiewicztable" name="brdf">
<spectrum type="uniform" name="" id="0" value="1"/>
<flist name="theta_h">0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90</flist>
<ilist name="num_phi_h">2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3</ilist>
<ilist name="num_phi_d">1 1 2 3 3</ilist>
<ilist name="phi_h_sym">-2</ilist>
<flist name="values">
11.55 13.4572 24.1996 0 81.4196 0 0 121.733 0 0
0 0 0 0 0 0 0 0 0 0
10.4874 12.1374 20.2484 19.8404 58.7873 81.79 59.5463 86.5922 81.79 90.79
9.71542 11.3007 19.3251 21.8282 61.1622 81.79 66.633 91.773 81.79 101.26
10.0996 11.7601 21.9836 18.4938 73.7751 0 20.19 111.247 0 0
10.0043 10.8436 17.8292 17.4581 50.8335 81.79 44.5635 75.6779 81.79 90.79
8.5122 9.47786 16.4763 19.6714 50.5041 81.79 58.5099 76.6955 81.79 89.0134
<!-- Actual data skipped -->
</flist>
</bsdf>


The BRDF values are then given in a single list , by order of :

1. thetaH
2. phiH