From 0891a4adc6ea67ba6dabeea4cbf1c0cc9eb9e0cd Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Fri, 19 Nov 2010 17:12:06 -0500 Subject: SH-356 FIX render cost doesn't factor in revolutions Added a revolutions factor to render cost calculations. Adding revolutions will multiply your render cost based on how much geometry is added, from 1x up to 4x Code reviewed by Davep. Wiki documentation updated. --- indra/newview/llvovolume.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'indra') diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 9aebfcba4a..39e286ac38 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -2950,6 +2950,7 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const // these multipliers are variable and can be floating point F32 scale = 0.f; F32 twist = 0.f; + F32 revolutions = 0.f; const LLDrawable* drawablep = mDrawable; @@ -3046,6 +3047,13 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const // scale to degrees / 90 by multiplying by 2. twist = twist_mag * 2.f; + // multiply by the number of revolutions in the prim. cap at 4. + revolutions = path_params.getRevolutions(); + if (revolutions > 4.f) + { + revolutions = 4.f; + } + // double cost for circular profiles / sculpties if (profile_params.getCurveType() == LL_PCODE_PROFILE_CIRCLE || profile_params.getCurveType() == LL_PCODE_PROFILE_CIRCLE_HALF) @@ -3135,11 +3143,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const shame *= hollow * ARC_HOLLOW_MULT; } - if (twist > 1.f) - { - shame = (U32)(shame * twist); - } - if (circular_profile) { shame *= circular_profile * ARC_CIRC_PROF_MULT; @@ -3170,11 +3173,21 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const shame *= shiny * ARC_SHINY_MULT; } + if (twist > 1.f) + { + shame = (U32)(shame * twist); + } + if (scale > 1.f) { shame = (U32)(shame *scale); } + if (revolutions > 1.f) + { + shame = (U32)(shame * revolutions); + } + // add additional costs shame += particles * ARC_PARTICLE_COST; -- cgit v1.2.3