C# 클래스 BRDFLafortuneFitting.Program

파일 보기 프로젝트 열기: Patapom/GodComplex

보호된 프로퍼티들

프로퍼티 타입 설명
ALF double
EPS double
ITMAX int
STPMX double
TOLX double
TOLY double

보호된 메소드들

메소드 설명
BRDFMappingGlobalFunctionEval ( double _Coefficients, object _Params ) : double
BRDFMappingGlobalFunctionGradientEval ( double _Coefficients, double _Gradients, object _Params ) : void
BRDFMappingLocalFunctionEval ( double _Coefficients, object _Params ) : double
BRDFMappingLocalFunctionGradientEval ( double _Coefficients, double _Gradients, object _Params ) : void
ENSUREVALID ( double _Coefficients ) : void
LoadBRDF ( FileInfo _BRDFFile ) : double[][]

Loads a MERL BRDF file

SaveAllSlices ( ) : void
dfpmin ( double _Coefficients, double _ConvergenceTolerance, int &_PerformedIterationsCount, BFGSFunctionEval _FunctionEval, BFGSFunctionGradientEval _FunctionGradientEval, object _Params ) : double

Performs BFGS function minimzation on a quadratic form function evaluated by the provided delegate

lnsrch ( int n, double xold, double fold, double g, double p, double x, double &f, double stpmax, int &check, BFGSFunctionEval _FunctionEval, object _Params ) : void

비공개 메소드들

메소드 설명
ComputeSummedDifferences ( BRDFSample _Samples, double _Normalizer, double _GoalBDRF, CosineLobe _LobeEstimates ) : double

Computes the square difference between a current cosine lobe estimate and a goal BRDF given a set of samples

FitBRDF ( double _BRDF, CosineLobe _Lobes, CosineLobe _InitialGuesses, double _BFGSConvergenceTolerance, double _RMS, BRDFMappingFeedback _Delegate ) : double

Performs mapping of a BRDF into N sets of cosine lobes coefficients WARNING: Takes hell of a time to compute !

IsValid ( double _BRDFValue ) : bool
LookupBRDF ( double _BRDF, double _ThetaIn, double _PhiIn, double _ThetaOut, double _PhiOut ) : double

Given a pair of incoming/outgoing angles, look up the BRDF.

Main ( string args ) : void
PhiDiff_index ( double _PhiDiff ) : int
ShowProgress ( double _Progress ) : void
ThetaDiff_index ( double _ThetaDiff ) : int
ThetaHalf_index ( double _ThetaHalf ) : int
half_diff_coords_to_std_coords ( double _ThetaHalf, double _PhiHalf, double _ThetaDiff, double _PhiDiff, System.Vector3 &_In, System.Vector3 &_Out ) : void
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

메소드 상세

BRDFMappingGlobalFunctionEval() 보호된 정적인 메소드

protected static BRDFMappingGlobalFunctionEval ( double _Coefficients, object _Params ) : double
_Coefficients double
_Params object
리턴 double

BRDFMappingGlobalFunctionGradientEval() 보호된 정적인 메소드

protected static BRDFMappingGlobalFunctionGradientEval ( double _Coefficients, double _Gradients, object _Params ) : void
_Coefficients double
_Gradients double
_Params object
리턴 void

BRDFMappingLocalFunctionEval() 보호된 정적인 메소드

protected static BRDFMappingLocalFunctionEval ( double _Coefficients, object _Params ) : double
_Coefficients double
_Params object
리턴 double

BRDFMappingLocalFunctionGradientEval() 보호된 정적인 메소드

protected static BRDFMappingLocalFunctionGradientEval ( double _Coefficients, double _Gradients, object _Params ) : void
_Coefficients double
_Gradients double
_Params object
리턴 void

ENSUREVALID() 보호된 정적인 메소드

protected static ENSUREVALID ( double _Coefficients ) : void
_Coefficients double
리턴 void

LoadBRDF() 보호된 정적인 메소드

Loads a MERL BRDF file
protected static LoadBRDF ( FileInfo _BRDFFile ) : double[][]
_BRDFFile System.IO.FileInfo
리턴 double[][]

SaveAllSlices() 보호된 정적인 메소드

protected static SaveAllSlices ( ) : void
리턴 void

dfpmin() 보호된 정적인 메소드

Performs BFGS function minimzation on a quadratic form function evaluated by the provided delegate
protected static dfpmin ( double _Coefficients, double _ConvergenceTolerance, int &_PerformedIterationsCount, BFGSFunctionEval _FunctionEval, BFGSFunctionGradientEval _FunctionGradientEval, object _Params ) : double
_Coefficients double The array of initial coefficients (indexed from 1!!) that will also contain the resulting coefficients when the routine has converged
_ConvergenceTolerance double The tolerance error to accept as the minimum of the function
_PerformedIterationsCount int The amount of iterations performed to reach the minimum
_FunctionEval BFGSFunctionEval The delegate used to evaluate the function to minimize
_FunctionGradientEval BFGSFunctionGradientEval The delegate used to evaluate the gradient of the function to minimize
_Params object Some user params passed to the evaluation functions
리턴 double

lnsrch() 보호된 정적인 메소드

protected static lnsrch ( int n, double xold, double fold, double g, double p, double x, double &f, double stpmax, int &check, BFGSFunctionEval _FunctionEval, object _Params ) : void
n int
xold double
fold double
g double
p double
x double
f double
stpmax double
check int
_FunctionEval BFGSFunctionEval
_Params object
리턴 void

프로퍼티 상세

ALF 보호되어 있는 정적으로 프로퍼티

protected static double ALF
리턴 double

EPS 보호되어 있는 정적으로 프로퍼티

protected static double EPS
리턴 double

ITMAX 보호되어 있는 정적으로 프로퍼티

protected static int ITMAX
리턴 int

STPMX 보호되어 있는 정적으로 프로퍼티

protected static double STPMX
리턴 double

TOLX 보호되어 있는 정적으로 프로퍼티

protected static double TOLX
리턴 double

TOLY 보호되어 있는 정적으로 프로퍼티

protected static double TOLY
리턴 double