C# 클래스 TestMSBSDF.LobeModel

상속: WMath.BFGS.Model
파일 보기 프로젝트 열기: Patapom/GodComplex 1 사용 예제들

공개 메소드들

메소드 설명
Constrain ( double _Parameters ) : void
Eval ( double _newParameters ) : double
HistogramTexture2Array ( Texture2D _texHistogram_CPU, int _scatteringOrder ) : ].double[

Reads back a lobe texture histogram into an array

InitLobeData ( LOBE_TYPE _lobeType, float3 _incomingDirection, double _theta, double _roughness, double _scale, double _flatteningFactor, double _maskingImportance, double _oversizeFactor, bool _fitUsingCenterOfMass ) : void

Initialize the lobe model parameters

InitTargetData ( double _histogramData ) : void

Initializes the array of data we need to fit with the lobe model Computes the Center of Mass of the lobe

LobeModel ( ) : System
SetConstraint ( int _parameterIndex, double _min, double _max ) : void

Sets the contraints for each parameter

비공개 메소드들

메소드 설명
BeckmannG1 ( double _cosTheta_V, double _roughness ) : double
BeckmannNDF ( double _cosTheta_M, double _roughness ) : double
EvalAnisotropicFlattening ( float _Vx, float _Vy, float _Vz, double _scale, double _invScale ) : double
EvalIsotropicFlattening ( float _Vx, float _Vy, float _Vz, double _scale, double _invScale ) : double
GGXG1 ( double _cosTheta_V, double _roughness ) : double
GGXNDF ( double _cosTheta_M, double _roughness ) : double
Masking ( double _cosTheta_V, double _roughness ) : double
NDF ( double _cosTheta_M, double _roughness ) : double
PhongG1 ( double _cosTheta_V, double _roughness ) : double
PhongNDF ( double _cosTheta_M, double _roughness ) : double
Roughness2PhongExponent ( double _roughness ) : double

메소드 상세

Constrain() 공개 메소드

public Constrain ( double _Parameters ) : void
_Parameters double
리턴 void

Eval() 공개 메소드

public Eval ( double _newParameters ) : double
_newParameters double
리턴 double

HistogramTexture2Array() 공개 정적인 메소드

Reads back a lobe texture histogram into an array
public static HistogramTexture2Array ( Texture2D _texHistogram_CPU, int _scatteringOrder ) : ].double[
_texHistogram_CPU Texture2D
_scatteringOrder int
리턴 ].double[

InitLobeData() 공개 메소드

Initialize the lobe model parameters
public InitLobeData ( LOBE_TYPE _lobeType, float3 _incomingDirection, double _theta, double _roughness, double _scale, double _flatteningFactor, double _maskingImportance, double _oversizeFactor, bool _fitUsingCenterOfMass ) : void
_lobeType LOBE_TYPE Type of lobe to fit
_incomingDirection float3 Incoming light direction, pointing TOWARD the surface (Z-up)
_theta double Initial lobe theta angle
_roughness double Initial lobe roughness
_scale double Initial lobe scale
_flatteningFactor double Initial lobe flattening
_maskingImportance double
_oversizeFactor double Simulation oversize factor. A value of 1 makes the lobe fit exactly, a value higher than one will make the fit lobe smaller than the simulated data, a value lower than one will make the lob larger than the simulated data
_fitUsingCenterOfMass bool If true, the fitting distance is measured against a sphere centered on the Center of Mass rather than the (0,0,0) origin. Precision is usually better when using this option.
리턴 void

InitTargetData() 공개 메소드

Initializes the array of data we need to fit with the lobe model Computes the Center of Mass of the lobe
public InitTargetData ( double _histogramData ) : void
_histogramData double
리턴 void

LobeModel() 공개 메소드

public LobeModel ( ) : System
리턴 System

SetConstraint() 공개 메소드

Sets the contraints for each parameter
public SetConstraint ( int _parameterIndex, double _min, double _max ) : void
_parameterIndex int
_min double
_max double
리턴 void