Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/texture_pointdensity.c
| Show First 20 Lines • Show All 169 Lines • ▼ Show 20 Lines | static void pointdensity_cache_psys( | ||||
| sim.depsgraph = depsgraph; | sim.depsgraph = depsgraph; | ||||
| sim.scene = scene; | sim.scene = scene; | ||||
| sim.ob = ob; | sim.ob = ob; | ||||
| sim.psys = psys; | sim.psys = psys; | ||||
| sim.psmd = psys_get_modifier(ob, psys); | sim.psmd = psys_get_modifier(ob, psys); | ||||
| /* in case ob->imat isn't up-to-date */ | /* in case ob->imat isn't up-to-date */ | ||||
| invert_m4_m4(ob->imat, ob->obmat); | invert_m4_m4(ob->imat, ob->object_to_world); | ||||
| total_particles = psys->totpart + psys->totchild; | total_particles = psys->totpart + psys->totchild; | ||||
| psys->lattice_deform_data = psys_create_lattice_deform_data(&sim); | psys->lattice_deform_data = psys_create_lattice_deform_data(&sim); | ||||
| pd->point_tree = BLI_bvhtree_new(total_particles, 0.0, 4, 6); | pd->point_tree = BLI_bvhtree_new(total_particles, 0.0, 4, 6); | ||||
| pd->totpoints = total_particles; | pd->totpoints = total_particles; | ||||
| alloc_point_data(pd); | alloc_point_data(pd); | ||||
| point_data_pointers(pd, &data_vel, &data_life, NULL); | point_data_pointers(pd, &data_vel, &data_life, NULL); | ||||
| ▲ Show 20 Lines • Show All 207 Lines • ▼ Show 20 Lines | for (i = 0, mv = mvert; i < pd->totpoints; i++, mv++) { | ||||
| float co[3]; | float co[3]; | ||||
| copy_v3_v3(co, mv->co); | copy_v3_v3(co, mv->co); | ||||
| switch (pd->ob_cache_space) { | switch (pd->ob_cache_space) { | ||||
| case TEX_PD_OBJECTSPACE: | case TEX_PD_OBJECTSPACE: | ||||
| break; | break; | ||||
| case TEX_PD_OBJECTLOC: | case TEX_PD_OBJECTLOC: | ||||
| mul_m4_v3(ob->obmat, co); | mul_m4_v3(ob->object_to_world, co); | ||||
| sub_v3_v3(co, ob->loc); | sub_v3_v3(co, ob->loc); | ||||
| break; | break; | ||||
| case TEX_PD_WORLDSPACE: | case TEX_PD_WORLDSPACE: | ||||
| default: | default: | ||||
| mul_m4_v3(ob->obmat, co); | mul_m4_v3(ob->object_to_world, co); | ||||
| break; | break; | ||||
| } | } | ||||
| BLI_bvhtree_insert(pd->point_tree, i, co, 1); | BLI_bvhtree_insert(pd->point_tree, i, co, 1); | ||||
| } | } | ||||
| switch (pd->ob_color_source) { | switch (pd->ob_color_source) { | ||||
| case TEX_PD_COLOR_VERTCOL: | case TEX_PD_COLOR_VERTCOL: | ||||
| ▲ Show 20 Lines • Show All 357 Lines • ▼ Show 20 Lines | static void particle_system_minmax(Depsgraph *depsgraph, | ||||
| unit_m4(mat); | unit_m4(mat); | ||||
| sim.depsgraph = depsgraph; | sim.depsgraph = depsgraph; | ||||
| sim.scene = scene; | sim.scene = scene; | ||||
| sim.ob = object; | sim.ob = object; | ||||
| sim.psys = psys; | sim.psys = psys; | ||||
| sim.psmd = psys_get_modifier(object, psys); | sim.psmd = psys_get_modifier(object, psys); | ||||
| invert_m4_m4(imat, object->obmat); | invert_m4_m4(imat, object->object_to_world); | ||||
| total_particles = psys->totpart + psys->totchild; | total_particles = psys->totpart + psys->totchild; | ||||
| psys->lattice_deform_data = psys_create_lattice_deform_data(&sim); | psys->lattice_deform_data = psys_create_lattice_deform_data(&sim); | ||||
| for (i = 0, pa = psys->particles; i < total_particles; i++, pa++) { | for (i = 0, pa = psys->particles; i < total_particles; i++, pa++) { | ||||
| float co_object[3], co_min[3], co_max[3]; | float co_object[3], co_min[3], co_max[3]; | ||||
| ParticleKey state; | ParticleKey state; | ||||
| state.time = cfra; | state.time = cfra; | ||||
| if (!psys_get_particle_state(&sim, i, &state, 0)) { | if (!psys_get_particle_state(&sim, i, &state, 0)) { | ||||
| ▲ Show 20 Lines • Show All 166 Lines • Show Last 20 Lines | |||||