[Bf-blender-cvs] [f987d9b7583] master: Merge branch 'blender-v3.3-release'

Joseph Eagar noreply at git.blender.org
Wed Aug 31 17:33:32 CEST 2022


Commit: f987d9b7583c1ce45c6c19eec054d023e12a0f57
Author: Joseph Eagar
Date:   Wed Aug 31 08:33:23 2022 -0700
Branches: master
https://developer.blender.org/rBf987d9b7583c1ce45c6c19eec054d023e12a0f57

Merge branch 'blender-v3.3-release'

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/customdata.cc
index 51edf8308c3,1c7b78fd902..9a9128387b1
--- a/source/blender/blenkernel/intern/customdata.cc
+++ b/source/blender/blenkernel/intern/customdata.cc
@@@ -1688,16 -1652,7 +1678,16 @@@ static const LayerTypeInfo LAYERTYPEINF
       nullptr,
       nullptr,
       nullptr,
 -     nullptr},
 +     layerMaxNum_tface},
 +    /* 6: CD_MCOL */
 +    /* 4 MCol structs per face */
 +    {sizeof(MCol[4]),  "MCol",         4,
 +     N_("Col"),        nullptr,        nullptr,
 +     layerInterp_mcol, layerSwap_mcol, layerDefault_mcol,
 +     nullptr,          nullptr,        nullptr,
 +     nullptr,          nullptr,        nullptr,
 +     nullptr,          nullptr,        nullptr,
-      nullptr,          nullptr,        layerMaxNum_mloopcol},
++     nullptr,          nullptr,        nullptr},
      /* 7: CD_ORIGINDEX */
      {sizeof(int), "", 0, nullptr, nullptr, nullptr, nullptr, nullptr, layerDefault_origindex},
      /* 8: CD_NORMAL */
diff --cc source/blender/modifiers/intern/MOD_ocean.c
index c84d1b56cec,b596d493453..fb28c08d60b
--- a/source/blender/modifiers/intern/MOD_ocean.c
+++ b/source/blender/modifiers/intern/MOD_ocean.c
@@@ -373,117 -373,111 +373,114 @@@ static Mesh *doOcean(ModifierData *md, 
    /* add vcols before displacement - allows lookup based on position */
  
    if (omd->flag & MOD_OCEAN_GENERATE_FOAM) {
-     if (CustomData_number_of_layers(&result->ldata, CD_PROP_BYTE_COLOR) < MAX_MCOL) {
-       const int polys_num = result->totpoly;
-       const int loops_num = result->totloop;
-       MLoop *mloops = result->mloop;
-       MLoopCol *mloopcols = CustomData_add_layer_named(
-           &result->ldata, CD_PROP_BYTE_COLOR, CD_SET_DEFAULT, NULL, loops_num, omd->foamlayername);
- 
-       MLoopCol *mloopcols_spray = NULL;
-       if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
-         mloopcols_spray = CustomData_add_layer_named(&result->ldata,
-                                                      CD_PROP_BYTE_COLOR,
-                                                      CD_SET_DEFAULT,
-                                                      NULL,
-                                                      loops_num,
-                                                      omd->spraylayername);
-       }
+     const int polys_num = result->totpoly;
+     const int loops_num = result->totloop;
+     MLoop *mloops = result->mloop;
+     MLoopCol *mloopcols = CustomData_add_layer_named(
 -        &result->ldata, CD_PROP_BYTE_COLOR, CD_CALLOC, NULL, loops_num, omd->foamlayername);
++        &result->ldata, CD_PROP_BYTE_COLOR, CD_SET_DEFAULT, NULL, loops_num, omd->foamlayername);
+ 
+     MLoopCol *mloopcols_spray = NULL;
+     if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
 -      mloopcols_spray = CustomData_add_layer_named(
 -          &result->ldata, CD_PROP_BYTE_COLOR, CD_CALLOC, NULL, loops_num, omd->spraylayername);
++      mloopcols_spray = CustomData_add_layer_named(&result->ldata,
++                                                   CD_PROP_BYTE_COLOR,
++                                                   CD_SET_DEFAULT,
++                                                   NULL,
++                                                   loops_num,
++                                                   omd->spraylayername);
+     }
  
