Commit graph

742 commits

Author SHA1 Message Date
Anthony J. Thibault
23affb570b WIP checkpoint, root transforms for shapes and non-animated fbx files are working. 2018-01-04 16:09:06 -08:00
Anthony J. Thibault
565875e823 WIP first attempt at dual quat skinning 2018-01-04 16:09:02 -08:00
humbletim
513a69cdcd changes per CR feedback 2018-01-03 04:08:43 -05:00
Sam Gondelman
2898fa557e
typo 2017-12-23 00:53:11 -08:00
David Back
01fcd453b8 Merge branch 'master' of https://github.com/highfidelity/hifi into polyobjimportfixes 2017-12-22 16:41:17 -08:00
SamGondelman
c38ef77b26 fix model overlays visibility change 2017-12-22 15:04:06 -08:00
David Back
f800a6d6fc scale change 2017-12-21 17:00:27 -08:00
David Back
fd297f1c03 convert negative relative indices to absolute indices 2017-12-21 10:36:41 -08:00
humbletim
a146b778f7 support additional .extraInfo for ray intersections 2017-12-21 12:35:13 -05:00
SamGondelman
2ba3e337db cleanup 2017-12-20 14:18:01 -08:00
SamGondelman
bd06dc6443 cleaning up modelmeshpartpayload 2017-12-20 11:00:14 -08:00
Olivier Prat
116756c976 Parallel optimizations of setBlendedVertices 2017-12-18 11:22:43 +01:00
Olivier Prat
264f41472d Added tangents to blendshape for possible break of bump mapping when doing blend shape animations 2017-12-15 12:06:07 +01:00
Olivier Prat
f38e473218 Working packing of normals and tangents in GL_INT_10_10_10_2_REV format. Need to check this with all available 3D data input formats 2017-12-14 17:57:34 +01:00
Anthony J. Thibault
542af47e9e Fix for hand controller avatar scaling.
* Added getDomainMaxScale() and getDomainMinScale() to JS api.
* Updated scaleAvatar controller module to use this to prevent scaling past the limits.
* Made sure that getDomainMaxScale() getDomainMinScale() and getUnscaledEyeHeight are thread safe,
  so that they can be invoked on the script thread.
* Added signals to Model class that can be used to let observers know when the Rig has finished initializing it's skeleton.
  and also when the skeleton is no longer valid.  These hooks are used to cache the unscaled eye height of the avatar.
