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