-       if (mloopcols) { /* unlikely to fail */
-         MPoly *mpolys = result->mpoly;
-         MPoly *mp;
+     if (mloopcols) { /* unlikely to fail */
+       MPoly *mpolys = result->mpoly;
+       MPoly *mp;
  
-         for (i = 0, mp = mpolys; i < polys_num; i++, mp++) {
-           MLoop *ml = &mloops[mp->loopstart];
-           MLoopCol *mlcol = &mloopcols[mp->loopstart];
+       for (i = 0, mp = mpolys; i < polys_num; i++, mp++) {
+         MLoop *ml = &mloops[mp->loopstart];
+         MLoopCol *mlcol = &mloopcols[mp->loopstart];
  
-           MLoopCol *mlcolspray = NULL;
-           if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
-             mlcolspray = &mloopcols_spray[mp->loopstart];
+         MLoopCol *mlcolspray = NULL;
+         if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
+           mlcolspray = &mloopcols_spray[mp->loopstart];
+         }
+ 
+         for (j = mp->totloop; j--; ml++, mlcol++) {
+           const float *vco = mverts[ml->v].co;
+           const float u = OCEAN_CO(size_co_inv, vco[0]);
+           const float v = OCEAN_CO(size_co_inv, vco[1]);
+           float foam;
+ 
+           if (omd->oceancache && omd->cached == true) {
+             BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra_for_cache, u, v);
+             foam = ocr.foam;
+             CLAMP(foam, 0.0f, 1.0f);
+           }
+           else {
+             BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
+             foam = BKE_ocean_jminus_to_foam(ocr.Jminus, omd->foam_coverage);
            }
  
-           for (j = mp->totloop; j--; ml++, mlcol++) {
-             const float *vco = mverts[ml->v].co;
-             const float u = OCEAN_CO(size_co_inv, vco[0]);
-             const float v = OCEAN_CO(size_co_inv, vco[1]);
-             float foam;
+           mlcol->r = mlcol->g = mlcol->b = (char)(foam * 255);
+           /* This needs to be set (render engine uses) */
+           mlcol->a = 255;
  
-             if (omd->oceancache && omd->cached == true) {
-               BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra_for_cache, u, v);
-               foam = ocr.foam;
-               CLAMP(foam, 0.0f, 1.0f);
+           if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
+             if (omd->flag & MOD_OCEAN_INVERT_SPRAY) {
+               mlcolspray->r = ocr.Eminus[0] * 255;
              }
              else {
-               BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
-               foam = BKE_ocean_jminus_to_foam(ocr.Jminus, omd->foam_coverage);
+               mlcolspray->r = ocr.Eplus[0] * 255;
              }
- 
-             mlcol->r = mlcol->g = mlcol->b = (char)(foam * 255);
-             /* This needs to be set (render engine uses) */
-             mlcol->a = 255;
- 
-             if (omd->flag & MOD_OCEAN_GENERATE_SPRAY) {
-               if (omd->flag & MOD_OCEAN_INVERT_SPRAY) {
-                 mlcolspray->r = ocr.Eminus[0] * 255;
-               }
-               else {
-                 mlcolspray->r = ocr.Eplus[0] * 255;
-               }
-               mlcolspray->g = 0;
-               if (omd->flag & MOD_OCEAN_INVERT_SPRAY) {
-                 mlcolspray->b = ocr.Eminus[2] * 255;
-               }
-               else {
-                 mlcolspray->b = ocr.Eplus[2] * 255;
-               }
-               mlcolspray->a = 255;
+             mlcolspray->g = 0;
+             if (omd->flag & MOD_OCEAN_INVERT_SPRAY) {
+               mlcolspray->b = ocr.Eminus[2] * 255;
+             }
+             else {
+               mlcolspray->b = ocr.Eplus[2] * 255;
              }
+             mlcolspray->a = 255;
            }
          }
        }
      }
--  }
  