2017-12-07 17:08:13 -08:00
Anthony J. Thibault
9f54ce55f3 Change domain setting from min/max avatar scale to min/max avatar height
* Domain settings version has been bumped from version 2.0 to 2.1
* Old domain settings for avatar scale will be auto-converted to avatar height
* Avatar code has been changed so that limitDomainScale() works with the new height limits
* Avatar getUnscaledEyeHeight() was added to C++.
* MyAvatar.getHeight() was added to JS.
2017-11-21 13:25:47 -08:00
samcake
053052a95d removing warnings 2017-11-03 13:28:20 -07:00
Sam Gateau
390f5b53ca cleaning more code 2017-11-02 23:55:44 -07:00
Sam Gateau
c11f46a8d3 cleaning more code 2017-11-02 23:35:18 -07:00
Sam Gateau
421aacd8eb Yes 2017-11-02 22:45:19 -07:00
Sam Gateau
f097d66721 YEp it s working 2017-11-02 19:49:01 -07:00
samcake
d33c75865e Removing unecessary test 2017-11-02 18:11:13 -07:00
samcake
83bfa1c5f2 Progressing on the cluster updates 2017-11-02 17:57:46 -07:00
Sam Gateau
56510abd1e Trying to set the ClusterBuffer in the render loop instead of the game loop 2017-11-02 03:45:27 -07:00
Andrew Meadows
27f4d182d9 fix scale of rendered collision geometry 2017-10-24 13:23:46 -07:00
Andrew Meadows
c79bf3bc04 cleanup WANT_DETAILED_PROFILING 2017-10-19 14:31:50 -07:00
Andrew Meadows
339edc67c8 ifdef out more per-frame-per-entity profiling 2017-10-16 17:27:53 -07:00
Andrew Meadows
fb1c075a12 fix animating entities 2017-10-16 15:55:25 -07:00
Sam Gateau
f143c28625 Merge pull request #11542 from SamGondelman/bubbleBoy
Move HUD and HUD overlay rendering out of display plugin
2017-10-10 14:26:20 -07:00
Bradley Austin Davis
c92588685b Merge pull request #11533 from SamGondelman/modelMaster
Fix model loading for real this time
2017-10-08 10:23:13 -07:00
SamGondelman
7e6d5d9d98 merge with master 2017-10-06 14:57:08 -07:00
SamGondelman
a6b7578c3c start fixing asynch issue, fixes model loading! 2017-10-05 12:30:00 -07:00
SamGondelman
3a6e84e681 trying to fix model issue 2017-10-04 17:26:12 -07:00
SamGondelman
477dfdff1e wip hud layering and fix crashes 2017-10-04 11:45:21 -07:00
samcake
b5c942f7f6 Merge branch 'master' of https://github.com/highfidelity/hifi into game-render-interface 2017-09-26 10:47:59 -07:00
Sam Gateau
f90dc64241 Merge branch 'master' of https://github.com/highfidelity/hifi into blue 2017-09-24 19:32:57 -07:00
SamGondelman
86198606e0 add _modelJustLoaded and updateTransforForSkinnedMesh on creation 2017-09-22 17:12:44 -07:00
SamGondelman
9f12d3a365 fix missing models 2017-09-21 17:57:25 -07:00
samcake
eed099502a minimise the changes compared to upstream 2017-09-21 17:20:32 -07:00
samcake
510ecbb137 Merging with upstream 2017-09-21 16:59:15 -07:00
samcake
fd8868f609 Moving the render transform evaualtion in game loop for Models 2017-09-19 17:30:20 -07:00
samcake
bff578b283 Working version that fixes the web overlay / tablet 2017-09-14 17:07:50 -07:00
samcake
10b1e3f561 Trying to implement differnet solution to the transform updates problem and debug 2017-09-12 14:35:25 -07:00
samcake
01e4bfc53e Trying to avoid calling getTransform on nestables from render thread 2017-09-11 17:36:10 -07:00
Seth Alves
a3f4aeb182 code review 2017-07-24 19:41:30 -07:00
Seth Alves
a1107deef1 cleanups 2017-07-23 08:21:50 -07:00
Seth Alves
47ea32f4d3 vertex color support in ModelScriptingInterface 2017-07-23 08:06:26 -07:00
Seth Alves
72e5fecb4e do Model::getMeshes on the correct thread. added ModelScriptingInterface::getVertexCount and ModelScriptingInterface::getVertex 2017-07-20 16:34:34 -07:00
Seth Alves
be48268be8 getMeshes handles registration point 2017-07-19 15:02:40 -07:00
Seth Alves
750b7192af trying to get the resulting model to line up with the originals 2017-07-19 13:58:03 -07:00
Seth Alves
a8698c2fbc EntityScriptingInterface::getMeshes support for Model entities 2017-07-19 08:59:09 -07:00
Brad Davis
6fc82bb351 Switch to preprocessor macro for blocking invokes to capture function information 2017-06-30 11:36:24 -07:00
Brad Davis
b52dd7b822 Don't use blocking connections on the main thread 2017-06-29 20:45:17 -07:00
Anthony J. Thibault
2dcca2125b Merge branch 'master' into feature/pole-vector 2017-06-21 15:50:03 -07:00
Brad Davis
fece438602 Cleanup and refactoring 2017-06-15 18:58:56 -07:00
Anthony J. Thibault
f20c03fa6e Pole vectors can be controlled via anim vars. 2017-06-13 15:36:05 -07:00
Howard Stearns
3d62900daf When we do precision detailed picking on a model, check the back faces, too. In other words, precision picking from inside a model works. 2017-06-03 16:49:16 -07:00
Thijs Wenker
712aff7ad6 base scale attachment on the natural dimensions 2017-05-23 17:53:08 +02:00
Chris Collins
207c13c3c3 Merge pull request #10528 from AndrewMeadows/payload-gets-weak-pointer
MeshPartPayload keeps weak pointer to Model
2017-05-22 21:54:40 -07:00
Andrew Meadows
f7db877b7f payload keeps weak pointer to Model 2017-05-22 17:29:15 -07:00
Andrew Meadows
7b879a7964 Model has a Rig rather than a RigPointer 2017-05-19 13:24:16 -07:00
Andrew Meadows
17b6cf29df check for valid resource pointer before use 2017-05-18 15:12:59 -07:00
Andrew Meadows
8d3285f733 verify _rig is valid in Model::deleteGeometry() 2017-05-18 11:11:50 -07:00
Brad Hefta-Gaub
36c7821e1e Merge pull request #10455 from ZappoMan/TriangleSetOptimizations
TriangleSet optimizations - ~80% improvement in Ray picking against models
2017-05-16 20:47:50 -07:00
Ryan Huffman
8eacf0ad4b Remove unnecessary assert in Model.cpp
This clause inside was not longer valid - it is a valid state for
part->_meshIndex < _modelMeshRenderItems.size(). A better check might be
to compare it to the size of _meshStates which we use below, but we use
_meshStates.at(...) which will do the bounds checking, which makes the
assert unnecessary.
2017-05-16 10:56:33 -07:00
ZappoMan
eb3b27849c only keep one copy of Triangles 2017-05-12 17:07:47 -07:00
ZappoMan
a15c5999b5 first cut at octree storage of Triangle Set 2017-05-10 16:58:51 -07:00
Anthony J. Thibault
e992d6703a WIP: debug render joint constraints. 2017-05-08 15:06:28 -07:00
Andrew Meadows
f11d6eff92 fix typos: RenderItemsMap not RenderItems 2017-05-04 15:43:44 -07:00
samcake
c36f8da4c0 Fixing build on mac 2017-04-24 10:46:29 -07:00
Andrew Meadows
31bfc98b87 use const reference for ScenePointer when possible 2017-04-18 11:52:22 -07:00
samcake
6122155880 Renaming the PendingCHanges class to Transaction 2017-04-05 13:10:31 -07:00
trent
36619cd2e4 Fixed issue with duplicate physics status icons per sub-object. 2017-03-22 15:07:29 -04:00
Andrew Meadows
d3fa28d4bc remove cruft and fix indentation 2017-03-15 16:17:59 -07:00
Andrew Meadows
f250c0d298 simpler bindTransform() for ModelMeshPartPayload 2017-03-15 14:41:13 -07:00
Brad Hefta-Gaub
87934ee82d fix bugs in some meshes 2017-03-06 21:50:32 -08:00
Brad Hefta-Gaub
f27475613f Merge branch 'master' of https://github.com/highfidelity/hifi into triangleSet 2017-03-06 12:53:59 -08:00
ZappoMan
af97e9bdd9 CR feedback 2017-03-06 10:49:38 -08:00
ZappoMan
2a663cbcb1 cleanup 2017-03-05 19:28:15 -08:00
ZappoMan
87bcced409 cleanup use of triangleSet for picking 2017-03-05 19:23:55 -08:00
ZappoMan
32add6635d checkpoint on reducing raypicking recalcs 2017-03-04 23:33:17 -08:00
Ken Cooke
a5571bd49d redo unsafe optimization 2017-03-04 16:02:39 -08:00
ZappoMan
9908723bb9 fist cut at basic TriangleSet class 2017-03-03 22:27:38 -08:00
Atlante45
1201932ee9 Fix SSE2 macros for Macos 2017-02-14 14:10:53 -08:00
samcake
c864e57855 first pass on a working image class and the mip generation 2017-02-06 08:51:04 -08:00
samcake
e8cdee71ed avoid assertion on mac 2017-02-03 22:49:41 -08:00
Seth Alves
ab8be15ce0 Merge pull request #9570 from highfidelity/tablet-ui
Tablet ui
2017-02-01 09:38:13 -08:00
samcake
04d5173328 Merge pull request #9530 from AndrewMeadows/computeBoundsOutsideLambda
compute Model's local bounds outside pending changes queue
2017-01-31 11:40:21 -08:00
Anthony J. Thibault
0f75668923 Moved Model setting of _spatiallyNestableOverride to constructor 2017-01-31 09:36:21 -08:00
Anthony J. Thibault
0962a15a06 Fix for one-frame lag in the tablet stylus. 2017-01-30 15:39:55 -08:00
Andrew Meadows
489fbc6299 compute Model's local bounds outside render lambda 2017-01-27 09:35:36 -08:00
Seth Alves
db38503d57 Merge branch 'master' of github.com:highfidelity/hifi into tablet-ui 2017-01-26 13:48:59 -08:00
Andrew Meadows
09707217ec remove Model::simulateInternal() 2017-01-26 08:35:25 -08:00
Andrew Meadows
08bba5f45f add and remove some profile data points 2017-01-26 08:35:25 -08:00
Seth Alves
be8bc9652b Merge branch 'master' of github.com:highfidelity/hifi into tablet-ui 2017-01-23 09:44:04 -08:00
Andrew Meadows
10cdea9cd8 cleanup model fade logic 2017-01-19 14:17:50 -08:00
Andrew Meadows
3dd8fd838b move cauterization out of Model class 2017-01-19 12:56:07 -08:00
Seth Alves
eb25e1c12d Merge branch 'master' of github.com:highfidelity/hifi into tablet-ui 2017-01-19 09:41:49 -08:00
Seth Alves
6bace4f451 merge from upstream 2017-01-17 09:29:30 -08:00
samcake
0b9b5d595c Merge branch 'master' of https://github.com/highfidelity/hifi into meta 2017-01-16 17:48:16 -08:00
samcake
83d1c3ad01 Adding support for the meta rendering 2017-01-16 17:47:58 -08:00
Andrew Meadows
fd28457807 fix cauterization hack 2017-01-16 15:13:28 -08:00
Seth Alves
5a81dface9 avoid filling log with bogus warning 2017-01-13 12:00:51 -08:00
Seth Alves
e9422cbf1e fix model scales 2017-01-12 16:38:27 -08:00
Seth Alves
5fa379fea2 fix model scales 2017-01-12 16:12:43 -08:00
Seth Alves
208c4686c4 merge from upstream 2017-01-12 15:44:27 -08:00
samcake
ca53235d54 Merge pull request #9358 from AndrewMeadows/model-cleanup
minor cleanup for Model rendering code
2017-01-12 14:30:16 -08:00
Anthony J. Thibault
26a5b5ed91 Fix for rendering of tablet ModelEntity in desktop mode.
The Model pendingChanges.updateItem() lambda now directly calls into StaticallyNestable.  This is late enough
in the update loop to have the most up-to-date camera transform used for rendering.
2017-01-11 18:37:57 -08:00
Andrew Meadows
e2130d33d9 speedup cauterizedClusterMatrices math 2017-01-11 15:10:44 -08:00
Andrew Meadows
b3e336de3d remove cruft: unused function arguments 2017-01-11 15:02:18 -08:00
Andrew Meadows
87bdaae05a remove scale from ModelMeshPartPayload's transform 2017-01-11 12:38:47 -08:00
Andrew Meadows
bd16824d55 remove cruft: Model::_pupilDilation 2017-01-11 06:57:05 -08:00
Andrew Meadows
1804f33b98 add assert and TODO comment 2017-01-11 06:56:35 -08:00
sam
7a01b856f7 Factorization of the modelTransform out of the cluster matrices 2017-01-11 02:33:56 -08:00
Andrew Meadows
44699fc661 modelToWorld rotation not in cluster matrices 2017-01-10 16:21:13 -08:00
Brad Davis
1dd2747ef9 Push some tracing into 'detail' categories for easy filtering. Add new tracing categories, add counter change tracking. 2017-01-10 10:44:04 -08:00
Brad Davis
901c020aae Optimizations, SIMD and const correctness 2016-12-27 15:39:38 -08:00
Andrew Meadows
0b0c3f0be4 cleanup some if-logic 2016-12-21 10:55:59 -08:00
Brad Hefta-Gaub
c65471e880 Merge branch 'master' of https://github.com/highfidelity/hifi into removeLogSpam
Conflicts:
	libraries/script-engine/src/FileScriptingInterface.cpp
