Merge branch 'blender-v3.0-release'

This commit is contained in:
Brecht Van Lommel 2021-11-05 20:40:02 +01:00
commit f0bc7f3261
Notes: blender-bot 2023-02-13 17:17:27 +01:00
Referenced by issue #92606, Geometry nodes output gets synced to cycles wrong.
2 changed files with 10 additions and 5 deletions

View File

@ -353,8 +353,8 @@ ccl_device bool light_sample_from_distant_ray(KernelGlobals kg,
/* compute pdf */
float invarea = klight->distant.invarea;
ls->pdf = invarea / (costheta * costheta * costheta);
ls->pdf *= kernel_data.integrator.pdf_lights;
ls->eval_fac = ls->pdf;
ls->pdf *= kernel_data.integrator.pdf_lights;
return true;
}

View File

@ -832,16 +832,21 @@ static bool get_object_attribute(const OSLGlobals::Attribute &attr,
{
if (attr.type == TypeDesc::TypePoint || attr.type == TypeDesc::TypeVector ||
attr.type == TypeDesc::TypeNormal || attr.type == TypeDesc::TypeColor) {
return set_attribute_float3(*(float3 *)attr.value.data(), type, derivatives, val);
const float *data = (const float *)attr.value.data();
return set_attribute_float3(make_float3(data[0], data[1], data[2]), type, derivatives, val);
}
else if (attr.type == TypeFloat2) {
return set_attribute_float2(*(float2 *)attr.value.data(), type, derivatives, val);
const float *data = (const float *)attr.value.data();
return set_attribute_float2(make_float2(data[0], data[1]), type, derivatives, val);
}
else if (attr.type == TypeDesc::TypeFloat) {
return set_attribute_float(*(float *)attr.value.data(), type, derivatives, val);
const float *data = (const float *)attr.value.data();
return set_attribute_float(data[0], type, derivatives, val);
}
else if (attr.type == TypeRGBA || attr.type == TypeDesc::TypeFloat4) {
return set_attribute_float4(*(float4 *)attr.value.data(), type, derivatives, val);
const float *data = (const float *)attr.value.data();
return set_attribute_float4(
make_float4(data[0], data[1], data[2], data[3]), type, derivatives, val);
}
else if (attr.type == type) {
size_t datasize = attr.value.datasize();