Commit graph

84425 commits

Author SHA1 Message Date
HifiExperiments
6d1667df5a better picking against billboarded shapes other than spheres 2021-01-10 16:48:44 -08:00
HifiExperiments
bef0c79b67 billboard mode working on most entity types 2021-01-10 16:03:04 -08:00
Dale Glass
aab5b22e25 Skip duplicated log entries
This helps with log flooding. Successive repeated log messages will be skipped and counted,
the count will be output when a different message is logged.

A new option of 'keep_repeats' has been added to VIRCADIA_LOG_OPTIONS to disable this.
2021-01-09 19:39:32 +01:00
Phil Palmer
0f9117b978 Merge branch 'fix/alpha-zwrite' of https://github.com/Phil-Palmer/project-athena into fix/alpha-zwrite 2021-01-05 06:52:23 -05:00
Phil Palmer
1cdc3610c3 Disable z-write for transparent fonts, grid entities and teleport beams
as suggested in the review here: https://github.com/vircadia/vircadia/pull/953#pullrequestreview-560779456
2021-01-05 06:47:33 -05:00
Phil Palmer
12095fed96 Disable z-write for fonts, grid entities and teleport beams
as suggested in the review here: https://github.com/vircadia/vircadia/pull/953#pullrequestreview-560779456
2021-01-05 00:05:11 -05:00
Phil Palmer
265aeb7652 Merge branch 'fix/vr-recenter' of https://github.com/Phil-Palmer/project-athena into fix/vr-recenter 2021-01-04 15:55:54 -05:00
Phil Palmer
a54a40dc2c Apply suggestion from code review: fix debug message. 2021-01-04 15:55:34 -05:00
Phil Palmer
9f84b8384e Apply suggestion from code review: fix JSDoc comment. 2021-01-04 15:49:26 -05:00
HifiExperiments
1ccdfe37a6
Update libraries/entities/src/EntityItemProperties.cpp
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2021-01-04 12:14:35 -08:00
Phil Palmer
5d1bd5cc19 * Apply suggestions from code review
Fix JSDoc comments and debug messages.
2021-01-04 00:57:17 -05:00
Phil
646a5798e6
Apply suggestions from code review
Tidying (bracing style, spaces, remove final comma from enum, fix JSDoc comments).

Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2021-01-04 00:12:57 -05:00
HifiExperiments
030524c3ee CR and actually send property over wire 2021-01-03 21:03:43 -08:00
HifiExperiments
6e0bad814e working on billboard mode for all entity types 2021-01-03 20:33:08 -08:00
Phil Palmer
4f71cb5945 Disable z-write when drawing web entities with alpha < 1. 2021-01-03 22:59:31 -05:00
Phil Palmer
90799e10da Fix z-write enabled for transparent draws.
Fix z-write being enabled for transparencies in GeometryCache::getSimplePipeline and Procedural::Procedural (fixes https://github.com/vircadia/vircadia/issues/224).
Z-write is controlled by the 'writeMask' parameter of gpu::State::setDepthTest.
2021-01-03 16:31:51 -05:00
HifiExperiments
5dc45e895c more fixes and create checkbox defaults to checked 2021-01-02 19:18:54 -08:00
HifiExperiments
a072010b02 Merge remote-tracking branch 'upstream/master' into pivot 2021-01-02 17:13:24 -08:00
HifiExperiments
20e0c24163 cleanup + create 2021-01-02 00:04:24 -08:00
HifiExperiments
002271a4cc finishing touches 2021-01-01 21:52:16 -08:00
Phil Palmer
3cc08022fc Leaning and lean recentering now work as intended at any avatar scale.
Individually tested each of these scale fixes in third-person view.
Simplify withinBaseOfSupport.
Change input parameter from float& to float (isWithinThresholdHeightMode).
Debug: remove unnecessary Y offset that didn't scale properly with the avatar (drawBaseOfSupport).
2020-12-31 05:09:06 -05:00
Phil Palmer
4a0bde415b Fix an old confusing comment from 952b112271 2020-12-31 00:06:25 -05:00
Phil Palmer
ba5bea15b6 Merge branch 'fix/vr-recenter' of https://github.com/Phil-Palmer/project-athena into fix/vr-recenter 2020-12-30 23:16:30 -05:00
Phil Palmer
c5fe49bc30 Decouple MyAvatar.centerOfGravityModelEnabled from the user standing state.
Engine code no longer controls MyAvatar.centerOfGravityModelEnabled.  Maybe we should deprecate it now, since its reason to exist seemed to be only to disable the CG model while the user was sitting, which is now done more explicitly (see below).

MyAvatar::FollowHelper:
- rename shouldActivateHorizontal to shouldActivateHorizontal_userSitting, now private.
- rename shouldActivateHorizontalCG to shouldActivateHorizontal_userStanding, now private.
- add new shouldActivateHorizontal that calls one of the above based on the user's sit/stand state.
- these functions no longer modify their 'myAvatar' parameter.

Add USER_CAN_TURN_BODY_WHILE_SITTING (false), which retains the old rotation behaviour of lean recentering:
a lean recenter doesn't rotate the body if the user is sitting (new: unless the feet are tracked).
In other words, the lean recentering assumes the user isn't on a swivel chair and keeps the avatar pointing in the same direction.  It might be good to expose that as an option.  (Regardless, rotation recentering does kick-in if they turn too far).
2020-12-30 23:14:42 -05:00
Phil Palmer
dd2a11f53b Decouple MyAvatar.centerOfGravityModelEnabled from the user standing state.
Engine code no longer controls MyAvatar.centerOfGravityModelEnabled.  Maybe we should deprecate it now, since its reason to exist seemed to be only to disable the CG model while the user was sitting, which is now done more explicitly (see below).

MyAvatar::FollowHelper:
- rename shouldActivateHorizontal to shouldActivateHorizontal_userSitting, now private.
- rename shouldActivateHorizontalCG to shouldActivateHorizontal_userStanding, now private.
- add new shouldActivateHorizontal that calls one of the above based on the user's sit/stand state.
- these functions no longer modify their 'myAvatar' parameter.

Add USER_CAN_TURN_BODY_WHILE_SITTING (false), which retains the old rotation behaviour of lean recentering:
a lean recenter doesn't rotate the body if the user is sitting (new: unless the feet are tracked).
In other words, the lean recentering assumes the user isn't on a swivel chair and keeps the avatar pointing in the same direction.  It might be good to expose that as an option.  (Regardless, rotation recentering does kick-in if they turn too far).
2020-12-30 22:38:31 -05:00
Phil Palmer
a95d29d327 Fix leaning not using center-of-gravity model in mode 'Allow avatar to stand: When I'm standing'.
computeHipsInSensorFrame was accidentally setting useCenterOfGravityModel to false if !getHMDCrouchRecenterEnabled.  Now it sets it to true if !getHMDCrouchRecenterEnabled.  So if artificial standing is disabled, it uses center-of-gravity regardless of the user's sit/stand state.
2020-12-30 21:36:24 -05:00
Phil Palmer
44324584b4 Fix accidental change of bracing style. 2020-12-30 04:30:52 -05:00
Phil Palmer
976ed2b1d3 Merge branch 'fix/vr-recenter' of https://github.com/Phil-Palmer/project-athena into fix/vr-recenter 2020-12-30 04:22:16 -05:00
Phil Palmer
8d3e2ae9ee Remove MyAvatar "squat" recenter from ad6bbc7ff6
The "squat" recenter pre-dates the sit/stand detection, but the current version basically came from ad6bbc7ff6 in 2018.  I'm removing it because it doesn't seem useful anymore (with or without the other changes in this branch).

What it did (on the current master) :
- If "Avatar leaning behavior" was "Auto"
- and the user was standing
- but their head was more than 5cm below standing height
- and their chest was upright
- for 30 seconds
- do a vertical recenter so that the avatar stands straight (instead of having knees bent).
When the user stood up straight after that recenter, the avatar would hover off the ground until the next recenter (eg. walking).
2020-12-30 04:21:24 -05:00
Phil Palmer
ee0904d561 Remove MyAvatar "squat" recenter from ad6bbc7ff6
The "squat" recenter pre-dates the sit/stand detection, but the current version basically came from ad6bbc7ff6 in 2018.  I'm removing it because it doesn't seem useful anymore (with or without the other changes in this branch).

What it did (on the current master) :
- If "Avatar leaning behavior" was "Auto"
- and the user was standing
- but their head was more than 5cm below standing height
- and their chest was upright
- for 30 seconds
- do a vertical recenter so that the avatar stands straight (instead of having knees bent).
When the user stood up straight after that recenter, the avatar would hover off the ground until the next recenter (eg. walking).
2020-12-30 04:13:37 -05:00
Kalila
165537a4eb
Merge pull request #944 from HifiExperiments/physicsFix
Possible fix for bad physics performance
2020-12-30 03:04:17 -05:00
Phil Palmer
8cf7660993 Replace a tab with spaces. 2020-12-30 02:00:28 -05:00
Phil Palmer
8ca6421376 Correct the name of a scale factor (had inverted meaning). 2020-12-30 01:56:05 -05:00
Phil Palmer
cba79c72f5 Re-added API features that are no longer used internally; marked them as deprecated.
As suggested in the review here: https://github.com/vircadia/vircadia/pull/928/files#r549821976

Re-added and deprecated MyAvatar.userRecenterModel.  Retained the functionality of setUserRecenterModel, and approximated that of getUserRecenterModel (some stand+lean preference pairs had no equivalent before).

Re-added and deprecated MyAvatar.isSitStandStateLocked.  Approximated the functionality of getIsSitStandStateLocked.
Didn't retain that of setIsSitStandStateLocked, because it wouldn't be useful on its own; someone using it would probably want setUserRecenterModel instead (or new functions to set the standing and leaning preferences).

isSitStandStateLocked's reason to exist was that we could stop keeping track of the user's real-world sit/stand state (in updateSitStandState), and instead pretend the user was always standing (for SitStandModelType::ForceStand) or always sitting (for SitStandModelType::ForceSit).
That determined whether the avatar was allowed to lean (wouldn't lean if the user was sitting or in ForceSit).
Now though, the user explicitly chooses when the avatar may lean: never / just when the user is standing / even when the user is sitting.

These API features were removed in 2179c153de ("VR fixes for: couldn't sit on the floor, wrong walk directions").
2020-12-30 01:01:35 -05:00
Alezia Kurdis
ff7cf2fcd6
Adjust menu Item name
Action "Rotate as the Next Clicked Surface"
has been changed for:
"Rotate as Next Clicked Surface"

For now, it will be that. 
This feature might evolve soon to include a translation to the clicked surface.
So the name will eventually change again.
2020-12-30 00:23:28 -05:00
Alezia Kurdis
0db2d6f041
Minor Code Adjustments
Minor Code Adjustments
2020-12-29 22:19:11 -05:00
Phil Palmer
8c7c91ed6f Remove const from variable declarations as suggested in the review.
Suggested here: https://github.com/vircadia/vircadia/pull/928/files#r549830690

The ones I've left are either
- values known at compile time, eg. const float MIN_LENGTH_FOR_NORMALIZE = 0.061f;
- consts that were already there in the previous code, eg. const float MAX_DISPLACEMENT = 0.5f * _radius;
2020-12-29 19:31:35 -05:00
Phil Palmer
d49cdfff6b Remove accidental change of style in a variable declaration. 2020-12-29 18:31:42 -05:00
Phil
7e5680b2a6
Apply suggestions from code review
Tidying (bracing style, spaces, remove final comma from enum, fix JSDoc comment).

Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2020-12-29 18:25:17 -05:00
HifiExperiments
0f9f95f716 possible fix for physics 2020-12-28 23:46:37 -08:00
Phil Palmer
1e54d41f95 Remove static variable from MyAvatar::update (made it a member). 2020-12-28 05:37:06 -05:00
Phil Palmer
2be87fe7dc Fix VR recentering cases that gave incorrect vertical position.
Fix for MyAvatar sometimes hovering off the ground after foot tracking was enabled.  MyAvatar's body is now recentered when foot-tracking starts or ends (in MyAvatar::update).
Repro:
- Start without foot tracking, 'Allow my avatar to stand: Always'.
- Crouch, and wait a few seconds for the avatar to pop back to the standing position.
- Slowly stand straight so that the avatar raises off the ground without recentering (PS: is this a bug?).  If it recenters, retry from previous step.
- Calibrate foot tracking.  Previously the avatar would remain hovering off the ground until MyAvatar::centerBody was called.

Fix for MyAvatar popping to a standing position if the left foot lost tracking.  The recentering now takes into account if either of the feet are tracked.
Repro:
- Enable foot tracking (and ideally hips tracking).
- Sit on the floor.
- Cover the left foot sensor so it loses tracking.  Previously the avatar and viewpoint would pop to a standing position.

Optimisation: MyAvatar::update now stores bools indicating which body parts are tracked (_isBodyPartTracked).  This avoid unnecessary computations that came from using getControllerPoseInAvatarFrame to convert controller::Pose from sensor space to world space and then to avatar space, only to check if the pose was valid.
2020-12-27 22:13:09 -05:00
Phil Palmer
3e25e32f18 Revert temporary "added pragmas" (optimize off)
This reverts commit 20e4f952ab.
2020-12-27 02:52:52 -05:00
Phil Palmer
dec9e9d338 VR fix for different avatar scales.
Previously, if the avatar scale wasn't 1, the body and viewpoint would given the wrong vertical position in some situations, eg: getting up from click-to-sit; changing the 'Allow my avatar to stand' setting.
The avatar scale was being taken into account where it shouldn't have in MyAvatar::deriveBodyFromHMDSensor.
The bug started in 8b839fe71b ("VR fixes for different user heights and avatar scales".
Repro:
1. Set 'Allow my avatar to stand: Always'
2. Reduce the avatar scale to the minumum.
3. Set 'Allow my avatar to stand: When I stand'
4. Previously, the viewpoint would suddenly be below the floor.
2020-12-27 02:50:29 -05:00
Phil Palmer
c9cf7eb75d Merge branch 'fix/vr-recenter-PRAGMAS' into fix/vr-recenter 2020-12-26 23:22:16 -05:00
Phil Palmer
20e4f952ab added pragmas 2020-12-26 23:19:21 -05:00
daleglass
f894a0a141
Merge pull request #877 from vircadia/feature/domain-server-reporting-socket
Send address and port with each metaverse heartbeat.
2020-12-26 20:40:58 +01:00
Alezia Kurdis
ec55884dae
Add "Rotate As Next Clicked Surface"
Add "Rotate As Next Clicked Surface"
Add also "Rotate 90 degree on X axis", "Rotate 90 degree on Z axis" and "Rotate 90 degree on Z axis"
2020-12-24 23:05:06 -05:00
Alezia Kurdis
cd0293d635
Add "Rotate As Next Clicked Surface"
Add "Rotate As Next Clicked Surface"
Add also "Rotate 90 degree on X axis", "Rotate 90 degree on Z axis" and "Rotate 90 degree on Z axis"
2020-12-24 23:03:55 -05:00
Alezia Kurdis
c8a0ebdcd6
Add "Rotate As Next Clicked Surface"
Add "Rotate As Next Clicked Surface"
Add also "Rotate 90 degree on X axis", "Rotate 90 degree on Z axis" and "Rotate 90 degree on Z axis"
2020-12-24 23:02:57 -05:00