2016-12-19 22:27:24 -08:00
Brad Hefta-Gaub
dbbed462b4 cleanup naked qDebug() calls 2016-12-19 22:24:25 -08:00
samcake
c435afb728 Introducing a fix for the overlayered model drawn in front 2016-12-19 13:17:56 -08:00
Brad Davis
ee3c8e6efd Merge pull request #9225 from jherico/chrome_tracing
Additional work on tracing
2016-12-16 17:53:55 -08:00
Ryan Huffman
1d9a32c528 Add FIXME comment to texture setting in Model.cpp 2016-12-16 16:32:53 -08:00
Ryan Huffman
18a166bee8 Fix models not settings textures if not loaded 2016-12-16 15:05:17 -08:00
Brad Davis
30a9961362 tracing polish 2016-12-16 14:02:27 -08:00
Andrew Meadows
ee6a9f4506 adding profile stats relating to avatar CPU costs 2016-12-16 13:41:31 -08:00
Ryan Huffman
7bb2755913 Add chrome tracing support 2016-12-16 01:14:01 -08:00
Anthony Thibault
23aa626755 Destroy render scene & engine before Application is destroyed
Many render items/payloads contain smart pointers back to the
objects that added them to the scene, including entity and avatar
objects. Currently, those render items are destroyed when the
scene is destroyed very late in the application life-cycle.

