summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.cpp
AgeCommit message (Collapse)Author
2016-07-15Merged lindenlab/viewer-neko into defaultRuslan Teliuk
2016-07-14MAINT-6125 Mesh avatar deforms constantlyruslantproductengine
FIXED
2016-07-18Backed out changeset: a1a0a055e892andreykproductengine
2016-07-18Merged in lindenlab/viewer-lynxAndreyL ProductEngine
2016-07-12MAINT-6460 Crash calculating mesh complexityandreykproductengine
2016-07-04MAINT-6259 rigged items' LOD should be size dependent, not only avatar dependentandreykproductengine
2016-06-07SL-395 - support scale overrides (currently no way to get these into a dae, ↵Brad Payne (Vir Linden)
so the actual scale values are fabricated at run-time based on the joint name)
2016-05-21merged jelly-doll viewer-release into bentoBrad Payne (Vir Linden)
2016-04-29SL-375, SL-378 - rudimentary logging info to list joint offsets during mesh ↵Brad Payne (Vir Linden)
import. dae_tool.py work to enable joint offset tweaking.
2016-04-21SL-314 - show bones now colorizes rigged-to joints a different color. Also ↵Brad Payne (Vir Linden)
removed what I think is some redundancy in calculating attachment pos overrides. If it breaks I'll change it back.
2016-03-21mergeBrad Payne (Vir Linden)
2016-03-16merge changes for DRTVWR-417Oz Linden
2016-03-07merge DRTVWR-398 build cleanup fixesOz Linden
2016-03-02SL-343 - attachment can include any number of joint overrides.Brad Payne (Vir Linden)
2016-03-01MAINT-6183: Remove geometry bytes as a trigger for muted/impostor renderingOz Linden
2016-02-07FIXED Crash in LLVOVolume::lineSegmentIntersect()Kitty Barnett
2016-02-07FIXED Crash in LLVOVolume::notifyAboutMissingAsset()Kitty Barnett
2016-01-15merge changes for 4.0.1-releaseOz Linden
2016-01-15mergeBrad Payne (Vir Linden)
2015-11-25SL-124 WIP - cleanup of comments and test code before going to project viewer.Brad Payne (Vir Linden)
2015-11-11Backed out changeset: a79540758404ruslantproductengine
Need backed out this changes because it influence on material update see: MAINT-5818 Also this lead to the following: UserA and UserB logged in same location. UserA edit normal/specular map texture offsets while UserB is not observe this changes.
2016-02-08MAINT-6069 Modify rendering cost calculation to use the currently active LoDruslantproductengine
2016-01-15merge changes for 4.0.1-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-10-21SL-234 WIP - moved LLSkinningUtil funcs to separate class/files. Remap ↵Brad Payne (Vir Linden)
weights where needed. Warn that related debug settings require restart to take effect.
2015-10-19SL-234 WIP - remap skin weights to match included-joint logicBrad Payne (Vir Linden)
2015-10-15Merge downstream code, version 3.8.6AndreyL ProductEngine
2015-10-13merge changes for 3.8.5-releaseOz Linden
2015-10-12mergeBrad Payne (Vir Linden)
2015-10-07SL-234 WIP - adjust max mesh object joints at run-time, including rebuilding ↵Brad Payne (Vir Linden)
shaders
2015-09-30Merge from viewer releaseandreykproductengine
2015-09-29merge changes for 3.8.4-releaseOz Linden
2015-09-24SL-227 WIP - initial pass at consolidating skinning code. Less duplication ↵Brad Payne (Vir Linden)
of functionality, still needs more cleanup.
2015-09-14mergeBrad Payne (Vir Linden)
2015-09-14mergeBrad Payne (Vir Linden)
2015-09-14SL-133 WIP, SL-134 WIP - more extra joint handlingBrad Payne (Vir Linden)
2015-09-04MAINT-5416 FIXED Cannot right-click a rigged mesh that's wornAndreyL ProductEngine
--HG-- branch : maint-5416
2015-09-02SL-205 WIP - bumped up max joint count in software-skinning pass.Brad Payne (Vir Linden)
2015-09-01mergeBrad Payne (Vir Linden)
2015-09-02request that tpvs not change avatar complexity calculationOz Linden
2015-09-01mergeBrad Payne (Vir Linden)
2015-08-31SL-133 WIP, SL-134 WIP - more handling for out-of-range jointsBrad Payne (Vir Linden)
2015-08-26refine fix for MAINT-5560 based on review feedback and to fix VS objectionOz Linden
2015-08-26SL-205 WIP - support for 152-joint rigged meshes with both hardware and ↵Brad Payne (Vir Linden)
software skinning.
2015-08-25MAINT-5560: Correct imposter rendering flaws for avatars that have not had ↵Oz Linden
any attachments
2015-08-11SL-134 WIP - Possible fix for octree corruption/crash when mesh has unknown ↵Brad Payne (Vir Linden)
joints.
2015-07-23MAINT-5416 Reverted changeset: 9bd24c17d908AndreyL ProductEngine
2015-07-17MAINT-5416 FIXED cannot right-click a rigged mesh that's wornAndreyL ProductEngine
2015-07-13MAINT-5015 (Nearby objects often load at wrong LOD at login or after ↵ruslantproductengine
intra-region teleports) The idea and reason in this fix is same as for a MAINT-4297, MAINT-4449, BUG-7239 i.e. it's a just a little another case.
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]> }