Commit graph

342 commits

Author SHA1 Message Date
Andrew Meadows
03bf1fe69d Add joint manipulations in model-frame 2014-06-03 14:04:09 -07:00
Andrew Meadows
f99489c157 rolling back previous change for IK instability 2014-06-03 10:40:30 -07:00
Andrew Meadows
d7be5faa9d unravel rotation code by giving proper names
The goal is: eliminate dependency on JointState::_combinedRotation
(which is joint-to-world) and store joint-to-model transforms instead
2014-06-02 14:43:25 -07:00
Andrew Meadows
9b3773fa3b remove 'fromBind' argument to getJointRotation() 2014-06-02 14:20:13 -07:00
Andrew Meadows
a62a270004 merge andrew/inertia into andrew/ragdoll
Conflicts:
	interface/src/avatar/Avatar.cpp
	interface/src/renderer/Model.h
2014-06-02 11:56:27 -07:00
Andrew Meadows
9e60b758df Made JointState transforms private.
Also changed some function names to be more descriptive.
Using "Hybrid" to describe frame with world-rotation + model-local-origin.
2014-06-02 11:34:59 -07:00
Andrew Meadows
8e7daed2b3 Merge upsrtream/master into andrew/inertia
Conflicts:
	interface/src/renderer/Model.cpp
2014-06-02 11:32:23 -07:00
Andrew Meadows
4eb4334ed8 replace Model::setJointRotation() with JointState::setRotation() 2014-05-30 09:57:32 -07:00
Andrew Meadows
557d7d428b minor rename and formatting 2014-05-30 08:28:15 -07:00
Andrew Meadows
e21dbd8726 rename updateWorldTransforms to computeTransforms 2014-05-30 08:20:11 -07:00
AndrewMeadows
5b74829318 Merge pull request #2955 from ey6es/cascade
Basic cascaded shadow maps for increased shadow draw distance.
2014-05-29 18:57:44 -07:00
Atlante45
17e3bd6110 CR comments 2014-05-29 18:24:21 -07:00
Andrzej Kapolka
67921c474e Merge branch 'master' of https://github.com/highfidelity/hifi into cascade 2014-05-29 17:09:09 -07:00
Andrzej Kapolka
12beef7fec Apply the new shadow distances to the models, too. 2014-05-29 17:08:36 -07:00
Andrew Meadows
6efa851104 minor cleanup + use 'fraction' instead of 'percent' 2014-05-29 15:44:27 -07:00
Andrzej Kapolka
391902f79b Cascaded shadow maps for models. 2014-05-29 15:30:40 -07:00
Atlante45
0eb56000ef Merge branch 'master' of https://github.com/highfidelity/hifi into click_drag_attach 2014-05-29 15:02:21 -07:00
Andrew Meadows
603333f634 add JointState::restoreRotation() 2014-05-29 14:11:17 -07:00
Andrew Meadows
2e99d316ac remove JointState::_translation
(use corresponding data in FBXJoint instead)
2014-05-29 12:52:05 -07:00
Andrzej Kapolka
09231f01f3 Retain "simple" shadows, supply cascaded as option. 2014-05-29 12:48:41 -07:00
Andrew Meadows
a898fcbf75 move details of getJointRotation() into JointState
also: remove unused getLeft/RightHandRotation() methods
2014-05-29 11:43:25 -07:00
Atlante45
37613f086b Merge branch 'master' of https://github.com/highfidelity/hifi into click_drag_attach
Conflicts:
	interface/src/renderer/Model.cpp