There are rare crashes that can occur when these render items are
destroyed. Possibly, due to them referencing objects that have
already been destroyed via raw pointers. In an effort to
eliminate these crashes, we now destroy the scene earlier, within
Application::aboutToQuit() which is connected to the
QCoreApplication::aboutToQuit signal.  Also, we guard against null
scene pointer dereferences.  Any location that accesses the scene
off the main thread, now checks the validity of the scene pointer.
2016-10-25 15:28:37 -07:00
Brad Hefta-Gaub
7fe16442fa make calculateTextureInfo thread safe 2016-10-01 15:47:17 -07:00
David Rowe
0cf3f6e953 Fix texture count and size getting stuck on 0 2016-09-13 13:03:06 +12:00
David Rowe
68499f49ad Fix count of textures 2016-09-10 10:15:13 +12:00
Brad Hefta-Gaub
e1845e2c3f add support for renderInfo properties to model entities 2016-08-31 15:00:21 -07:00
Andrew Meadows
b95cb566cd fix collision mesh for non-trivial registration 2016-08-24 22:26:56 -07:00
Andrew Meadows
19cd4648ad scale collision render mesh correctly 2016-08-24 22:26:56 -07:00
Andrew Meadows
68dd66daec create collision render geometry only when needed 2016-08-24 22:26:56 -07:00
Andrew Meadows
b0a0293e6e move compoundResource out of Model class 2016-08-24 22:26:56 -07:00
Andrew Meadows
fe4198530f don't render raw compound collision geometry 2016-08-24 22:26:56 -07:00
Andrew Meadows
329c5432ed _showCollisionHull --> _showCollisionGeometry 2016-08-24 22:26:56 -07:00
Andrew Meadows
481d6990a3 trigger collision shape render mesh creation 2016-08-24 22:26:56 -07:00
Andrew Meadows
26f5d3cfaa fix render geometry for collision shapes 2016-08-24 22:26:56 -07:00
Andrew Meadows
6b0ae654ba cleanup logic around creating RenderItems 2016-08-24 22:26:56 -07:00
Andrew Meadows
d8fa0d1dd1 segregateMeshGroups() --> createRenderItems() 2016-08-24 22:25:45 -07:00
Andrew Meadows
726928c14c creae collision Geometry from mesh 2016-08-24 22:25:45 -07:00
Seth Alves
87dbfa7e47 add -Wsuggest-override to compile flags and deal with fallout 2016-08-18 09:51:41 -07:00
SamGondelman
ae9fb3768c CR notes 2016-08-08 17:45:25 -07:00
SamGondelman
328d3128fa merge from master 2016-08-08 13:30:39 -07:00
Ryan Huffman
4f9be2ae72 Fix camera position not being set for angular loading 2016-08-08 08:53:06 -07:00
Ryan Huffman
77e993510e Cleanup implementation of angular loading 2016-08-08 08:53:05 -07:00
Ryan Huffman
c594dcdf9f Add priority loading for model entities 2016-08-08 08:52:29 -07:00
SamGondelman
dd51e0e38f merge from master 2016-08-05 17:04:45 -07:00
SamGondelman
771e105fa2 Merge remote-tracking branch 'upstream/master' into loadingFade 2016-08-05 16:52:01 -07:00
Brad Hefta-Gaub
83280aa3f2 implement support for updating the render items of models when they finish their fade 2016-08-05 10:11:07 -07:00
SamGondelman
b6e73e06a2 merge from master 2016-08-04 13:34:38 -07:00
Seth Alves
c743cf379e use loadCollisionModelURLFinished when collisions model is finished 2016-08-03 11:31:51 -07:00
Seth Alves
ad4fc8c656 merge from upstream, don't hold up enabling of physics if a collision hull fails to load 2016-08-03 10:42:15 -07:00
Stephen Birarda
5d3e125a06 make failed geomtetry request not hold physics 2016-08-02 16:32:41 -07:00
Seth Alves
b953e6f0ff when an avatar URL fails, switch to the default 2016-08-01 18:12:30 -07:00
SamGondelman
313ba87fce fade on texture load 2016-08-01 14:47:20 -07:00
Andrew Meadows
d876251f1e release geometry refs in Model::deleteGeometry() 2016-07-24 19:17:39 -07:00
Andrew Meadows
3e43859139 setCollisionModelURL() more symmetric with setURL() 2016-07-13 15:13:35 -07:00
Andrew Meadows
4bebb682dc namechange: fetchResource --> getGeometryResource 2016-07-13 15:13:35 -07:00
Andrew Meadows
9f7d2cf263 NetworkGeometry --> GeometryResourceWatcher
Model class gets render and collision geometries with watchers
also changed names for readability
2016-07-13 15:00:12 -07:00
Seth Alves
11542aeca2 pick against avatar's capsule and then against the T-pose mesh 2016-07-07 16:36:25 -07:00
Seth Alves
5f9c7b6ea5 trying to take joint information into account when raypicking against models 2016-06-29 17:02:49 -07:00
Seth Alves
d53c7ae5d8 experimenting 2016-06-29 12:39:04 -07:00
Andrew Meadows
5d5dc2837b fix comment 2016-06-20 17:29:20 -07:00
Andrew Meadows
c73757f740 use many colors for collision hull rendering 2016-06-03 10:47:54 -07:00
Brad Hefta-Gaub
06cb625d09 Merge pull request #7959 from hyperlogic/tony/improved-avatar-mixer-precision
Improved Avatar Mixer Rotation Precision
2016-05-25 17:14:12 -07:00
Seth Alves
40e862cf9e quiet gcc 5 warnings 2016-05-21 16:53:01 -07:00
Anthony J. Thibault
55b0060df9 Convert JointData from relative frame to absolute. 2016-05-16 17:48:52 -07:00
Anthony J. Thibault
641e152699 Eye tracking bug fix and debug rendering improvement
* Bug fix for eye tracking in HMD, the "up" orientation of your eyes now match your head.
* DebugDraw: added drawRay method.
* Application: Renamed preRender to postUpdate
* AvatarManager: added postUpdate method that iterates over all avatars.
* MyAvatar: Renamed preRender to preDisplaySide
* MyAvatar: split preRender code into postUpdate and preDisplaySide.
* Removed "Show who is looking at me", "Render focus indicator" and "Render lookat target" debug draw.
* Split "Show Look At Vectors" into "Show My Look At Vectors" and "Show Other Look At Vectors", to make it easier to debug eye tracking.
* "Show Look at Vectors" now draws the right eye red and the left eye blue.
* Removed Avatar and MyAvatar renderBody
* Removed look at rendering from head.
* GLMHelpers: Bugfix for generateBasisVectors when up primary and secondary axis were orthogonal
2016-05-08 16:20:32 -07:00
Anthony Thibault
865a77ae20 Model: fixed two crash issues when changing avatars
* When the GeometryReader has the last ref to the GeometryResource ptr
  It needs to hold on to the reference until invokeMethod is completed.
  Otherwise, invokeMethod will call a method on a deleted object, leading
  to memory corruption or crashes.