--  /* displace the geometry */
++    /* displace the geometry */
  
--  /* NOTE: tried to parallelized that one and previous foam loop,
--   * but gives 20% slower results... odd. */
--  {
--    const int verts_num = result->totvert;
++    /* NOTE: tried to parallelized that one and previous foam loop,
++     * but gives 20% slower results... odd. */
++    {
++      const int verts_num = result->totvert;
  
--    for (i = 0; i < verts_num; i++) {
--      float *vco = mverts[i].co;
--      const float u = OCEAN_CO(size_co_inv, vco[0]);
--      const float v = OCEAN_CO(size_co_inv, vco[1]);
++      for (i = 0; i < verts_num; i++) {
++        float *vco = mverts[i].co;
++        const float u = OCEAN_CO(size_co_inv, vco[0]);
++        const float v = OCEAN_CO(size_co_inv, vco[1]);
  
--      if (omd->oceancache && omd->cached == true) {
--        BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra_for_cache, u, v);
--      }
--      else {
--        BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
--      }
++        if (omd->oceancache && omd->cached == true) {
++          BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra_for_cache, u, v);
++        }
++        else {
++          BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
++        }
  
--      vco[2] += ocr.disp[1];
++        vco[2] += ocr.disp[1];
  
--      if (omd->chop_amount > 0.0f) {
--        vco[0] += ocr.disp[0];
--        vco[1] += ocr.disp[2];
++        if (omd->chop_amount > 0.0f) {
++          vco[0] += ocr.disp[0];
++          vco[1] += ocr.disp[2];
++        }
        }
      }
--  }
  
--  BKE_mesh_tag_coords_changed(mesh);
++    BKE_mesh_tag_coords_changed(mesh);
  
--  if (allocated_ocean) {
--    BKE_ocean_free(omd->ocean);
--    omd->ocean = NULL;
--  }
++    if (allocated_ocean) {
++      BKE_ocean_free(omd->ocean);
++      omd->ocean = NULL;
++    }
  
  #  undef OCEAN_CO
  
--  return result;
--}
++    return result;
++  }
  #else  /* WITH_OCEANSIM */
  static Mesh *doOcean(ModifierData *UNUSED(md), const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
  {
@@@ -491,249 -485,249 +488,249 @@@
  }
  #endif /* WITH_OCEANSIM */
  
--static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
--{
--  return doOcean(md, ctx, mesh);
--}
--// #define WITH_OCEANSIM
--static void panel_draw(const bContext *UNUSED(C), Panel *panel)
--{
--  uiLayout *layout = panel->layout;
++  static Mesh *modifyMesh(ModifierData * md, const ModifierEvalContext *ctx, Mesh *mesh)
++  {
++    return doOcean(md, ctx, mesh);
++  }
++  // #define WITH_OCEANSIM
++  static void panel_draw(const bContext *UNUSED(C), Panel *panel)
++  {
++    uiLayout *layout = panel->layout;
  #ifdef WITH_OCEANSIM
--  uiLayout *col, *sub;
++    uiLayout *col, *sub;
  
--  PointerRNA ob_ptr;
--  PointerRNA *ptr = modifier_panel_get_property_pointers(panel, &ob_ptr);
++    PointerRNA ob_ptr;
++    PointerRNA *ptr = modifier_panel_get_property_pointers(panel, &ob_ptr);
  
--  uiLayoutSetPropSep(layout, true);
++    uiLayoutSetPropSep(layout, true);
  
--  col = uiLayoutColumn(layout, false);
--  uiItemR(col, ptr, "geometry_mode", 0, NULL, ICON_NONE);
--  if (RNA_enum_get(ptr, "geometry_mode") == MOD_OCEAN_GEOM_GENERATE) {
--    sub = uiLayoutColumn(col, t

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list