2014-05-29 10:28:09 -07:00
Andrew Meadows
4cf5628783 move applyRotationDelta() from Model to JointState 2014-05-29 10:00:55 -07:00
Andrew Meadows
29e093e2e0 fix float literals to agree with coding standard 2014-05-29 09:20:01 -07:00
Andrew Meadows
86d6fd45de safe copy of JointState data 2014-05-29 08:19:43 -07:00
Andrew Meadows
ec25982a58 add JointState::updateWorldTransform() 2014-05-28 17:51:17 -07:00
Andrew Meadows
b15b0fd96c cleaner initialization of JointState 2014-05-28 17:31:07 -07:00
Andrew Meadows
9f2a4ae626 Make JointState a proper class
JointState gets a pointer to its corresponding FBXJoint
2014-05-28 16:49:39 -07:00
Atlante45
8cd101ac57 Added getJointCombinedRotation to Models 2014-05-28 15:57:38 -07:00
Andrzej Kapolka
c3f6cab199 Working on cascading shadow maps. 2014-05-28 15:20:09 -07:00
Andrew Meadows
e74da5f2a0 merge upstream/master into andrew/inertia 2014-05-28 14:55:08 -07:00
Andrew Meadows
13f11e1056 Remove "fromBind" arg in Model::setJointRotation
It was always set 'true'.
2014-05-28 14:53:32 -07:00
Andrzej Kapolka
4cbc550820 Fix arguments to applyRotationDelta. 2014-05-28 12:03:57 -07:00
Andrew Meadows
ae3b792a35 move face/head code from Model into SkeletonModel 2014-05-27 15:28:41 -07:00
Andrew Meadows
6efa417742 move hand/arm stuff from Model to SkeletonModel 2014-05-27 15:06:50 -07:00
Andrew Meadows
afc7660d74 merge upstream/master into andrew/inertia 2014-05-27 14:57:44 -07:00
Andrew Meadows
07544c7b43 removal of unused getNeckRotation() 2014-05-27 12:52:44 -07:00
Andrzej Kapolka
edaa251e5f Provide option to disable avatar shadowing. 2014-05-27 11:43:34 -07:00
Andrzej Kapolka
70ab33b65b Some tricks to avoid shadow artifacts: render back faces to shadow buffer,
use polygon offset.
2014-05-27 10:54:18 -07:00
Clément Brisset
6bb933996f Merge pull request #2920 from ZappoMan/aacube
Add RayPick support for models
2014-05-24 17:03:59 -07:00
ZappoMan
9d9600aad5 fix max dimension 2014-05-23 22:08:31 -07:00
Andrzej Kapolka
ac2137c3b6 Fixed a couple copy and paste errors. 2014-05-23 16:56:10 -07:00
Andrzej Kapolka
0baf757c0d Basic support for shadows on models. 2014-05-23 16:35:51 -07:00
ZappoMan
ee523ff373 Merge branch 'master' of https://github.com/worklist/hifi into aacube 2014-05-23 11:17:59 -07:00
ZappoMan
39ed7f7b65 renaming of AABox to AACube, introduction of actual AABox 2014-05-23 10:45:04 -07:00
Andrzej Kapolka
4d6e8a2c9e Or rather, replaceMatchingPriorities. 2014-05-23 09:42:36 -07:00
Andrzej Kapolka
a32dfdb7bb We should let people "start" even if the animation is already playing (to
start again from the beginning).  Fixed an issue with competing priorities.
2014-05-22 17:05:28 -07:00
Andrzej Kapolka
8458477b9f Fixed a compile warning, provide means to start/stop animations. 2014-05-22 16:15:34 -07:00
Andrzej Kapolka
083543419d More priority bits. 2014-05-22 15:00:36 -07:00
Andrzej Kapolka
8717977437 Merge branch 'master' of https://github.com/highfidelity/hifi into animenu 2014-05-22 14:42:23 -07:00
Andrzej Kapolka
d4af39a9f5 Working on handling animation priorities to prevent Hydra move/restore from
interfering with scripted animations.
2014-05-22 14:41:46 -07:00
Andrew Meadows
b0c3655076 Fix for bad bounding shape for multi-root models. 2014-05-22 11:40:36 -07:00
Andrzej Kapolka
2eee9a32ac Removed debugging line. 2014-05-21 15:39:12 -07:00
Andrzej Kapolka
de7c05cb2d More animation controls. 2014-05-21 15:30:50 -07:00
Andrzej Kapolka
0e15c82e49 Allow setting masked joints for each animation. 2014-05-21 11:58:20 -07:00
Andrzej Kapolka
ef9407b1a6 Merge branch 'master' of https://github.com/highfidelity/hifi into animenu 2014-05-21 10:58:44 -07:00
Andrzej Kapolka
0dfd787034 Added some basic method to allow scripts to run/stop animations on the avatar. 2014-05-21 10:44:51 -07:00
Andrzej Kapolka
1022f1bec4 Added a priority setting so that we can control the order in which animations
are applied.
2014-05-21 09:40:49 -07:00
Andrzej Kapolka
f709ea61b5 Need to initialize this to false. 2014-05-20 17:55:48 -07:00
Andrzej Kapolka
7124b4a196 Mask joints from animation when explicitly set. 2014-05-20 17:10:53 -07:00
Andrzej Kapolka
d3e5e3ccf1 A couple explanatory comments. 2014-05-20 15:41:11 -07:00
Andrzej Kapolka
49a0645677 Animation bits. 2014-05-20 15:23:15 -07:00
ZappoMan
1278470a91 properly handle FSTs that have translations and rotations 2014-05-20 13:31:08 -07:00
Andrzej Kapolka
62e7a31602 More work on animation configuration. 2014-05-19 18:09:33 -07:00
Andrew Meadows
49a7f8c910 formatting some lines that are too long 2014-05-15 12:42:38 -07:00
Andrew Meadows
e98f5c7486 merge upstream/master into andrew/inertia
Conflicts:
	interface/src/renderer/Model.cpp