* When the Model URL is changed, the clusterMatrices are invalided and the
  RenderItemsSets are cleared.  However, there still might be renderItems in
  the scene pending changes list that might refer to those RenderItems and their
  clusterMatrices.  We need to guard against this access to prevent reading from
  memory that was previously freed.

Both of these issues were uncovered using the [avatar-thrasher](https://gist.github.com/hyperlogic/d82a61d141df43d576428501a82c5ee6) test script.
2016-04-02 21:48:22 -07:00
Anthony J. Thibault
5e81cccc6c Merge branch 'master' into tony/culling-fixes 2016-04-01 09:29:46 -07:00
Anthony J. Thibault
bc967f0ab0 Model: update renderItems when items are added to the scene.
* Renamed enqueueLocationChange to updateRenderItems
* Call updateRenderItems when models are added to the scene.

This will fix entity render bounds being incorrect when they are first added to the scene,
then later being correct after a position update.

* Renamed getMeshPartBound to getRenderableMeshBound.
* Avatar now uses getRenderableMeshBound() to do boundingRadius vs frustum check.
* Model::getRenderableMeshBound now returns a more accurate bound, because it is the same one used for rendering.

This will fix avatar freezing, when they are in the corner of your frustum.
This was due to matrices not being updated because the avatar had to a small bounding sphere.
2016-03-31 14:59:27 -07:00
Zach Pomerantz
e4cba14333 Avoid recreating model items when adding to scene 2016-03-31 10:46:51 -07:00
Zach Pomerantz
3de5f73a1f Fixup model on tex load 2016-03-31 10:46:51 -07:00
Brad Hefta-Gaub
a7f93aa75c Merge pull request #7519 from zzmp/fix/avatar-crash
Fix crash from updating/resetting avatar
2016-03-30 21:31:17 -07:00
Anthony Thibault
26b9469df5 Merge pull request #7516 from hyperlogic/tony/show-collision-geometry-crash-fix
Model: fix for crash when displaying collision mesh
2016-03-30 16:48:07 -07:00
Zach Pomerantz
6e0d6ee45b Guard updateClusterMatrices from unloaded geo 2016-03-30 16:04:00 -07:00
Zach Pomerantz
00db095306 Guard against reset model geo on scene update 2016-03-30 15:49:45 -07:00
Anthony J. Thibault
f6344c34e7 Model: Fix for equipped models not updating their matrices 2016-03-30 15:19:35 -07:00
Anthony J. Thibault
103257493c Model: fix for crash when displaying collision mesh.
This was due to a default constructed PayloadPointer being sent to the scene via resetItem.

The fix is to A) not do that anymore, B) make resetItem more robust and not crash if this happens.
2016-03-30 14:24:28 -07:00
Anthony J. Thibault
24ca5b3d60 Update after merge changes to NetworkGeometry.
Also cleaned up API for ModelMeshPartPayload::updateTransformForSkinnedMesh() to pass a QVector const ref, instead of a raw pointer and a size.
2016-03-28 20:29:02 -07:00
Anthony J. Thibault
940f3e636d Merge branch 'master' into tony/animated-culling 2016-03-28 19:58:38 -07:00
Anthony J. Thibault
115fd607a0 Address performance issues introduced with this PR.
* Prevent clusterMatrices from being invalidated and re-computed in each updateItem lambda.
  We do this by not setting _model->_needsUpdateClusterMatrices = true;
