Cycles: antialias normal baking if the mesh has a bump map.
This commit is contained in:
@@ -172,17 +172,6 @@ ccl_device_inline void compute_light_pass(KernelGlobals *kg,
|
||||
path_radiance_accum_sample(L, &L_sample);
|
||||
}
|
||||
|
||||
ccl_device bool is_aa_pass(ShaderEvalType type)
|
||||
{
|
||||
switch(type) {
|
||||
case SHADER_EVAL_UV:
|
||||
case SHADER_EVAL_NORMAL:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* this helps with AA but it's not the real solution as it does not AA the geometry
|
||||
* but it's better than nothing, thus committed */
|
||||
ccl_device_inline float bake_clamp_mirror_repeat(float u, float max)
|
||||
@@ -485,10 +474,10 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, ccl_global uint4 *input,
|
||||
}
|
||||
|
||||
/* write output */
|
||||
const float output_fac = is_aa_pass(type)? 1.0f/num_samples: 1.0f;
|
||||
const float output_fac = 1.0f/num_samples;
|
||||
const float4 scaled_result = make_float4(out.x, out.y, out.z, 1.0f) * output_fac;
|
||||
|
||||
output[i] = (sample == 0)? scaled_result: output[i] + scaled_result;
|
||||
output[i] = (sample == 0)? scaled_result: output[i] + scaled_result;
|
||||
}
|
||||
|
||||
#endif /* __BAKING__ */
|
||||
|
Reference in New Issue
Block a user