From 74f6ee6fca9185d2dc458305038bb4ebe6bc385c Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Fri, 21 Jun 2013 14:33:37 -0700 Subject: [PATCH 1/6] Fixed spacing at parenthesis --- interface/src/Audio.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index fd72826dfb..dafaa02c5f 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -370,13 +370,13 @@ Audio::Audio(Oscilloscope* scope, int16_t initialJitterBufferSamples) : inputParameters.device = Pa_GetDefaultInputDevice(); inputParameters.channelCount = 2; // Stereo input inputParameters.sampleFormat = (paInt16 | paNonInterleaved); - inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultLowInputLatency; + inputParameters.suggestedLatency = Pa_GetDeviceInfo(inputParameters.device)->defaultLowInputLatency; inputParameters.hostApiSpecificStreamInfo = NULL; outputParameters.device = Pa_GetDefaultOutputDevice(); outputParameters.channelCount = 2; // Stereo output outputParameters.sampleFormat = (paInt16 | paNonInterleaved); - outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency; + outputParameters.suggestedLatency = Pa_GetDeviceInfo(outputParameters.device)->defaultLowOutputLatency; outputParameters.hostApiSpecificStreamInfo = NULL; outputPortAudioError(Pa_OpenStream(&_stream, From 4a241d6220bc56083603b8ab360e53186136c811 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 26 Jun 2013 18:21:40 -0700 Subject: [PATCH 2/6] turned off voxel grabbing --- interface/src/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 34aef00950..7c3adae63f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1567,7 +1567,7 @@ void Application::update(float deltaTime) { _myAvatar.getHead().setLookAtPosition(myLookAtFromMouse); // If we are dragging on a voxel, add thrust according to the amount the mouse is dragging - const float VOXEL_GRAB_THRUST = 5.0f; + const float VOXEL_GRAB_THRUST = 0.0f; if (_mousePressed && (_mouseVoxel.s != 0)) { glm::vec2 mouseDrag(_mouseX - _mouseDragStartedX, _mouseY - _mouseDragStartedY); glm::quat orientation = _myAvatar.getOrientation(); From 27266ee3b201d4b4bb7be6ff2696cb3c7d6bb1ca Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 27 Jun 2013 17:11:25 -0700 Subject: [PATCH 3/6] Third person camera transition doesn't happen on movement. --- interface/src/Application.cpp | 4 ++-- interface/src/Audio.h | 4 ++-- interface/src/Avatar.cpp | 2 +- interface/src/Balls.cpp | 24 ++++++++++++++++++------ 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ffeb080cdb..1dfba9d8a0 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1504,7 +1504,7 @@ void Application::init() { _myAvatar.init(); _myAvatar.setPosition(START_LOCATION); - _myCamera.setMode(CAMERA_MODE_THIRD_PERSON); + _myCamera.setMode(CAMERA_MODE_FIRST_PERSON); _myCamera.setModeShiftRate(1.0f); _myAvatar.setDisplayingLookatVectors(false); @@ -1732,7 +1732,7 @@ void Application::update(float deltaTime) { _myCamera.setModeShiftRate(1.0f); } } else { - const float THIRD_PERSON_SHIFT_VELOCITY = 2.0f; + const float THIRD_PERSON_SHIFT_VELOCITY = 1000.0f; const float TIME_BEFORE_SHIFT_INTO_FIRST_PERSON = 0.75f; const float TIME_BEFORE_SHIFT_INTO_THIRD_PERSON = 0.1f; diff --git a/interface/src/Audio.h b/interface/src/Audio.h index f6f4ff9347..8967878c06 100644 --- a/interface/src/Audio.h +++ b/interface/src/Audio.h @@ -11,8 +11,8 @@ #include -#include -#include +//#include +//#include #include #include diff --git a/interface/src/Avatar.cpp b/interface/src/Avatar.cpp index a603dbd472..e9140811e3 100644 --- a/interface/src/Avatar.cpp +++ b/interface/src/Avatar.cpp @@ -23,7 +23,7 @@ using namespace std; -const bool BALLS_ON = false; +const bool BALLS_ON = true; const bool USING_AVATAR_GRAVITY = true; const glm::vec3 DEFAULT_UP_DIRECTION (0.0f, 1.0f, 0.0f); const float YAW_MAG = 500.0; diff --git a/interface/src/Balls.cpp b/interface/src/Balls.cpp index 8b3f45ce40..20613b3448 100644 --- a/interface/src/Balls.cpp +++ b/interface/src/Balls.cpp @@ -19,7 +19,7 @@ #include "world.h" const float INITIAL_AREA = 0.2f; -const float BALL_RADIUS = 0.025f; +const float BALL_RADIUS = 0.016f; const glm::vec3 INITIAL_COLOR(0.62f, 0.74f, 0.91f); Balls::Balls(int numberOfBalls) { @@ -83,8 +83,9 @@ void Balls::render() { } const float CONSTANT_VELOCITY_DAMPING = 1.0f; -const float NOISE_SCALE = 0.00; -const float SPRING_FORCE = 1.0; +const float NOISE_SCALE = 0.06; +const float SPRING_FORCE = 30.0; +const float ORIGIN_DISTANCE = 0.1; const float SPRING_DAMPING = 1.0; void Balls::simulate(float deltaTime) { @@ -100,10 +101,21 @@ void Balls::simulate(float deltaTime) { // Add noise _balls[i].velocity += randVector() * NOISE_SCALE; + // spring force to origin + float separation = glm::distance(_balls[i].position, + _origin); + + _balls[i].velocity += + glm::normalize(_balls[i].position - _origin) + * deltaTime + * + SPRING_FORCE * + (ORIGIN_DISTANCE - separation); + // Approach target position - for (unsigned int i = 0; i < _numberOfBalls; ++i) { - _balls[i].position += randFloat() * deltaTime * (_balls[i].targetPosition - _balls[i].position); - } +// for (unsigned int i = 0; i < _numberOfBalls; ++i) { +// _balls[i].position += randFloat() * deltaTime * (_balls[i].targetPosition - _balls[i].position); +// } // Spring Force From c09fa3cc622a4dc188178683039923d1647ae8dd Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Fri, 28 Jun 2013 16:22:56 -0700 Subject: [PATCH 4/6] Turned avatar balls off --- interface/src/Avatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Avatar.cpp b/interface/src/Avatar.cpp index 6301e24bb4..78178cca4a 100755 --- a/interface/src/Avatar.cpp +++ b/interface/src/Avatar.cpp @@ -24,7 +24,7 @@ using namespace std; -const bool BALLS_ON = true; +const bool BALLS_ON = false; const bool USING_AVATAR_GRAVITY = true; const glm::vec3 DEFAULT_UP_DIRECTION (0.0f, 1.0f, 0.0f); const float YAW_MAG = 500.0; From c2ef960a9e96f9f4c09fcd61a0c18765c4bab97f Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Fri, 28 Jun 2013 16:31:59 -0700 Subject: [PATCH 5/6] Changed horizontal field of view to a constant, made it 90 degrees --- interface/src/Application.cpp | 2 +- interface/src/Camera.cpp | 3 ++- interface/src/Camera.h | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 100f103681..7472e8653f 100755 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -428,7 +428,7 @@ void Application::resizeGL(int width, int height) { } } else { camera.setAspectRatio(aspectRatio); - camera.setFieldOfView(fov = 60); + camera.setFieldOfView(fov = HORIZONTAL_FIELD_OF_VIEW_DEGREES); } // Tell our viewFrustum about this change diff --git a/interface/src/Camera.cpp b/interface/src/Camera.cpp index e2705ab02a..868de81bfe 100644 --- a/interface/src/Camera.cpp +++ b/interface/src/Camera.cpp @@ -25,6 +25,7 @@ const float CAMERA_MIRROR_MODE_UP_SHIFT = 0.0f; const float CAMERA_MIRROR_MODE_DISTANCE = 0.3f; const float CAMERA_MIRROR_MODE_TIGHTNESS = 100.0f; + Camera::Camera() { _needsToInitialize = true; @@ -35,7 +36,7 @@ Camera::Camera() { _linearModeShift = 0.0f; _mode = CAMERA_MODE_THIRD_PERSON; _tightness = 10.0f; // default - _fieldOfView = 60.0f; // default + _fieldOfView = HORIZONTAL_FIELD_OF_VIEW_DEGREES; _nearClip = 0.08f; // default _farClip = 50.0f * TREE_SCALE; // default _upShift = 0.0f; diff --git a/interface/src/Camera.h b/interface/src/Camera.h index 1f36d33f58..5e0dfaff95 100644 --- a/interface/src/Camera.h +++ b/interface/src/Camera.h @@ -11,6 +11,8 @@ #include #include +const float HORIZONTAL_FIELD_OF_VIEW_DEGREES = 90.0f; + enum CameraMode { CAMERA_MODE_NULL = -1, From e7113d26f89b68760db1a2e0d970a89df67cdc7a Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Mon, 1 Jul 2013 23:00:39 -0700 Subject: [PATCH 6/6] Add field of view as an option in preferences --- interface/src/Application.cpp | 14 +++++++++++++- interface/src/Application.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index d9dd9ae329..abd3a016be 100755 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -450,7 +450,7 @@ void Application::resizeGL(int width, int height) { } } else { camera.setAspectRatio(aspectRatio); - camera.setFieldOfView(fov = HORIZONTAL_FIELD_OF_VIEW_DEGREES); + camera.setFieldOfView(fov = _horizontalFieldOfView); } // Tell our viewFrustum about this change @@ -1046,6 +1046,12 @@ void Application::editPreferences() { avatarURL->setMinimumWidth(400); form->addRow("Avatar URL:", avatarURL); + QSpinBox* horizontalFieldOfView = new QSpinBox(); + horizontalFieldOfView->setMaximum(180); + horizontalFieldOfView->setMinimum(1); + horizontalFieldOfView->setValue(_horizontalFieldOfView); + form->addRow("Horizontal field of view (degrees):", horizontalFieldOfView); + QDoubleSpinBox* headCameraPitchYawScale = new QDoubleSpinBox(); headCameraPitchYawScale->setValue(_headCameraPitchYawScale); form->addRow("Head Camera Pitch/Yaw Scale:", headCameraPitchYawScale); @@ -1077,6 +1083,9 @@ void Application::editPreferences() { if (!shouldDynamicallySetJitterBuffer()) { _audio.setJitterBufferSamples(_audioJitterBufferSamples); } + _horizontalFieldOfView = horizontalFieldOfView->value(); + resizeGL(_glWidget->width(), _glWidget->height()); + } void Application::pair() { @@ -2909,6 +2918,8 @@ void Application::loadSettings(QSettings* settings) { _headCameraPitchYawScale = loadSetting(settings, "headCameraPitchYawScale", 0.0f); _audioJitterBufferSamples = loadSetting(settings, "audioJitterBufferSamples", 0); + _horizontalFieldOfView = loadSetting(settings, "horizontalFieldOfView", HORIZONTAL_FIELD_OF_VIEW_DEGREES); + settings->beginGroup("View Frustum Offset Camera"); // in case settings is corrupt or missing loadSetting() will check for NaN _viewFrustumOffsetYaw = loadSetting(settings, "viewFrustumOffsetYaw" , 0.0f); @@ -2930,6 +2941,7 @@ void Application::saveSettings(QSettings* settings) { settings->setValue("headCameraPitchYawScale", _headCameraPitchYawScale); settings->setValue("audioJitterBufferSamples", _audioJitterBufferSamples); + settings->setValue("horizontalFieldOfView", _horizontalFieldOfView); settings->beginGroup("View Frustum Offset Camera"); settings->setValue("viewFrustumOffsetYaw", _viewFrustumOffsetYaw); settings->setValue("viewFrustumOffsetPitch", _viewFrustumOffsetPitch); diff --git a/interface/src/Application.h b/interface/src/Application.h index e2b0cd21f4..fd3742fcd7 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -297,6 +297,8 @@ private: int _audioJitterBufferSamples; // Number of extra samples to wait before starting audio playback + float _horizontalFieldOfView; // In Degrees, doesn't apply to HMD like Oculus + HandControl _handControl; int _mouseX;