2014-05-15 12:33:09 -07:00
Andrew Meadows
4640587445 more correct model bounding capsule 2014-05-15 12:28:55 -07:00
ZappoMan
18de6dddec Merge branch 'master' of https://github.com/worklist/hifi into modelserver 2014-05-14 12:21:44 -07:00
Andrew Meadows
aad9d0441e merge upstream/master to andrew/bispinor
Conflicts:
	interface/src/avatar/Hand.cpp
	interface/src/avatar/SkeletonModel.cpp
	libraries/avatars/src/HandData.cpp
	libraries/avatars/src/HandData.h
2014-05-14 09:38:31 -07:00
Andrew Meadows
d2d9ca8788 optimization: only compute baseTransform once 2014-05-14 09:04:59 -07:00
ZappoMan
02bb816d5a Merge branch 'master' of https://github.com/worklist/hifi into modelserver 2014-05-13 09:44:49 -07:00
Andrzej Kapolka
363f545f7c After uploading, refresh the uploaded files so that they are immediately
redownloaded.
2014-05-09 17:50:08 -07:00
ZappoMan
106c8bffd8 first cut at animations in models 2014-05-09 16:08:06 -07:00
Philip Rosedale
c6b4b7c250 Merge pull request #2811 from AndrewMeadows/inertia
prevent avatar from getting trapped in voxel collisions
2014-05-07 16:54:28 -07:00
Andrew Meadows
9fc1c765d3 overhaul of CollisionInfo
store Cube info for sphereAACube collisions
2014-05-07 11:40:00 -07:00
Andrzej Kapolka
d0537e7ead Specular map support. 2014-05-06 17:32:10 -07:00
Andrzej Kapolka
2a32700a30 Merge branch 'master' of https://github.com/highfidelity/hifi 2014-05-05 17:03:31 -07:00
Andrzej Kapolka
f37460e39a Basic attachment rendering. 2014-05-05 15:46:09 -07:00
Andrew Meadows
5ffd307926 Merge upstream/master into andrew/inertia
Conflicts:
	interface/src/avatar/MyAvatar.h
2014-05-05 13:54:25 -07:00
Andrzej Kapolka
3a4dfb92f6 Let's try using the neck parent rotation, rather than the neck, to fix
separate heads.
2014-05-02 19:37:42 -07:00
ZappoMan
8443bb0afc fix a scale to fit bug, and add features to place models with hands 2014-05-02 13:19:33 -07:00
Andrzej Kapolka
3ebe1df6de Merge branch 'master' of https://github.com/highfidelity/hifi
Conflicts:
	interface/src/avatar/MyAvatar.h