* Prevent redundant work if Model::enqueueLocationChange is called multiple times per frame.
  We do this by introducing a preRenderLambdas map in the Application class.
  Instead of adding work directly to the scene PendingChanges queue Model::enqueueLocationChange
  adds a lambda to the Application preRenderLambdas map.  The Application ensures that only one lambda will
  be invoked for each model per frame.
2016-03-28 19:47:30 -07:00
Anthony J. Thibault
f5a86666a1 Model: fix for collision mesh rendering 2016-03-28 09:56:15 -07:00
Zach Pomerantz
d6640ac520 Update Model::_hasTransparentTextures 2016-03-27 16:38:45 -07:00
Anthony J. Thibault
49a4d104a6 Minimize diff with master 2016-03-26 13:27:05 -07:00
Anthony J. Thibault
bf433487fa Dynamic bound update for skinned mesh
* Use all cluster matrices to compute bound for skinned mesh.
  This is far less expensive then doing per-vertex work, but it's not free, for avatars especially.
* Remove skinnedMeshBound, compute it instead.
* Compute clusterMatrices in render update, because we need them to update bounds.
2016-03-26 12:22:02 -07:00
Anthony J. Thibault
b4e70d9101 WIP: checkpoint
* bug fix in AABox::operator+=
* added AABox::emiggen
* Avatar now has a default bound for it's skinned mesh.
* WIP: AABox tests;  NEED MORE
* Model: split collision and model mesh render items.
  Because ModelMeshRenderItems need special handling to update bounds for animated joints.
