Merge branch 'blender-v3.1-release'
This commit is contained in:
commit
9762dbe94e
|
@ -1379,7 +1379,7 @@ bool BKE_object_data_transfer_ex(struct Depsgraph *depsgraph,
|
|||
BLI_assert((ob_src != ob_dst) && (ob_src->type == OB_MESH) && (ob_dst->type == OB_MESH));
|
||||
|
||||
if (me_dst) {
|
||||
dirty_nors_dst = (me_dst->runtime.cd_dirty_vert & CD_NORMAL) != 0;
|
||||
dirty_nors_dst = BKE_mesh_vertex_normals_are_dirty(me_dst);
|
||||
/* Never create needed custom layers on passed destination mesh
|
||||
* (assumed to *not* be ob_dst->data, aka modifier case). */
|
||||
use_create = false;
|
||||
|
|
|
@ -454,6 +454,10 @@ static IDProperty *id_property_create_from_socket(const bNodeSocket &socket)
|
|||
ui_data->base.rna_subtype = PROP_COLOR;
|
||||
ui_data->default_array = (double *)MEM_mallocN(sizeof(double[4]), __func__);
|
||||
ui_data->default_array_len = 4;
|
||||
ui_data->min = 0.0;
|
||||
ui_data->max = FLT_MAX;
|
||||
ui_data->soft_min = 0.0;
|
||||
ui_data->soft_max = 1.0;
|
||||
for (const int i : IndexRange(4)) {
|
||||
ui_data->default_array[i] = double(value->value[i]);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ static int node_shader_gpu_ambient_occlusion(GPUMaterial *mat,
|
|||
|
||||
GPU_material_flag_set(mat, GPU_MATFLAG_DIFFUSE);
|
||||
|
||||
float inverted = node->custom2 ? 1.0f : 0.0f;
|
||||
float inverted = (node->custom2 & SHD_AO_INSIDE) ? 1.0f : 0.0f;
|
||||
float f_samples = divide_ceil_u(node->custom1, 4);
|
||||
|
||||
return GPU_stack_link(mat,
|
||||
|
|
|
@ -1166,10 +1166,8 @@ static PyObject *C_BVHTree_FromObject(PyObject *UNUSED(cls), PyObject *args, PyO
|
|||
tree = BLI_bvhtree_new((int)tris_len, epsilon, PY_BVH_TREE_TYPE_DEFAULT, PY_BVH_AXIS_DEFAULT);
|
||||
if (tree) {
|
||||
orig_index = MEM_mallocN(sizeof(*orig_index) * (size_t)tris_len, __func__);
|
||||
CustomData *pdata = &mesh->pdata;
|
||||
orig_normal = CustomData_get_layer(pdata, CD_NORMAL); /* can be NULL */
|
||||
if (orig_normal) {
|
||||
orig_normal = MEM_dupallocN(orig_normal);
|
||||
if (!BKE_mesh_poly_normals_are_dirty(mesh)) {
|
||||
orig_normal = MEM_dupallocN(BKE_mesh_poly_normals_ensure(mesh));
|
||||
}
|
||||
|
||||
for (i = 0; i < tris_len; i++, lt++) {
|
||||
|
|
|
@ -468,7 +468,9 @@ static TriTessFace *mesh_calc_tri_tessface(Mesh *me, bool tangent, Mesh *me_eval
|
|||
looptri = MEM_mallocN(sizeof(*looptri) * tottri, __func__);
|
||||
triangles = MEM_callocN(sizeof(TriTessFace) * tottri, __func__);
|
||||
|
||||
const float(*precomputed_normals)[3] = CustomData_get_layer(&me->pdata, CD_NORMAL);
|
||||
const float(*precomputed_normals)[3] = BKE_mesh_poly_normals_are_dirty(me) ?
|
||||
NULL :
|
||||
BKE_mesh_poly_normals_ensure(me);
|
||||
const bool calculate_normal = precomputed_normals ? false : true;
|
||||
|
||||
if (precomputed_normals != NULL) {
|
||||
|
|
|
@ -467,7 +467,6 @@ static void do_multires_bake(MultiresBakeRender *bkr,
|
|||
MPoly *mpoly = dm->getPolyArray(dm);
|
||||
MLoop *mloop = dm->getLoopArray(dm);
|
||||
MLoopUV *mloopuv = dm->getLoopDataArray(dm, CD_MLOOPUV);
|
||||
const float *precomputed_normals = dm->getPolyDataArray(dm, CD_NORMAL);
|
||||
float *pvtangent = NULL;
|
||||
|
||||
ListBase threads;
|
||||
|
@ -482,6 +481,7 @@ static void do_multires_bake(MultiresBakeRender *bkr,
|
|||
memcpy(temp_mesh->mpoly, dm->getPolyArray(dm), temp_mesh->totpoly * sizeof(*temp_mesh->mpoly));
|
||||
memcpy(temp_mesh->mloop, dm->getLoopArray(dm), temp_mesh->totloop * sizeof(*temp_mesh->mloop));
|
||||
const float(*vert_normals)[3] = BKE_mesh_vertex_normals_ensure(temp_mesh);
|
||||
const float(*poly_normals)[3] = BKE_mesh_poly_normals_ensure(temp_mesh);
|
||||
|
||||
if (require_tangent) {
|
||||
if (CustomData_get_layer_index(&dm->loopData, CD_TANGENT) == -1) {
|
||||
|
@ -497,7 +497,7 @@ static void do_multires_bake(MultiresBakeRender *bkr,
|
|||
NULL,
|
||||
0,
|
||||
vert_normals,
|
||||
(const float(*)[3])CustomData_get_layer(&dm->polyData, CD_NORMAL),
|
||||
poly_normals,
|
||||
(const float(*)[3])dm->getLoopDataArray(dm, CD_NORMAL),
|
||||
(const float(*)[3])dm->getVertDataArray(dm, CD_ORCO), /* may be nullptr */
|
||||
/* result */
|
||||
|
@ -542,7 +542,7 @@ static void do_multires_bake(MultiresBakeRender *bkr,
|
|||
handle->data.mlooptri = mlooptri;
|
||||
handle->data.mloop = mloop;
|
||||
handle->data.pvtangent = pvtangent;
|
||||
handle->data.precomputed_normals = precomputed_normals; /* don't strictly need this */
|
||||
handle->data.precomputed_normals = (float *)poly_normals; /* don't strictly need this */
|
||||
handle->data.w = ibuf->x;
|
||||
handle->data.h = ibuf->y;
|
||||
handle->data.lores_dm = dm;
|
||||
|
|
Loading…
Reference in New Issue