Don’t render collision if not own avatar, don’t check for collisions with voxel tree if not me.

This commit is contained in:
Philip Rosedale 2013-12-05 13:36:00 -08:00
parent 0d33593561
commit a7dacec63d
4 changed files with 100 additions and 97 deletions

View file

@ -785,7 +785,7 @@ void Avatar::renderBody(bool forceRenderHead) {
_head.render(alpha, false);
}
}
_hand.render();
_hand.render(false);
}
void Avatar::getSkinColors(glm::vec3& lighter, glm::vec3& darker) {

View file

@ -70,6 +70,7 @@ void Hand::simulate(float deltaTime, bool isMine) {
updateRaveGloveParticles(deltaTime);
}
if (isMine) {
// Create a voxel at fingertip if controller button is pressed
const float FINGERTIP_VOXEL_SIZE = 0.0125;
for (size_t i = 0; i < getNumPalms(); ++i) {
@ -124,6 +125,7 @@ void Hand::simulate(float deltaTime, bool isMine) {
}
}
}
}
}
void Hand::handleVoxelCollision(PalmData* palm, const glm::vec3& fingerTipPosition, VoxelTreeElement* voxel, float deltaTime) {
@ -217,7 +219,7 @@ void Hand::setRaveGloveEffectsMode(QKeyEvent* event) {
};
}
void Hand::render() {
void Hand::render( bool isMine) {
_renderAlpha = 1.0;
@ -229,6 +231,7 @@ void Hand::render() {
// Use mood lighting for the hand itself
setRaveLights(RAVE_LIGHTS_AVATAR);
}
renderLeapFingerTrails();
renderLeapHands();
}
@ -242,6 +245,7 @@ void Hand::render() {
}
}
if (isMine) {
// If hand/voxel collision has happened, render a little expanding sphere
if (_collisionAge > 0.f) {
float opacity = glm::clamp(1.f - (_collisionAge / _collisionDuration), 0.f, 1.f);
@ -255,8 +259,6 @@ void Hand::render() {
}
}
// If hand controller buttons pressed, render stuff as needed
if (getPalms().size() > 0) {
for (size_t i = 0; i < getPalms().size(); ++i) {
@ -294,6 +296,7 @@ void Hand::render() {
}
}
}
}
glEnable(GL_DEPTH_TEST);

View file

@ -52,7 +52,7 @@ public:
void init();
void reset();
void simulate(float deltaTime, bool isMine);
void render();
void render(bool isMine);
void renderRaveGloveStage();
void setRaveLights(RaveLightsSetting setting);

View file

@ -728,7 +728,7 @@ void MyAvatar::renderBody(bool forceRenderHead) {
_head.render(alpha, false);
}
}
_hand.render();
_hand.render(true);
}
void MyAvatar::updateThrust(float deltaTime, Transmitter * transmitter) {