summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.cpp
AgeCommit message (Collapse)Author
2015-06-10MAINT-4297 (Mesh models sometimes fail to load completely)ruslantproductengine
MAINT-4449 (Starter avatars deformed or missing alpha under some conditions / graphics cards / LOD ) BUG-7239 (Starter avatars deformed or missing alpha under some conditions / graphics cards / LOD) The reason of problem on avatar (or one of avatar attachments) "deformed" it's selected volume (LLVolume) with a lower LOD. How it works. Why it happens? Each LLVOVolume object has variable mLOD which is indicate which is LLVolume should be assigned to LLPrimitive::mVolumep. The assigment happens in LLVOVolume::setVolume which is call LLPrimitive::setVolume, which is then lookup desired volume in LLVolumeMgr class which is keep as I understand all volume groups for all objects in scene. The data (mesh) for LLVolume class is loading from LL servers by http, and if sucessfully the variable LLVolume::mIsMeshAssetLoaded assigned to true. But sometimes the data may not be ready, and in this case the LLVOVolume::setVolume make request for download mesh (to the LLMeshRepository) and setup one of available lod. All of this things happens in (see: LLVOVolume::setVolume, code: block if (!getVolume()->isMeshAssetLoaded() {...}) When LLMeshRepository sucessfully download the mesh it's set (as I said above LLVolume::mIsMeshAssetLoaded, LLVolume::setMeshAssetLoaded()) and then also notify LLVOVolume::notifyMeshLoaded() about it. This causes add LLVOVolume::mDrawable into the pipline build list (see LLVOVolume::notifyMeshLoaded()) and set LLVOVolume::mSculptChanged; In order to process it later in LLVOVolume::updateGeometry (In order to see the mechanism of LLPipiline build list processing set bp in this method and see the stack). After the LLDrawable will be processed it will be removed form the build queue also all falgs will be reseted (see the end of LLVOVolume::updateGeometry). And here is the problem in variable-flag's "*Changed" processing (in LLVOVolume::updateGeometry): What if by the time of processing the mFaceMappingChanged also will be set (due to other changes in engine)? It means that LLVOVolume::setVolume will not be called and LLPrimitive::mVolumep remain unchaged and would point to the LLVolume for a lower LOD. My changes intended for fix this problem. BTW this is true for not only for standard avatar's. The reason why it is well visible on standard avatars is because it has a more "ugly" lower-LOD-s, than on avatars which is was loaded by the SL-users. For example on my DudtPank avatars I didn't see big difference between LOD-0 and LOD-3. If you want you can "play" with it in LLVOVolume::calcLOD() with add code if(getAvatar() && getAvatar()->isSelf()) { mLOD = <desired lod level [0..3]> }
2015-05-19MAINT-3548 - FIXED-R2 Horizontal & vertical offset values for normal & ↵vyacheslavsproductengine
specular maps still randomly revert to previous settings when building.
2015-04-13merge changes for 3.7.27-releaseOz Linden
2015-03-04MAINT-4943 FIXED Crash on locationruslantproductengine
2015-01-23MAINT-4833 Fixed Warning treated as errorruslantproductengine
2015-01-13merge changes for 3.7.24-releaseOz Linden
2015-01-07MAINT-4773 FIXED Some transparent textures are rendered as white.ruslantproductengine
This bug fix related also to MAINT-4092. In 4092 sometimes when we don't have information about the texture during the setup the materail (LLVOVolume::setTEMaterialParams()), we should substitute the material with disabled "diffuse alpha mode" (for detail in cases see MAINT-4092 JIRA ticket comment). This bug fix cover the case when after the loading texture we have all information about alpha mode, and in this case we should restore diffuse alpha mode if need. In short: now we always believe that information about the material is valid (LLVOVolume::setTEMaterialParams()). Of course before setup it we check information about texture (if it possible) , if texture is not exist in database or not 32 bit depth (for diffuse) we made changes. But in all other cases (if we can't receive information about texture) we remeber this case in mWaitingTextureInfo multimap. When information about texture will be available we get it in: LLVOVolume::notify AboutCreatingTexture() or Volume::notifyAboutMissingAsset() and again, we recheck it and if need change (substitute) the material parameters. I suppose that this solution is better than was before. If this patch will be accepted , I think that MAINT-4092 should be rechecked again.
2014-12-12MAINT-3488 FIXED Pose balls are sometimes invisible after standing up until ↵ruslantproductengine
zooming camera closer
2014-12-10Rename llround(..) to ll_round(..) because of a collision with MS llround ↵callum_linden
(long long round) in VS2013
2014-12-02mergeBrad Payne (Vir Linden)
2014-12-01mergeBrad Payne (Vir Linden)
2014-11-21MAINT-4092 FIXED Prim faces with opaque diffuse maps, with material set to ↵ruslantproductengine
ALPHA MODE BLEND, do not render Pathset #3. Fix problem with not existing UUID's and if have a "conflict" when material can't have DIFFUSE_ALPHA_MODE_BLEND and DIFFUSE_ALPHA_MODE_NONE simultaneously.
2014-11-15MAINT-4537 WIP - more joint position management during outfit changesBrad Payne (Vir Linden)
2014-11-13MAINT-4092 FIXED Prim faces with opaque diffuse maps, with material set to ↵ruslantproductengine
ALPHA_MODE_BLEND, do not render MAINT-4645 FIXED [viewer-lion] The build tool shows normal or specular map as 'none' when one exists
2014-11-03SL-93 WIP - pelvis fixup offsetsBrad Payne (Vir Linden)
2014-10-30SL-93 - WIP on managing pelvis fixups using new joint offset frameworkBrad Payne (Vir Linden)
2014-10-20Update to build on Xcode 6.0: Large (and final) collection of fixes for ↵callum_linden
unused variables, unused const-variables, unused member variables & functions etc. Also removed flags from CMake
2014-10-08Switched to keying joint offsets by mesh idBrad Payne (Vir Linden)
2014-10-08Switched to keying joint offsets by mesh idBrad Payne (Vir Linden)
2014-08-28MAINT-4158 WIP - track position overrides requested by attachments so they ↵Brad Payne (Vir Linden)
can be undone intelligently
2014-08-27WIP on attachment offset management in jointsBrad Payne (Vir Linden)
2014-09-05mergeBrad Payne (Vir Linden)
2014-08-28MAINT-4158 WIP - track position overrides requested by attachments so they ↵Brad Payne (Vir Linden)
can be undone intelligently
2014-08-27WIP on attachment offset management in jointsBrad Payne (Vir Linden)
2014-07-24MAINT-4092 FIXED Prim faces with opaque diffuse maps, with material set to ↵ruslantproductengine
ALPHA_MODE_BLEND, do not render when ALM is enabled : replace nullptr to NULL (please use modern compilers)
2014-07-09MAINT-4092 FIXED Prim faces with opaque diffuse maps, with material set to ↵ruslantproductengine
ALPHA_MODE_BLEND, do not render when ALM is enabled
2014-06-17Merge viewer-release and become version 3.7.9simon
2014-06-02Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365.Stinson Linden
2014-05-13sunshine-external merge WIPBrad Payne (Vir Linden)
2014-05-07Merge downstream version 3.7.8 codesimon
2014-04-24MAINT-4009: Cleaning up some statically allocated memory in a ↵Stinson Linden
LLVolumeGeometryManager method that was never freed.
2014-03-11MAINT-3778 Develop>RenderMetadata>LOD Info no longer displays values for objectsMnikolenko ProductEngine
2014-02-27MAINT-3778 Develop>RenderMetadata>LOD Info no longer displays values for objectsMnikolenko ProductEngine
2013-12-05mergeBrad Payne (Vir Linden)
2013-12-02merge with releaseRichard Linden
2013-11-11Automated merge with http://bitbucket.org/lindenlab/viewer-releaseRichard Linden
2013-11-11Merge 3.6.11 for RC-abilityGraham Linden
2013-11-11convert dos line endingsOz Linden
2013-11-05MAINT-3376 FIXED Successive llSetTextureAnim calls fail in 3.6.10 (283075) ↵maksymsproductengine
unless a different command (llSleep(0.01), llSay(0,"hello")) is placed between them.: - fix for MAINT-2861 was reverted to resolve this issue;
2013-10-25Fix release merge issues (included upstream changes not yet in release from ↵Graham Linden
bear)
2013-10-23fix for SH-4551: Interesting: some attachments do not appear after teleportXiaohong Bao
2013-10-16mergeBrad Payne (Vir Linden)
2013-10-15renamed TimeBlock to BlockTimerStatHandleRichard Linden
2013-10-15Automated merge with http://bitbucket.org/lindenlab/viewer-interestingXiaohong Bao
2013-10-15fix for SH-4551: Interesting: some attachments do not appear after teleportXiaohong Bao
2013-10-14changed ll_aligned_(malloc|free) to take alignment size as a template argumentRichard Linden
2013-10-08merge from viewer-releaseRichard Linden
2013-10-01Automated merge with http://bitbucket.org/lindenlab/viewer-releaseRichard Linden
2013-09-25Merge recent viewer-bear fixes that missed the boatGraham Linden
2013-09-20MAINT-3172 fix rendering regressions from release mergedownGraham Linden