2014-05-01 21:00:32 -07:00
Andrzej Kapolka
322e12b9de Allow users to clear the head URL and have no separate head model. 2014-05-01 17:55:16 -07:00
ZappoMan
f7da070d77 more work, cleanup names, remove translation use snap to center 2014-05-01 11:29:17 -07:00
ZappoMan
293963c546 implement snap to center in model 2014-05-01 09:02:41 -07:00
ZappoMan
bb6444f5a9 more hacking got it working 2014-05-01 07:30:56 -07:00
ZappoMan
85484affa9 hacking 2014-04-30 17:55:54 -07:00
Andrew Meadows
34aaf98b53 cleanup around how boundary shape is computed 2014-04-29 15:16:50 -07:00
Andrzej Kapolka
2bac802407 One more unused variable. 2014-04-23 12:30:39 -07:00
Andrzej Kapolka
c8c3cf3664 Remove unused propagate option for applyRotationDelta. 2014-04-23 12:29:01 -07:00
Andrzej Kapolka
09bb51261a Got that backwards. 2014-04-23 11:55:16 -07:00
Andrzej Kapolka
523498ee5b Revert to using weight that doesn't depend on number of free joints. 2014-04-23 11:52:22 -07:00
Andrzej Kapolka
511fc8367f More work on IK. 2014-04-23 11:34:34 -07:00
Andrzej Kapolka
f7bc1ae62c Working on integrating rotation into IK. 2014-04-23 10:47:24 -07:00
Andrzej Kapolka
c471a55f1f Merge branch 'master' of https://github.com/highfidelity/hifi 2014-04-23 09:40:51 -07:00
Andrzej Kapolka
e2558bdac0 Experimenting with tweaking the Euler angles so that z, rather than y, is in
[-pi/2, pi/2].
2014-04-18 17:16:20 -07:00
Stephen Birarda
0a7ea17d43 fix a geometry race condition crash 2014-04-18 15:10:15 -07:00
Andrzej Kapolka
743034c986 Need to transfer parent rotation to child. 2014-04-18 15:09:37 -07:00
Andrzej Kapolka
6add0dfb42 Tweaked Hydra "IK" to propagate delta rotations up the hierarchy while
preserving joint constraints.
2014-04-18 15:04:42 -07:00
Andrew Meadows
26487aad06 more correct bounding shapes for Models 2014-04-18 11:19:21 -07:00
Andrew Meadows
cfdbdad2d8 improved method for disabling bad joint shapes 2014-04-17 16:22:35 -07:00
Andrew Meadows
3072161a30 improved collision shapes of models 2014-04-17 15:18:46 -07:00
Andrzej Kapolka
a12dd916fa More plane intersection bits. 2014-04-10 11:24:45 -07:00
Andrzej Kapolka
f61c746b4a Merge branch 'master' of https://github.com/highfidelity/hifi 2014-04-10 09:45:23 -07:00
Andrzej Kapolka
9f58264cb6 Working on plane collisions, pushing back camera from intersecting avatars. 2014-04-09 18:07:56 -07:00
Andrew Meadows
22d2f84cff merge upstream/master into andrew/scripting 2014-04-09 15:38:56 -07:00
Andrew Meadows
e480064e66 rename more shapeShape() to be collideShapes() 2014-04-09 13:07:54 -07:00
Stephen Birarda
684c6b5372 run regex header replacement on all cpp files 2014-04-09 09:35:42 -07:00
Andrzej Kapolka
15e9d45dc3 Switched from storing Euler angles to using quaternions along with a
quaternion editor.  Also, use a default step of 0.01 for floats/doubles.
2014-04-07 15:41:42 -07:00
Andrzej Kapolka
a2b94aa433 Working on render modes. 2014-04-04 14:22:01 -07:00
Andrzej Kapolka
a0c7e4d3cc Working on model rendering modes. 2014-04-04 11:45:03 -07:00
Andrew Meadows
933cade6b0 Re-add fullUpdate hint to Model::simulate() 2014-04-02 16:34:33 -07:00
Andrew Meadows
97ba5250a5 Only simulate() Avatar Models when necessary
Also: rebuild collision shapes when Model scale changes
2014-04-02 12:01:18 -07:00
Andrew Meadows
b65855a384 merge upstream/master into avatar-interaction 2014-04-01 12:53:47 -07:00
Andrew Meadows
3d43956c11 bounding shape relative to model's root Joint 2014-04-01 11:39:40 -07:00
Andrew Meadows
03d04e194d Init bounding Extents for more correct shapes 2014-04-01 10:39:58 -07:00
Andrew Meadows
1bbdc9d78b Adding bounding capsule shape for Model
Also:
Cleaned up the automatic geometry LOD loading
Removed staticExtents data member from FBXGeometry
Split debug rendering of bounding shapes from joint shapes
2014-04-01 09:25:25 -07:00
Andrew Meadows
5406490719 rename _shapes -> _jointShapes
also stubbed Model::createBoundingShape()
2014-03-28 11:00:30 -07:00
Andrzej Kapolka
ca9f0c01c1 Couple of quick fixes: reset the skeleton joints when space is pressed as a
last resort to fix broken IK, don't render display names at the origin if
we don't have a skeleton model.
2014-03-27 11:08:55 -07:00
Andrew Meadows
fff7a36b54 merge upstream/master into physics project
Conflicts:
	interface/src/avatar/Hand.cpp
	interface/src/avatar/Hand.h
	interface/src/avatar/SkeletonModel.cpp
	interface/src/avatar/SkeletonModel.h
	interface/src/renderer/Model.h
