Merge branch 'master' into blender2.8

This commit is contained in:
Sergey Sharybin 2017-10-18 14:39:22 +02:00
commit 6a17d52f06
4 changed files with 13 additions and 1 deletions

View File

@ -129,7 +129,7 @@ void BVHBuild::add_reference_triangles(BoundBox& root, BoundBox& center, Mesh *m
if(attr_mP == NULL) {
BoundBox bounds = BoundBox::empty;
t.bounds_grow(verts, bounds);
if(bounds.valid()) {
if(bounds.valid() && t.valid(verts)) {
references.push_back(BVHReference(bounds,
j,
i,

View File

@ -345,6 +345,9 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen
offset++;
Mesh::Triangle t = mesh->get_triangle(i);
if(!t.valid(&mesh->verts[0])) {
continue;
}
float3 p1 = mesh->verts[t.v[0]];
float3 p2 = mesh->verts[t.v[1]];
float3 p3 = mesh->verts[t.v[2]];

View File

@ -120,6 +120,13 @@ float3 Mesh::Triangle::compute_normal(const float3 *verts) const
return norm / normlen;
}
bool Mesh::Triangle::valid(const float3 *verts) const
{
return isfinite3_safe(verts[v[0]]) &&
isfinite3_safe(verts[v[1]]) &&
isfinite3_safe(verts[v[2]]);
}
/* Curve */
void Mesh::Curve::bounds_grow(const int k, const float3 *curve_keys, const float *curve_radius, BoundBox& bounds) const

View File

@ -72,6 +72,8 @@ public:
float3 r_verts[3]) const;
float3 compute_normal(const float3 *verts) const;
bool valid(const float3 *verts) const;
};
Triangle get_triangle(size_t i) const