Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/bake_api.c
| Show First 20 Lines • Show All 482 Lines • ▼ Show 20 Lines | static void bake_differentials(BakeDataZSpan *bd, const float *uv1, const float *uv2, const float *uv3) | ||||
| else { | else { | ||||
| bd->du_dx = bd->du_dy = 0.0f; | bd->du_dx = bd->du_dy = 0.0f; | ||||
| bd->dv_dx = bd->dv_dy = 0.0f; | bd->dv_dx = bd->dv_dy = 0.0f; | ||||
| } | } | ||||
| } | } | ||||
| void RE_bake_pixels_populate( | void RE_bake_pixels_populate( | ||||
| Mesh *me, BakePixel pixel_array[], | Mesh *me, BakePixel pixel_array[], | ||||
| const int num_pixels, const BakeImages *bake_images) | const int num_pixels, const BakeImages *bake_images, const char *uv_layer) | ||||
| { | { | ||||
| BakeDataZSpan bd; | BakeDataZSpan bd; | ||||
| int i, a; | int i, a; | ||||
| int p_id; | int p_id; | ||||
| MTFace *mtface; | MTFace *mtface; | ||||
| MFace *mface; | MFace *mface; | ||||
| /* we can't bake in edit mode */ | /* we can't bake in edit mode */ | ||||
| if (me->edit_btmesh) | if (me->edit_btmesh) | ||||
| return; | return; | ||||
| bd.pixel_array = pixel_array; | bd.pixel_array = pixel_array; | ||||
| bd.zspan = MEM_callocN(sizeof(ZSpan) * bake_images->size, "bake zspan"); | bd.zspan = MEM_callocN(sizeof(ZSpan) * bake_images->size, "bake zspan"); | ||||
| /* initialize all pixel arrays so we know which ones are 'blank' */ | /* initialize all pixel arrays so we know which ones are 'blank' */ | ||||
| for (i = 0; i < num_pixels; i++) { | for (i = 0; i < num_pixels; i++) { | ||||
| pixel_array[i].primitive_id = -1; | pixel_array[i].primitive_id = -1; | ||||
| } | } | ||||
| for (i = 0; i < bake_images->size; i++) { | for (i = 0; i < bake_images->size; i++) { | ||||
| zbuf_alloc_span(&bd.zspan[i], bake_images->data[i].width, bake_images->data[i].height, R.clipcrop); | zbuf_alloc_span(&bd.zspan[i], bake_images->data[i].width, bake_images->data[i].height, R.clipcrop); | ||||
| } | } | ||||
| if (uv_layer == NULL) | |||||
| mtface = CustomData_get_layer(&me->fdata, CD_MTFACE); | mtface = CustomData_get_layer(&me->fdata, CD_MTFACE); | ||||
| else { | |||||
| int uv_id = CustomData_get_named_layer(&me->fdata, CD_MTFACE, uv_layer); | |||||
| mtface = CustomData_get_layer_n(&me->fdata, CD_MTFACE, uv_id); | |||||
| } | |||||
campbellbarton: *picky*, preference for braces around both cases. | |||||
| mface = CustomData_get_layer(&me->fdata, CD_MFACE); | mface = CustomData_get_layer(&me->fdata, CD_MFACE); | ||||
| if (mtface == NULL) | if (mtface == NULL) | ||||
| return; | return; | ||||
| p_id = -1; | p_id = -1; | ||||
| for (i = 0; i < me->totface; i++) { | for (i = 0; i < me->totface; i++) { | ||||
| float vec[4][2]; | float vec[4][2]; | ||||
| ▲ Show 20 Lines • Show All 359 Lines • Show Last 20 Lines | |||||
*picky*, preference for braces around both cases.