2014-03-25 15:55:26 -07:00
Andrzej Kapolka
62884f1f4f Don't use textures/fancy shaders when rendering shadow map. Closes #2270. 2014-03-24 13:15:03 -07:00
Andrzej Kapolka
0fc0d50bda Only post the blender if we have blendable meshes to blend. 2014-03-18 17:19:42 -07:00
Andrzej Kapolka
635f3b6dc3 Perform the mesh blending in worker threads and only when we've actually
received new data.  Closes #2075.  Closes #2348.
2014-03-18 16:38:05 -07:00
Andrzej Kapolka
299dbb93ea Removed "springiness" bits. 2014-03-18 13:57:36 -07:00
Andrew Meadows
02c58447df merge upstream/master into "shapes" project
Conflicts:
	interface/src/avatar/MyAvatar.cpp
	interface/src/avatar/SkeletonModel.cpp
	interface/src/avatar/SkeletonModel.h
	libraries/avatars/src/HandData.h
	libraries/shared/src/SharedUtil.h
2014-03-18 12:41:20 -07:00
Andrzej Kapolka
5b30f932c1 Fix for slight graphical glitches on loading avatars. 2014-03-13 14:09:12 -07:00
Andrzej Kapolka
43feef3ebd Only update the full set of joints when we've received new data from the
mixer.  Closes #2274.
2014-03-13 12:03:02 -07:00
Andrzej Kapolka
ffe3717573 Enable back face culling on the opaque parts of avatars. 2014-03-12 15:10:33 -07:00
Andrzej Kapolka
e249b29b45 Merge pull request #2268 from AndrewMeadows/radians
prefer radians over degrees
2014-03-12 12:10:29 -07:00
Andrew Meadows
aa8c2fc8cb use radians instead of degrees (almost) everywhere 2014-03-11 17:26:58 -07:00
Andrzej Kapolka
bc3bba9240 Get rid of unused, expensive "average color" nonsense. 2014-03-11 14:01:23 -07:00
Andrzej Kapolka
c6655382d6 Initialize scale to unity. Closes #2232. 2014-03-10 10:52:46 -07:00
Andrew Meadows
47e340dafe Merge upstream/master
Conflicts:
	interface/src/avatar/MyAvatar.cpp
2014-03-07 09:16:33 -08:00
Andrzej Kapolka
44374732fa Further joint bits. 2014-03-06 19:30:24 -08:00
Andrzej Kapolka
c5ab32235f Merge branch 'master' of https://github.com/highfidelity/hifi into joints 2014-03-06 17:09:24 -08:00
Andrzej Kapolka
3adea84b81 Basic joint data sending. Closes #2166. 2014-03-06 17:07:29 -08:00
Andrew Meadows
868e92c0fa Merge upstream/master' into shapes branch 2014-03-06 12:45:43 -08:00
Andrew Meadows
778bdec6d8 Model now knows its bounding radius 2014-03-06 12:34:21 -08:00
Stephen Birarda
b705ec560f cleanup resources directory references by copying beside the executable 2014-03-06 11:46:49 -08:00
Stephen Birarda
403f91c988 update resource references to use Qt resource system 2014-03-06 10:41:11 -08:00
Andrzej Kapolka
a7af3bc284 Merge branch 'master' of https://github.com/highfidelity/hifi
Conflicts:
	interface/src/avatar/MyAvatar.cpp
2014-03-05 18:08:59 -08:00
Andrzej Kapolka
ad25455f86 Track hysteresis for next model separately, but just in case, don't use
recursion to fall back on hysteresis value.  Closes #2209.
2014-03-05 18:06:14 -08:00
Andrew Meadows
831a8cf580 remove unused cruft from Model class API 2014-03-05 12:15:34 -08:00
Andrew Meadows
a1856ac18b fix bad transform math for placing shapes 2014-03-05 11:57:07 -08:00
Andrew Meadows
7db5aaaf37 new collision pipeline for avatar shapes 2014-03-05 07:08:59 -08:00
Andrew Meadows
3d426a24f1 Fixing build warnings 2014-03-04 09:54:34 -08:00
Andrew Meadows
7ba5bc71ea Merge branch 'master' of ssh://github.com/highfidelity/hifi into shapes
Conflicts:
	interface/src/renderer/FBXReader.cpp
	interface/src/renderer/Model.cpp
	interface/src/renderer/Model.h
2014-03-04 09:01:24 -08:00
Andrew Meadows
4ef2067421 Use capsules for some joints and render them. 2014-03-03 17:49:24 -08:00
Andrew Meadows
1c0826d696 Add JointShapeInfo for joint shape calculations 2014-03-03 12:31:09 -08:00
Stephen Birarda
60eb588e96 remove some unecessary null pointer checks 2014-03-03 11:36:01 -08:00