Property | Type | Description | |
---|---|---|---|
m_BRDF | BRDFSlices.Vector3[ | ||
m_Intersections | ].double[ | ||
m_Pen | Pen | ||
m_Slice | Bitmap |
Method | Description | |
---|---|---|
DisplayForm ( |
||
LoadBRDF ( FileInfo _BRDFFile ) : BRDFSlices.Vector3[ |
Loads a MERL BRDF file
|
|
LookupBRDF ( |
Given a pair of incoming/outgoing angles, look up the BRDF.
|
|
LookupBRDFTrilinear ( |
||
PhiDiff_index ( double _PhiDiff, double &_Interpolant ) : int | ||
ThetaDiff_index ( double _ThetaDiff, double &_Interpolant ) : int | ||
ThetaHalf_index ( double _ThetaHalf, double &_Interpolant ) : int | ||
half_diff_coords_to_std_coords ( double _ThetaHalf, double _PhiHalf, double _ThetaDiff, double _PhiDiff, |
||
half_diff_coords_to_std_coords ( double _ThetaHalf, double _PhiHalf, double _ThetaDiff, double _PhiDiff, double &_ThetaIn, double &_PhiIn, double &_ThetaOut, double &_PhiOut ) : void | ||
std_coords_to_half_diff_coords ( double _ThetaIn, double _PhiIn, double _ThetaOut, double _PhiOut, double &_ThetaHalf, double &_PhiHalf, double &_ThetaDiff, double &_PhiDiff ) : void |
Method | Description | |
---|---|---|
BuildScaleTable ( ) : void | ||
ComputeScaleFactor ( double _ThetaH, double _ThetaD, double _PhiD ) : double | ||
Dispose ( bool disposing ) : void |
Clean up any resources being used.
|
|
LoadBRDFBisou ( FileInfo _BRDFFile ) : double[][] |
Loads a MERL BRDF file
|
|
LoadScaleTable ( ) : void | ||
Redraw ( ) : void | ||
SaveAllSlices ( ) : void | ||
SaveAllSlices_BUGGED ( ) : void | ||
SolveNewton ( double a, double b, int &_IterationsCount ) : double |
Numerically computes the intersection of a straight line with a strange curve we know the equation of... We're using the http://en.wikipedia.org/wiki/Newton's_method The computation is occurring in [ThetaH,ThetaD] space: ^ ThetaD | PI/2 +----------/-----+ ThetaH PI/2 We're looking for intersection point o given 2 values: the slope of the straight line and PhiD that guides the curvature of the strange curve C(y) The position of a point P on the line is given by P(x)=[x,slope.x] (we know the slope) we find o so that o = P(x) = C(y) So we can write: x = atan( tan(PI/2 - y) / cos(PhiD)) y = slope.x Replacing: x = atan( tan(PI/2 - slope.x) / cos(PhiD) ) Tanning: tan(x) = tan(PI/2 - slope.x) / cos(PhiD) Or: tan(x).tan(slope.x) = 1 / cos(PhiD) We know "slope" and "PhiD", we need solve to find x which is the ThetaH at which the intersection occurs...
|
|
WarpSlice ( int _ThetaHIndex, int _ThetaDIndex, double _Warp, |
||
WarpSlice_Compress ( int _ThetaHIndex, int _ThetaDIndex, double _Warp, |
Method | Description | |
---|---|---|
InitializeComponent ( ) : void |
Required method for Designer support - do not modify the contents of this method with the code editor.
|
|
buttonRebuild_Click ( object sender, EventArgs e ) : void | ||
checkBoxDifferences_CheckedChanged ( object sender, EventArgs e ) : void | ||
checkBoxShowIsolines_CheckedChanged ( object sender, EventArgs e ) : void | ||
checkBoxUseWarping_CheckedChanged ( object sender, EventArgs e ) : void | ||
floatTrackbarControlExposure_ValueChanged ( Nuaj _Sender, float _fFormerValue ) : void | ||
floatTrackbarControlGamma_ValueChanged ( Nuaj _Sender, float _fFormerValue ) : void | ||
floatTrackbarControlScaleFactor_ValueChanged ( Nuaj _Sender, float _fFormerValue ) : void | ||
floatTrackbarControlWarpFactor_ValueChanged ( Nuaj _Sender, float _fFormerValue ) : void | ||
integerTrackbarControlPhiD_ValueChanged ( Nuaj _Sender, int _FormerValue ) : void |
protected ComputeScaleFactor ( double _ThetaH, double _ThetaD, double _PhiD ) : double | ||
_ThetaH | double | |
_ThetaD | double | |
_PhiD | double | |
return | double |
public DisplayForm ( |
||
_BRDF | ||
return | System |
protected Dispose ( bool disposing ) : void | ||
disposing | bool | true if managed resources should be disposed; otherwise, false. |
return | void |
public static LoadBRDF ( FileInfo _BRDFFile ) : BRDFSlices.Vector3[ | ||
_BRDFFile | FileInfo | |
return | BRDFSlices.Vector3[ |
protected LoadBRDFBisou ( FileInfo _BRDFFile ) : double[][] | ||
_BRDFFile | FileInfo | |
return | double[][] |
public static LookupBRDF ( |
||
_BRDF | ||
_ThetaIn | double | |
_PhiIn | double | |
_ThetaOut | double | |
_PhiOut | double | |
_Result | ||
return | void |
public static LookupBRDFTrilinear ( |
||
_BRDF | ||
_ThetaHalf | double | |
_ThetaDiff | double | |
_PhiDiff | double | |
_Result | ||
return | void |
public static PhiDiff_index ( double _PhiDiff, double &_Interpolant ) : int | ||
_PhiDiff | double | |
_Interpolant | double | |
return | int |
protected SolveNewton ( double a, double b, int &_IterationsCount ) : double | ||
a | double | |
b | double | |
_IterationsCount | int | |
return | double |
public static ThetaDiff_index ( double _ThetaDiff, double &_Interpolant ) : int | ||
_ThetaDiff | double | |
_Interpolant | double | |
return | int |
public static ThetaHalf_index ( double _ThetaHalf, double &_Interpolant ) : int | ||
_ThetaHalf | double | |
_Interpolant | double | |
return | int |
protected WarpSlice ( int _ThetaHIndex, int _ThetaDIndex, double _Warp, |
||
_ThetaHIndex | int | |
_ThetaDIndex | int | |
_Warp | double | |
_Result | ||
return | void |
protected WarpSlice_Compress ( int _ThetaHIndex, int _ThetaDIndex, double _Warp, |
||
_ThetaHIndex | int | |
_ThetaDIndex | int | |
_Warp | double | |
_Result | ||
return | void |
public static half_diff_coords_to_std_coords ( double _ThetaHalf, double _PhiHalf, double _ThetaDiff, double _PhiDiff, |
||
_ThetaHalf | double | |
_PhiHalf | double | |
_ThetaDiff | double | |
_PhiDiff | double | |
_In | ||
_Out | ||
return | void |
public static half_diff_coords_to_std_coords ( double _ThetaHalf, double _PhiHalf, double _ThetaDiff, double _PhiDiff, double &_ThetaIn, double &_PhiIn, double &_ThetaOut, double &_PhiOut ) : void | ||
_ThetaHalf | double | |
_PhiHalf | double | |
_ThetaDiff | double | |
_PhiDiff | double | |
_ThetaIn | double | |
_PhiIn | double | |
_ThetaOut | double | |
_PhiOut | double | |
return | void |
public static std_coords_to_half_diff_coords ( double _ThetaIn, double _PhiIn, double _ThetaOut, double _PhiOut, double &_ThetaHalf, double &_PhiHalf, double &_ThetaDiff, double &_PhiDiff ) : void | ||
_ThetaIn | double | |
_PhiIn | double | |
_ThetaOut | double | |
_PhiOut | double | |
_ThetaHalf | double | |
_PhiHalf | double | |
_ThetaDiff | double | |
_PhiDiff | double | |
return | void |