Fix T59529: Auto smooth not working
This commit is contained in:
parent
6ccf961915
commit
8839152abf
Notes:
blender-bot
2024-01-16 18:05:25 +01:00
Referenced by issue #59588, Disable render keyframes not working Referenced by issue #59580, Can't select mesh components in see-through mode. Referenced by issue #59571, autosmooth problem Referenced by issue #59557, crashed after change delete and choise another material Referenced by issue #59529, Auto Smooth Angle Ignored in Object Mode Referenced by issue #58503, Low Performance with the Subdivision Modifier
|
@ -3427,13 +3427,13 @@ static void mesh_create_loop_pos_and_nor(MeshRenderData *rdata, GPUVertBuf *vbo,
|
|||
|
||||
for (int a = 0; a < poly_len; a++, mpoly++) {
|
||||
const MLoop *mloop = rdata->mloop + mpoly->loopstart;
|
||||
const float *lnors = (rdata->loop_normals) ? rdata->loop_normals[mpoly->loopstart] : NULL;
|
||||
const float (*lnors)[3] = (rdata->loop_normals) ? &rdata->loop_normals[mpoly->loopstart] : NULL;
|
||||
const GPUPackedNormal *fnor = (mpoly->flag & ME_SMOOTH) ? NULL : &rdata->poly_normals_pack[a];
|
||||
for (int b = 0; b < mpoly->totloop; b++, mloop++) {
|
||||
copy_v3_v3(GPU_vertbuf_raw_step(&pos_step), mvert[mloop->v].co);
|
||||
GPUPackedNormal *pnor = (GPUPackedNormal *)GPU_vertbuf_raw_step(&nor_step);
|
||||
if (lnors) {
|
||||
*pnor = GPU_normal_convert_i10_v3(lnors);
|
||||
*pnor = GPU_normal_convert_i10_v3(lnors[b]);
|
||||
}
|
||||
else if (fnor) {
|
||||
*pnor = *fnor;
|
||||
|
@ -3461,7 +3461,7 @@ static void mesh_create_loop_pos_and_nor(MeshRenderData *rdata, GPUVertBuf *vbo,
|
|||
|
||||
for (int a = 0; a < poly_len; a++, mpoly++) {
|
||||
const MLoop *mloop = rdata->mloop + mpoly->loopstart;
|
||||
const float *lnors = (rdata->loop_normals) ? rdata->loop_normals[mpoly->loopstart] : NULL;
|
||||
const float (*lnors)[3] = (rdata->loop_normals) ? &rdata->loop_normals[mpoly->loopstart] : NULL;
|
||||
const GPUPackedNormal *fnor = (mpoly->flag & ME_SMOOTH) ? NULL : &rdata->poly_normals_pack[a];
|
||||
if (p_origindex[a] == ORIGINDEX_NONE) {
|
||||
continue;
|
||||
|
@ -3470,7 +3470,7 @@ static void mesh_create_loop_pos_and_nor(MeshRenderData *rdata, GPUVertBuf *vbo,
|
|||
copy_v3_v3(GPU_vertbuf_raw_step(&pos_step), mvert[mloop->v].co);
|
||||
GPUPackedNormal *pnor = (GPUPackedNormal *)GPU_vertbuf_raw_step(&nor_step);
|
||||
if (lnors) {
|
||||
*pnor = GPU_normal_convert_i10_v3(lnors);
|
||||
*pnor = GPU_normal_convert_i10_v3(lnors[b]);
|
||||
}
|
||||
else if (fnor) {
|
||||
*pnor = *fnor;
|
||||
|
|
Loading…
Reference in New Issue