* Model: dynamically update the bound for rigidly bound animated meshes
* Rig: added access to geometryToRigTransform
* RenderableModelEntityItem: try to update bounds for skinned mesh to be the entity dimentions (this doesn't seem to be working)
* Geometry.cpp: removed unused bounds parameter in evalPartBounds
* ModelMeshPartPayload: bounds updating
   * non-animated: use existing _localBound
   * rigid bound mesh: use _localBound transformed by clusterMatrix joint transform
   * fully skinned mesh: use _skinnedMeshBound provided by the application.
2016-03-25 21:29:20 -07:00
Zach Pomerantz
3402635f99 Lock geometry on blender 2016-03-24 18:50:43 -07:00
Zach Pomerantz
3e9e083df5 Update users of NetworkGeometry 2016-03-24 11:35:41 -07:00
Brad Hefta-Gaub
9f0084dbb1 make Blender keep a shared pointer to the model it's blending 2016-03-22 16:01:31 -07:00
Brad Hefta-Gaub
513138ca98 one more crack at fixing the blender 2016-03-21 18:28:26 -07:00
Chris Collins
6324d0e3be Merge pull request #7393 from ZappoMan/protectMeshBoxes
Fix for crash in recalculateMeshBoxes()
2016-03-21 15:46:28 -07:00
Brad Hefta-Gaub
d28db7bec6 fix typo 2016-03-21 14:47:53 -07:00
Brad Hefta-Gaub
2389295217 actually properly remove pending blendshapes 2016-03-21 13:04:37 -07:00
Brad Hefta-Gaub
492e71345a Revert "Revert "Fix ModelBlender crash""
This reverts commit f274cdcc7f.
2016-03-21 11:42:25 -07:00
Brad Hefta-Gaub
f274cdcc7f Revert "Fix ModelBlender crash" 2016-03-21 10:47:31 -07:00
Andrew Meadows
cd802a6549 Merge pull request #7406 from hyperlogic/tony/transparent-texture-fix
Model: fix for avatars with late loaded transparent textures.
2016-03-21 09:19:33 -07:00