|
|
|
|
|
|
bsdfData.fresnel0 = 0.04; /* 0.028 ? */ |
|
|
|
bsdfData.subsurfaceProfile = surfaceData.subsurfaceProfile; |
|
|
|
// Make the Std. Dev. of 1 correspond to the effective radius of 1 cm (three-sigma rule). |
|
|
|
bsdfData.subsurfaceRadius = SSS_UNIT_CONVERSION * surfaceData.subsurfaceRadius; |
|
|
|
bsdfData.subsurfaceRadius = SSS_UNIT_CONVERSION * surfaceData.subsurfaceRadius + 0.0001; |
|
|
|
bsdfData.thickness = SSS_UNIT_CONVERSION * (_ThicknessRemaps[bsdfData.subsurfaceProfile][0] + |
|
|
|
_ThicknessRemaps[bsdfData.subsurfaceProfile][1] * surfaceData.thickness); |
|
|
|
bsdfData.enableTransmission = IsBitSet(_TransmissionFlags, bsdfData.subsurfaceProfile); |
|
|
|
|
|
|
bsdfData.fresnel0 = 0.04; /* 0.028 ? */ |
|
|
|
bsdfData.subsurfaceProfile = (SSS_N_PROFILES - 1) * inGBuffer2.a; |
|
|
|
// Make the Std. Dev. of 1 correspond to the effective radius of 1 cm (three-sigma rule). |
|
|
|
bsdfData.subsurfaceRadius = SSS_UNIT_CONVERSION * inGBuffer2.r; |
|
|
|
bsdfData.subsurfaceRadius = SSS_UNIT_CONVERSION * inGBuffer2.r + 0.0001; |
|
|
|
bsdfData.thickness = SSS_UNIT_CONVERSION * (_ThicknessRemaps[bsdfData.subsurfaceProfile][0] + |
|
|
|
_ThicknessRemaps[bsdfData.subsurfaceProfile][1] * inGBuffer2.g); |
|
|
|
bsdfData.enableTransmission = IsBitSet(_TransmissionFlags, bsdfData.subsurfaceProfile); |
|
|
|