remove unnecessary switch() statement from ocean sim loop.
This commit is contained in:
@@ -404,7 +404,8 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
|
|||||||
if (omd->cached == TRUE) {
|
if (omd->cached == TRUE) {
|
||||||
if (!omd->oceancache) init_cache_data(ob, omd);
|
if (!omd->oceancache) init_cache_data(ob, omd);
|
||||||
BKE_simulate_ocean_cache(omd->oceancache, md->scene->r.cfra);
|
BKE_simulate_ocean_cache(omd->oceancache, md->scene->r.cfra);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
simulate_ocean_modifier(omd);
|
simulate_ocean_modifier(omd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,35 +442,18 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
|
|||||||
mf = dm->getFaceArray(dm);
|
mf = dm->getFaceArray(dm);
|
||||||
|
|
||||||
for (i = 0; i < num_faces; i++, mf++) {
|
for (i = 0; i < num_faces; i++, mf++) {
|
||||||
for (j=0; j<4; j++) {
|
j= mf->v4 ? 3 : 2;
|
||||||
|
do {
|
||||||
if (j == 3 && !mf->v4) continue;
|
const float *co= mv[*(&mf->v1 + j)].co;
|
||||||
|
u = ocean_co(omd, co[0]);
|
||||||
switch(j) {
|
v = ocean_co(omd, co[1]);
|
||||||
case 0:
|
|
||||||
u = ocean_co(omd, mv[mf->v1].co[0]);
|
|
||||||
v = ocean_co(omd, mv[mf->v1].co[1]);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
u = ocean_co(omd, mv[mf->v2].co[0]);
|
|
||||||
v = ocean_co(omd, mv[mf->v2].co[1]);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
u = ocean_co(omd, mv[mf->v3].co[0]);
|
|
||||||
v = ocean_co(omd, mv[mf->v3].co[1]);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
u = ocean_co(omd, mv[mf->v4].co[0]);
|
|
||||||
v = ocean_co(omd, mv[mf->v4].co[1]);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (omd->oceancache && omd->cached==TRUE) {
|
if (omd->oceancache && omd->cached==TRUE) {
|
||||||
BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra, u, v);
|
BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra, u, v);
|
||||||
foam = ocr.foam;
|
foam = ocr.foam;
|
||||||
CLAMP(foam, 0.0f, 1.0f);
|
CLAMP(foam, 0.0f, 1.0f);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
|
BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
|
||||||
foam = BKE_ocean_jminus_to_foam(ocr.Jminus, omd->foam_coverage);
|
foam = BKE_ocean_jminus_to_foam(ocr.Jminus, omd->foam_coverage);
|
||||||
}
|
}
|
||||||
@@ -477,7 +461,7 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
|
|||||||
cf = (char)(foam * 255);
|
cf = (char)(foam * 255);
|
||||||
mc[i*4 + j].r = mc[i*4 + j].g = mc[i*4 + j].b = cf;
|
mc[i*4 + j].r = mc[i*4 + j].g = mc[i*4 + j].b = cf;
|
||||||
mc[i*4 + j].a = 255;
|
mc[i*4 + j].a = 255;
|
||||||
}
|
} while (j--);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user