From 4c7737443eec0e106f76a335ccd8b93281b45d5d Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 12:11:30 -0700 Subject: [PATCH 01/10] Fix for OS X warning. --- libraries/metavoxels/src/MetavoxelData.cpp | 6 +++--- libraries/metavoxels/src/MetavoxelData.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/metavoxels/src/MetavoxelData.cpp b/libraries/metavoxels/src/MetavoxelData.cpp index 8a6b0bc16a..c31be16c7a 100644 --- a/libraries/metavoxels/src/MetavoxelData.cpp +++ b/libraries/metavoxels/src/MetavoxelData.cpp @@ -228,7 +228,7 @@ public: Spanner* getSpanner() const { return _spanner; } float getDistance() const { return _distance; } - virtual bool visit(Spanner* spanner, float distance); + virtual bool visitSpanner(Spanner* spanner, float distance); private: @@ -243,7 +243,7 @@ FirstRaySpannerIntersectionVisitor::FirstRaySpannerIntersectionVisitor( _spanner(NULL) { } -bool FirstRaySpannerIntersectionVisitor::visit(Spanner* spanner, float distance) { +bool FirstRaySpannerIntersectionVisitor::visitSpanner(Spanner* spanner, float distance) { _spanner = spanner; _distance = distance; return false; @@ -938,7 +938,7 @@ int RaySpannerIntersectionVisitor::visit(MetavoxelInfo& info, float distance) { } qStableSort(spannerDistances); foreach (const SpannerDistance& spannerDistance, spannerDistances) { - if (!visit(spannerDistance.spanner, spannerDistance.distance)) { + if (!visitSpanner(spannerDistance.spanner, spannerDistance.distance)) { return SHORT_CIRCUIT; } } diff --git a/libraries/metavoxels/src/MetavoxelData.h b/libraries/metavoxels/src/MetavoxelData.h index 7e0a863a3b..040132effa 100644 --- a/libraries/metavoxels/src/MetavoxelData.h +++ b/libraries/metavoxels/src/MetavoxelData.h @@ -302,7 +302,7 @@ public: /// Visits a spanner that the ray intersects. /// \return true to continue, false to short-circuit the tour - virtual bool visit(Spanner* spanner, float distance) = 0; + virtual bool visitSpanner(Spanner* spanner, float distance) = 0; virtual void prepare(); virtual int visit(MetavoxelInfo& info, float distance); From 064f784db13d749296510538dbdb0414e3206117 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 12:23:23 -0700 Subject: [PATCH 02/10] More OS X warning fixes. --- .../metavoxels/src/AttributeRegistry.cpp | 26 ++++++++++--------- libraries/metavoxels/src/AttributeRegistry.h | 24 ++++++++--------- libraries/metavoxels/src/MetavoxelData.cpp | 16 ++++++------ 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/libraries/metavoxels/src/AttributeRegistry.cpp b/libraries/metavoxels/src/AttributeRegistry.cpp index 9ec37acd80..ccb6d3970e 100644 --- a/libraries/metavoxels/src/AttributeRegistry.cpp +++ b/libraries/metavoxels/src/AttributeRegistry.cpp @@ -155,27 +155,27 @@ Attribute::Attribute(const QString& name) : Attribute::~Attribute() { } -void Attribute::read(MetavoxelData& data, MetavoxelStreamState& state) { +void Attribute::readMetavoxelRoot(MetavoxelData& data, MetavoxelStreamState& state) { data.createRoot(state.attribute)->read(state); } -void Attribute::write(const MetavoxelNode& root, MetavoxelStreamState& state) { +void Attribute::writeMetavoxelRoot(const MetavoxelNode& root, MetavoxelStreamState& state) { root.write(state); } -void Attribute::readDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state) { +void Attribute::readMetavoxelDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state) { data.createRoot(state.attribute)->readDelta(reference, state); } -void Attribute::writeDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state) { +void Attribute::writeMetavoxelDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state) { root.writeDelta(reference, state); } -void Attribute::readSubdivision(MetavoxelData& data, MetavoxelStreamState& state) { +void Attribute::readMetavoxelSubdivision(MetavoxelData& data, MetavoxelStreamState& state) { data.getRoot(state.attribute)->readSubdivision(state); } -void Attribute::writeSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state) { +void Attribute::writeMetavoxelSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state) { root.writeSubdivision(state); } @@ -327,7 +327,7 @@ SpannerSetAttribute::SpannerSetAttribute(const QString& name, const QMetaObject* SharedObjectSetAttribute(name, metaObject) { } -void SpannerSetAttribute::read(MetavoxelData& data, MetavoxelStreamState& state) { +void SpannerSetAttribute::readMetavoxelRoot(MetavoxelData& data, MetavoxelStreamState& state) { forever { SharedObjectPointer object; state.stream >> object; @@ -338,13 +338,14 @@ void SpannerSetAttribute::read(MetavoxelData& data, MetavoxelStreamState& state) } } -void SpannerSetAttribute::write(const MetavoxelNode& root, MetavoxelStreamState& state) { +void SpannerSetAttribute::writeMetavoxelRoot(const MetavoxelNode& root, MetavoxelStreamState& state) { Spanner::incrementVisit(); root.writeSpanners(state); state.stream << SharedObjectPointer(); } -void SpannerSetAttribute::readDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state) { +void SpannerSetAttribute::readMetavoxelDelta(MetavoxelData& data, + const MetavoxelNode& reference, MetavoxelStreamState& state) { forever { SharedObjectPointer object; state.stream >> object; @@ -355,13 +356,14 @@ void SpannerSetAttribute::readDelta(MetavoxelData& data, const MetavoxelNode& re } } -void SpannerSetAttribute::writeDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state) { +void SpannerSetAttribute::writeMetavoxelDelta(const MetavoxelNode& root, + const MetavoxelNode& reference, MetavoxelStreamState& state) { Spanner::incrementVisit(); root.writeSpannerDelta(reference, state); state.stream << SharedObjectPointer(); } -void SpannerSetAttribute::readSubdivision(MetavoxelData& data, MetavoxelStreamState& state) { +void SpannerSetAttribute::readMetavoxelSubdivision(MetavoxelData& data, MetavoxelStreamState& state) { forever { SharedObjectPointer object; state.stream >> object; @@ -372,7 +374,7 @@ void SpannerSetAttribute::readSubdivision(MetavoxelData& data, MetavoxelStreamSt } } -void SpannerSetAttribute::writeSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state) { +void SpannerSetAttribute::writeMetavoxelSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state) { Spanner::incrementVisit(); root.writeSpannerSubdivision(state); state.stream << SharedObjectPointer(); diff --git a/libraries/metavoxels/src/AttributeRegistry.h b/libraries/metavoxels/src/AttributeRegistry.h index 3405f90315..ba19a3b0d2 100644 --- a/libraries/metavoxels/src/AttributeRegistry.h +++ b/libraries/metavoxels/src/AttributeRegistry.h @@ -177,14 +177,14 @@ public: virtual void readDelta(Bitstream& in, void*& value, void* reference, bool isLeaf) const { read(in, value, isLeaf); } virtual void writeDelta(Bitstream& out, void* value, void* reference, bool isLeaf) const { write(out, value, isLeaf); } - virtual void read(MetavoxelData& data, MetavoxelStreamState& state); - virtual void write(const MetavoxelNode& root, MetavoxelStreamState& state); + virtual void readMetavoxelRoot(MetavoxelData& data, MetavoxelStreamState& state); + virtual void writeMetavoxelRoot(const MetavoxelNode& root, MetavoxelStreamState& state); - virtual void readDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state); - virtual void writeDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state); + virtual void readMetavoxelDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state); + virtual void writeMetavoxelDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state); - virtual void readSubdivision(MetavoxelData& data, MetavoxelStreamState& state); - virtual void writeSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state); + virtual void readMetavoxelSubdivision(MetavoxelData& data, MetavoxelStreamState& state); + virtual void writeMetavoxelSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state); virtual bool equal(void* first, void* second) const = 0; @@ -355,14 +355,14 @@ public: Q_INVOKABLE SpannerSetAttribute(const QString& name = QString(), const QMetaObject* metaObject = &SharedObject::staticMetaObject); - virtual void read(MetavoxelData& data, MetavoxelStreamState& state); - virtual void write(const MetavoxelNode& root, MetavoxelStreamState& state); + virtual void readMetavoxelRoot(MetavoxelData& data, MetavoxelStreamState& state); + virtual void writeMetavoxelRoot(const MetavoxelNode& root, MetavoxelStreamState& state); - virtual void readDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state); - virtual void writeDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state); + virtual void readMetavoxelDelta(MetavoxelData& data, const MetavoxelNode& reference, MetavoxelStreamState& state); + virtual void writeMetavoxelDelta(const MetavoxelNode& root, const MetavoxelNode& reference, MetavoxelStreamState& state); - virtual void readSubdivision(MetavoxelData& data, MetavoxelStreamState& state); - virtual void writeSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state); + virtual void readMetavoxelSubdivision(MetavoxelData& data, MetavoxelStreamState& state); + virtual void writeMetavoxelSubdivision(const MetavoxelNode& root, MetavoxelStreamState& state); }; #endif /* defined(__interface__AttributeRegistry__) */ diff --git a/libraries/metavoxels/src/MetavoxelData.cpp b/libraries/metavoxels/src/MetavoxelData.cpp index c31be16c7a..08cd62f30d 100644 --- a/libraries/metavoxels/src/MetavoxelData.cpp +++ b/libraries/metavoxels/src/MetavoxelData.cpp @@ -312,7 +312,7 @@ void MetavoxelData::read(Bitstream& in, const MetavoxelLOD& lod) { break; } MetavoxelStreamState state = { getMinimum(), _size, attribute, in, lod, lod }; - attribute->read(*this, state); + attribute->readMetavoxelRoot(*this, state); } } @@ -321,7 +321,7 @@ void MetavoxelData::write(Bitstream& out, const MetavoxelLOD& lod) const { for (QHash::const_iterator it = _roots.constBegin(); it != _roots.constEnd(); it++) { out << it.key(); MetavoxelStreamState state = { getMinimum(), _size, it.key(), out, lod, lod }; - it.key()->write(*it.value(), state); + it.key()->writeMetavoxelRoot(*it.value(), state); } out << AttributePointer(); } @@ -360,13 +360,13 @@ void MetavoxelData::readDelta(const MetavoxelData& reference, const MetavoxelLOD in >> changed; if (changed) { oldRoot->incrementReferenceCount(); - attribute->readDelta(*this, *oldRoot, state); + attribute->readMetavoxelDelta(*this, *oldRoot, state); oldRoot->decrementReferenceCount(attribute); } else { - attribute->readSubdivision(*this, state); + attribute->readMetavoxelSubdivision(*this, state); } } else { - attribute->read(*this, state); + attribute->readMetavoxelRoot(*this, state); } } @@ -415,13 +415,13 @@ void MetavoxelData::writeDelta(const MetavoxelData& reference, const MetavoxelLO if (referenceRoot) { if (it.value() == referenceRoot) { out << false; - it.key()->writeSubdivision(*it.value(), state); + it.key()->writeMetavoxelSubdivision(*it.value(), state); } else { out << true; - it.key()->writeDelta(*it.value(), *referenceRoot, state); + it.key()->writeMetavoxelDelta(*it.value(), *referenceRoot, state); } } else { - it.key()->write(*it.value(), state); + it.key()->writeMetavoxelRoot(*it.value(), state); } } } From f1145272eb44900e6d86cf3f9ecb7fea26f6dcf4 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 12:29:01 -0700 Subject: [PATCH 03/10] Signed/unsigned fix. --- interface/src/devices/SixenseManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/devices/SixenseManager.cpp b/interface/src/devices/SixenseManager.cpp index 287aa4e5f6..0482dbf84c 100644 --- a/interface/src/devices/SixenseManager.cpp +++ b/interface/src/devices/SixenseManager.cpp @@ -60,7 +60,7 @@ void SixenseManager::update(float deltaTime) { // Either find a palm matching the sixense controller, or make a new one PalmData* palm; bool foundHand = false; - for (int j = 0; j < hand->getNumPalms(); j++) { + for (size_t j = 0; j < hand->getNumPalms(); j++) { if (hand->getPalms()[j].getSixenseID() == data.controller_index) { palm = &(hand->getPalms()[j]); foundHand = true; @@ -128,7 +128,7 @@ void SixenseManager::update(float deltaTime) { } // if the controllers haven't been moved in a while, disable - const int MOVEMENT_DISABLE_DURATION = 30 * 1000 * 1000; + const unsigned int MOVEMENT_DISABLE_DURATION = 30 * 1000 * 1000; if (usecTimestampNow() - _lastMovement > MOVEMENT_DISABLE_DURATION) { for (vector::iterator it = hand->getPalms().begin(); it != hand->getPalms().end(); it++) { it->setActive(false); From f088912ecfa51bc97fca3d0b6a70a0df38c1abc7 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 12:51:43 -0700 Subject: [PATCH 04/10] More GCC warning fixes. --- interface/src/avatar/Avatar.cpp | 3 --- interface/src/avatar/SkeletonModel.cpp | 2 +- interface/src/renderer/FBXReader.cpp | 4 ++-- libraries/metavoxels/src/AttributeRegistry.h | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 6cd7523a14..ea7ffc6f2b 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -109,9 +109,6 @@ void Avatar::simulate(float deltaTime) { _shouldRenderBillboard = true; } - // copy velocity so we can use it later for acceleration - glm::vec3 oldVelocity = getVelocity(); - getHand()->simulate(deltaTime, false); _skeletonModel.setLODDistance(getLODDistance()); diff --git a/interface/src/avatar/SkeletonModel.cpp b/interface/src/avatar/SkeletonModel.cpp index 4699b360f6..f405358710 100644 --- a/interface/src/avatar/SkeletonModel.cpp +++ b/interface/src/avatar/SkeletonModel.cpp @@ -146,7 +146,7 @@ void SkeletonModel::applyPalmData(int jointIndex, const QVector& fingerJoin // rotate palm according to average finger direction float directionLength = glm::length(direction); - const int MIN_ROTATION_FINGERS = 3; + const unsigned int MIN_ROTATION_FINGERS = 3; if (directionLength > EPSILON && palm.getNumFingers() >= MIN_ROTATION_FINGERS) { applyRotationDelta(jointIndex, rotationBetween(palmRotation * glm::vec3(-sign, 0.0f, 0.0f), direction), false); getJointRotation(jointIndex, palmRotation, true); diff --git a/interface/src/renderer/FBXReader.cpp b/interface/src/renderer/FBXReader.cpp index cda14dc807..8bf5583a02 100644 --- a/interface/src/renderer/FBXReader.cpp +++ b/interface/src/renderer/FBXReader.cpp @@ -66,7 +66,7 @@ template QVariant readBinaryArray(QDataStream& in) { in >> compressedLength; QVector values; - const int DEFLATE_ENCODING = 1; + const unsigned int DEFLATE_ENCODING = 1; if (encoding == DEFLATE_ENCODING) { // preface encoded data with uncompressed length QByteArray compressed(sizeof(quint32) + compressedLength, 0); @@ -163,7 +163,7 @@ FBXNode parseBinaryFBXNode(QDataStream& in) { in >> nameLength; FBXNode node; - const int MIN_VALID_OFFSET = 40; + const unsigned int MIN_VALID_OFFSET = 40; if (endOffset < MIN_VALID_OFFSET || nameLength == 0) { // use a null name to indicate a null node return node; diff --git a/libraries/metavoxels/src/AttributeRegistry.h b/libraries/metavoxels/src/AttributeRegistry.h index ba19a3b0d2..16968da1b2 100644 --- a/libraries/metavoxels/src/AttributeRegistry.h +++ b/libraries/metavoxels/src/AttributeRegistry.h @@ -265,7 +265,7 @@ template inline bool SimpleInlineAttribute::merge(vo /// Provides appropriate averaging for RGBA values. class QRgbAttribute : public InlineAttribute { Q_OBJECT - Q_PROPERTY(int defaultValue MEMBER _defaultValue) + Q_PROPERTY(unsigned int defaultValue MEMBER _defaultValue) public: From 6fb313cc435374f5d102836177daac812349bd6f Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 13:03:59 -0700 Subject: [PATCH 05/10] Allow streaming uints. --- libraries/metavoxels/src/AttributeRegistry.h | 2 +- libraries/metavoxels/src/Bitstream.cpp | 12 ++++++++++++ libraries/metavoxels/src/Bitstream.h | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libraries/metavoxels/src/AttributeRegistry.h b/libraries/metavoxels/src/AttributeRegistry.h index 16968da1b2..b6a415bef7 100644 --- a/libraries/metavoxels/src/AttributeRegistry.h +++ b/libraries/metavoxels/src/AttributeRegistry.h @@ -265,7 +265,7 @@ template inline bool SimpleInlineAttribute::merge(vo /// Provides appropriate averaging for RGBA values. class QRgbAttribute : public InlineAttribute { Q_OBJECT - Q_PROPERTY(unsigned int defaultValue MEMBER _defaultValue) + Q_PROPERTY(uint defaultValue MEMBER _defaultValue) public: diff --git a/libraries/metavoxels/src/Bitstream.cpp b/libraries/metavoxels/src/Bitstream.cpp index 0af44eaae6..f80ef3aa28 100644 --- a/libraries/metavoxels/src/Bitstream.cpp +++ b/libraries/metavoxels/src/Bitstream.cpp @@ -23,6 +23,7 @@ REGISTER_SIMPLE_TYPE_STREAMER(bool) REGISTER_SIMPLE_TYPE_STREAMER(int) +REGISTER_SIMPLE_TYPE_STREAMER(uint) REGISTER_SIMPLE_TYPE_STREAMER(float) REGISTER_SIMPLE_TYPE_STREAMER(QByteArray) REGISTER_SIMPLE_TYPE_STREAMER(QColor) @@ -238,6 +239,17 @@ Bitstream& Bitstream::operator>>(int& value) { return *this; } +Bitstream& Bitstream::operator<<(uint value) { + return write(&value, 32); +} + +Bitstream& Bitstream::operator>>(uint& value) { + quint32 sizedValue; + read(&sizedValue, 32); + value = sizedValue; + return *this; +} + Bitstream& Bitstream::operator<<(float value) { return write(&value, 32); } diff --git a/libraries/metavoxels/src/Bitstream.h b/libraries/metavoxels/src/Bitstream.h index 297d265d97..ca26509d60 100644 --- a/libraries/metavoxels/src/Bitstream.h +++ b/libraries/metavoxels/src/Bitstream.h @@ -254,6 +254,9 @@ public: Bitstream& operator<<(int value); Bitstream& operator>>(int& value); + Bitstream& operator<<(uint value); + Bitstream& operator>>(uint& value); + Bitstream& operator<<(float value); Bitstream& operator>>(float& value); From 800be7eef47af7795f2c7337c2dd99456228f42e Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 13:38:16 -0700 Subject: [PATCH 06/10] One more degree conversion. --- interface/src/ui/MetavoxelEditor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/ui/MetavoxelEditor.cpp b/interface/src/ui/MetavoxelEditor.cpp index b1842e0619..eed8a7b6f3 100644 --- a/interface/src/ui/MetavoxelEditor.cpp +++ b/interface/src/ui/MetavoxelEditor.cpp @@ -387,7 +387,7 @@ void BoxSetTool::render() { glm::quat rotation = _editor->getGridRotation(); glm::vec3 axis = glm::axis(rotation); - glRotatef(glm::angle(rotation), axis.x, axis.y, axis.z); + glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z); glm::quat inverseRotation = glm::inverse(rotation); glm::vec3 rayOrigin = inverseRotation * Application::getInstance()->getMouseRayOrigin(); From f85f49caa624a0abcf102d5a6450c5ec60b05ec0 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 14:03:22 -0700 Subject: [PATCH 07/10] Might as well update this. --- interface/interface_en.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/interface_en.ts b/interface/interface_en.ts index 685c6e3f67..f700be655c 100644 --- a/interface/interface_en.ts +++ b/interface/interface_en.ts @@ -4,22 +4,22 @@ Application - + Export Voxels - + Sparse Voxel Octree Files (*.svo) - + Open Script - + JavaScript Files (*.js) From 889c1358fc100fdd3c51d8bb15f50e2a70a840d0 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 14:56:52 -0700 Subject: [PATCH 08/10] Increase the distance at which avatars glow when moving. --- interface/src/avatar/Avatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index ea7ffc6f2b..4ad7a90d6f 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -189,7 +189,7 @@ void Avatar::render(bool forShadowMap) { { // glow when moving in the distance - const float GLOW_DISTANCE = 5.0f; + const float GLOW_DISTANCE = 10.0f; Glower glower(_moving && lengthToTarget > GLOW_DISTANCE && !forShadowMap ? 1.0f : 0.0f); // render body From bab74e9cd4fe0faeea5fdd8bd8df06f70b57c960 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 15:01:09 -0700 Subject: [PATCH 09/10] Push the distance back even more. --- interface/src/avatar/Avatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 4ad7a90d6f..b7e3d675a5 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -189,7 +189,7 @@ void Avatar::render(bool forShadowMap) { { // glow when moving in the distance - const float GLOW_DISTANCE = 10.0f; + const float GLOW_DISTANCE = 20.0f; Glower glower(_moving && lengthToTarget > GLOW_DISTANCE && !forShadowMap ? 1.0f : 0.0f); // render body From ffe371757343f2edabea23713c839b39ddedc61b Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 12 Mar 2014 15:10:33 -0700 Subject: [PATCH 10/10] Enable back face culling on the opaque parts of avatars. --- interface/src/renderer/Model.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/renderer/Model.cpp b/interface/src/renderer/Model.cpp index f657ef01d7..21fdc80858 100644 --- a/interface/src/renderer/Model.cpp +++ b/interface/src/renderer/Model.cpp @@ -328,6 +328,8 @@ bool Model::render(float alpha) { glDisable(GL_COLOR_MATERIAL); + glEnable(GL_CULL_FACE); + // render opaque meshes with alpha testing glEnable(GL_ALPHA_TEST); @@ -339,8 +341,6 @@ bool Model::render(float alpha) { // render translucent meshes afterwards, with back face culling - glEnable(GL_CULL_FACE); - renderMeshes(alpha, true); glDisable(GL_CULL_FACE);