mirror of
https://github.com/overte-org/overte.git
synced 2025-06-16 11:40:16 +02:00
Merge branch 'master' of https://github.com/highfidelity/hifi into correct-target-frame-rate
This commit is contained in:
commit
2f27afd2e5
7 changed files with 37 additions and 81 deletions
|
@ -33,8 +33,6 @@ OctreeQueryNode::OctreeQueryNode() :
|
||||||
_lastTimeBagEmpty(0),
|
_lastTimeBagEmpty(0),
|
||||||
_viewFrustumChanging(false),
|
_viewFrustumChanging(false),
|
||||||
_viewFrustumJustStoppedChanging(true),
|
_viewFrustumJustStoppedChanging(true),
|
||||||
_currentPacketIsColor(true),
|
|
||||||
_currentPacketIsCompressed(false),
|
|
||||||
_octreeSendThread(NULL),
|
_octreeSendThread(NULL),
|
||||||
_lastClientBoundaryLevelAdjust(0),
|
_lastClientBoundaryLevelAdjust(0),
|
||||||
_lastClientOctreeSizeScale(DEFAULT_OCTREE_SIZE_SCALE),
|
_lastClientOctreeSizeScale(DEFAULT_OCTREE_SIZE_SCALE),
|
||||||
|
@ -179,14 +177,9 @@ void OctreeQueryNode::resetOctreePacket() {
|
||||||
|
|
||||||
// If we're moving, and the client asked for low res, then we force monochrome, otherwise, use
|
// If we're moving, and the client asked for low res, then we force monochrome, otherwise, use
|
||||||
// the clients requested color state.
|
// the clients requested color state.
|
||||||
_currentPacketIsCompressed = getWantCompression();
|
|
||||||
OCTREE_PACKET_FLAGS flags = 0;
|
OCTREE_PACKET_FLAGS flags = 0;
|
||||||
if (_currentPacketIsColor) {
|
setAtBit(flags, PACKET_IS_COLOR_BIT); // always color
|
||||||
setAtBit(flags, PACKET_IS_COLOR_BIT);
|
setAtBit(flags, PACKET_IS_COMPRESSED_BIT); // always compressed
|
||||||
}
|
|
||||||
if (_currentPacketIsCompressed) {
|
|
||||||
setAtBit(flags, PACKET_IS_COMPRESSED_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
_octreePacket->reset();
|
_octreePacket->reset();
|
||||||
|
|
||||||
|
@ -211,10 +204,9 @@ void OctreeQueryNode::writeToPacket(const unsigned char* buffer, unsigned int by
|
||||||
|
|
||||||
// compressed packets include lead bytes which contain compressed size, this allows packing of
|
// compressed packets include lead bytes which contain compressed size, this allows packing of
|
||||||
// multiple compressed portions together
|
// multiple compressed portions together
|
||||||
if (_currentPacketIsCompressed) {
|
|
||||||
OCTREE_PACKET_INTERNAL_SECTION_SIZE sectionSize = bytes;
|
OCTREE_PACKET_INTERNAL_SECTION_SIZE sectionSize = bytes;
|
||||||
_octreePacket->writePrimitive(sectionSize);
|
_octreePacket->writePrimitive(sectionSize);
|
||||||
}
|
|
||||||
if (bytes <= _octreePacket->bytesAvailableForWrite()) {
|
if (bytes <= _octreePacket->bytesAvailableForWrite()) {
|
||||||
_octreePacket->write(reinterpret_cast<const char*>(buffer), bytes);
|
_octreePacket->write(reinterpret_cast<const char*>(buffer), bytes);
|
||||||
_octreePacketWaiting = true;
|
_octreePacketWaiting = true;
|
||||||
|
|
|
@ -75,12 +75,6 @@ public:
|
||||||
quint64 getLastTimeBagEmpty() const { return _lastTimeBagEmpty; }
|
quint64 getLastTimeBagEmpty() const { return _lastTimeBagEmpty; }
|
||||||
void setLastTimeBagEmpty() { _lastTimeBagEmpty = _sceneSendStartTime; }
|
void setLastTimeBagEmpty() { _lastTimeBagEmpty = _sceneSendStartTime; }
|
||||||
|
|
||||||
bool getCurrentPacketIsColor() const { return _currentPacketIsColor; }
|
|
||||||
bool getCurrentPacketIsCompressed() const { return _currentPacketIsCompressed; }
|
|
||||||
bool getCurrentPacketFormatMatches() {
|
|
||||||
return (getCurrentPacketIsCompressed() == getWantCompression());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hasLodChanged() const { return _lodChanged; }
|
bool hasLodChanged() const { return _lodChanged; }
|
||||||
|
|
||||||
OctreeSceneStats stats;
|
OctreeSceneStats stats;
|
||||||
|
@ -133,8 +127,6 @@ private:
|
||||||
quint64 _lastTimeBagEmpty;
|
quint64 _lastTimeBagEmpty;
|
||||||
bool _viewFrustumChanging;
|
bool _viewFrustumChanging;
|
||||||
bool _viewFrustumJustStoppedChanging;
|
bool _viewFrustumJustStoppedChanging;
|
||||||
bool _currentPacketIsColor;
|
|
||||||
bool _currentPacketIsCompressed;
|
|
||||||
|
|
||||||
OctreeSendThread* _octreeSendThread;
|
OctreeSendThread* _octreeSendThread;
|
||||||
|
|
||||||
|
|
|
@ -309,36 +309,29 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
int truePacketsSent = 0;
|
int truePacketsSent = 0;
|
||||||
int trueBytesSent = 0;
|
int trueBytesSent = 0;
|
||||||
int packetsSentThisInterval = 0;
|
int packetsSentThisInterval = 0;
|
||||||
bool isFullScene = ((!viewFrustumChanged || !nodeData->getWantDelta()) && nodeData->getViewFrustumJustStoppedChanging())
|
bool isFullScene = ((!viewFrustumChanged) && nodeData->getViewFrustumJustStoppedChanging())
|
||||||
|| nodeData->hasLodChanged();
|
|| nodeData->hasLodChanged();
|
||||||
|
|
||||||
bool somethingToSend = true; // assume we have something
|
bool somethingToSend = true; // assume we have something
|
||||||
|
|
||||||
// FOR NOW... node tells us if it wants to receive only view frustum deltas
|
|
||||||
bool wantDelta = viewFrustumChanged && nodeData->getWantDelta();
|
|
||||||
|
|
||||||
// If our packet already has content in it, then we must use the color choice of the waiting packet.
|
// If our packet already has content in it, then we must use the color choice of the waiting packet.
|
||||||
// If we're starting a fresh packet, then...
|
// If we're starting a fresh packet, then...
|
||||||
// If we're moving, and the client asked for low res, then we force monochrome, otherwise, use
|
// If we're moving, and the client asked for low res, then we force monochrome, otherwise, use
|
||||||
// the clients requested color state.
|
// the clients requested color state.
|
||||||
bool wantCompression = nodeData->getWantCompression();
|
|
||||||
|
|
||||||
// If we have a packet waiting, and our desired want color, doesn't match the current waiting packets color
|
// If we have a packet waiting, and our desired want color, doesn't match the current waiting packets color
|
||||||
// then let's just send that waiting packet.
|
// then let's just send that waiting packet.
|
||||||
if (!nodeData->getCurrentPacketFormatMatches()) {
|
|
||||||
if (nodeData->isPacketWaiting()) {
|
if (nodeData->isPacketWaiting()) {
|
||||||
packetsSentThisInterval += handlePacketSend(nodeData, trueBytesSent, truePacketsSent);
|
packetsSentThisInterval += handlePacketSend(nodeData, trueBytesSent, truePacketsSent);
|
||||||
} else {
|
} else {
|
||||||
nodeData->resetOctreePacket();
|
nodeData->resetOctreePacket();
|
||||||
}
|
}
|
||||||
int targetSize = MAX_OCTREE_PACKET_DATA_SIZE;
|
int targetSize = MAX_OCTREE_PACKET_DATA_SIZE;
|
||||||
if (wantCompression) {
|
|
||||||
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE);
|
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE);
|
||||||
}
|
|
||||||
_packetData.changeSettings(wantCompression, targetSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
const ViewFrustum* lastViewFrustum = wantDelta ? &nodeData->getLastKnownViewFrustum() : NULL;
|
_packetData.changeSettings(true, targetSize); // FIXME - eventually support only compressed packets
|
||||||
|
|
||||||
|
const ViewFrustum* lastViewFrustum = viewFrustumChanged ? &nodeData->getLastKnownViewFrustum() : NULL;
|
||||||
|
|
||||||
// If the current view frustum has changed OR we have nothing to send, then search against
|
// If the current view frustum has changed OR we have nothing to send, then search against
|
||||||
// the current view frustum for things to send.
|
// the current view frustum for things to send.
|
||||||
|
@ -351,11 +344,6 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!viewFrustumChanged && !nodeData->getWantDelta()) {
|
|
||||||
// only set our last sent time if we weren't resetting due to frustum change
|
|
||||||
nodeData->setLastTimeBagEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
// track completed scenes and send out the stats packet accordingly
|
// track completed scenes and send out the stats packet accordingly
|
||||||
nodeData->stats.sceneCompleted();
|
nodeData->stats.sceneCompleted();
|
||||||
nodeData->setLastRootTimestamp(_myServer->getOctree()->getRoot()->getLastChanged());
|
nodeData->setLastRootTimestamp(_myServer->getOctree()->getRoot()->getLastChanged());
|
||||||
|
@ -452,11 +440,11 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
float octreeSizeScale = nodeData->getOctreeSizeScale();
|
float octreeSizeScale = nodeData->getOctreeSizeScale();
|
||||||
int boundaryLevelAdjustClient = nodeData->getBoundaryLevelAdjust();
|
int boundaryLevelAdjustClient = nodeData->getBoundaryLevelAdjust();
|
||||||
|
|
||||||
int boundaryLevelAdjust = boundaryLevelAdjustClient + (viewFrustumChanged && nodeData->getWantLowResMoving()
|
int boundaryLevelAdjust = boundaryLevelAdjustClient +
|
||||||
? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);
|
(viewFrustumChanged ? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);
|
||||||
|
|
||||||
EncodeBitstreamParams params(INT_MAX, &nodeData->getCurrentViewFrustum(),
|
EncodeBitstreamParams params(INT_MAX, &nodeData->getCurrentViewFrustum(),
|
||||||
WANT_EXISTS_BITS, DONT_CHOP, wantDelta, lastViewFrustum,
|
WANT_EXISTS_BITS, DONT_CHOP, viewFrustumChanged, lastViewFrustum,
|
||||||
boundaryLevelAdjust, octreeSizeScale,
|
boundaryLevelAdjust, octreeSizeScale,
|
||||||
nodeData->getLastTimeBagEmpty(),
|
nodeData->getLastTimeBagEmpty(),
|
||||||
isFullScene, &nodeData->stats, _myServer->getJurisdiction(),
|
isFullScene, &nodeData->stats, _myServer->getJurisdiction(),
|
||||||
|
@ -522,8 +510,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
// if for some reason the finalized size is greater than our available size, then probably the "compressed"
|
// if for some reason the finalized size is greater than our available size, then probably the "compressed"
|
||||||
// form actually inflated beyond our padding, and in this case we will send the current packet, then
|
// form actually inflated beyond our padding, and in this case we will send the current packet, then
|
||||||
// write to out new packet...
|
// write to out new packet...
|
||||||
unsigned int writtenSize = _packetData.getFinalizedSize()
|
unsigned int writtenSize = _packetData.getFinalizedSize() + sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE);
|
||||||
+ (nodeData->getCurrentPacketIsCompressed() ? sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE) : 0);
|
|
||||||
|
|
||||||
if (writtenSize > nodeData->getAvailable()) {
|
if (writtenSize > nodeData->getAvailable()) {
|
||||||
packetsSentThisInterval += handlePacketSend(nodeData, trueBytesSent, truePacketsSent);
|
packetsSentThisInterval += handlePacketSend(nodeData, trueBytesSent, truePacketsSent);
|
||||||
|
@ -539,8 +526,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
// the packet doesn't have enough space to bother attempting to pack more...
|
// the packet doesn't have enough space to bother attempting to pack more...
|
||||||
bool sendNow = true;
|
bool sendNow = true;
|
||||||
|
|
||||||
if (nodeData->getCurrentPacketIsCompressed() &&
|
if (nodeData->getAvailable() >= MINIMUM_ATTEMPT_MORE_PACKING &&
|
||||||
nodeData->getAvailable() >= MINIMUM_ATTEMPT_MORE_PACKING &&
|
|
||||||
extraPackingAttempts <= REASONABLE_NUMBER_OF_PACKING_ATTEMPTS) {
|
extraPackingAttempts <= REASONABLE_NUMBER_OF_PACKING_ATTEMPTS) {
|
||||||
sendNow = false; // try to pack more
|
sendNow = false; // try to pack more
|
||||||
}
|
}
|
||||||
|
@ -552,9 +538,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
quint64 packetSendingEnd = usecTimestampNow();
|
quint64 packetSendingEnd = usecTimestampNow();
|
||||||
packetSendingElapsedUsec = (float)(packetSendingEnd - packetSendingStart);
|
packetSendingElapsedUsec = (float)(packetSendingEnd - packetSendingStart);
|
||||||
|
|
||||||
if (wantCompression) {
|
|
||||||
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE);
|
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// If we're in compressed mode, then we want to see if we have room for more in this wire packet.
|
// If we're in compressed mode, then we want to see if we have room for more in this wire packet.
|
||||||
// but we've finalized the _packetData, so we want to start a new section, we will do that by
|
// but we've finalized the _packetData, so we want to start a new section, we will do that by
|
||||||
|
@ -564,7 +548,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
|
||||||
// a larger compressed size then uncompressed size
|
// a larger compressed size then uncompressed size
|
||||||
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE) - COMPRESS_PADDING;
|
targetSize = nodeData->getAvailable() - sizeof(OCTREE_PACKET_INTERNAL_SECTION_SIZE) - COMPRESS_PADDING;
|
||||||
}
|
}
|
||||||
_packetData.changeSettings(nodeData->getWantCompression(), targetSize); // will do reset
|
_packetData.changeSettings(true, targetSize); // will do reset - NOTE: Always compressed
|
||||||
|
|
||||||
}
|
}
|
||||||
OctreeServer::trackTreeWaitTime(lockWaitElapsedUsec);
|
OctreeServer::trackTreeWaitTime(lockWaitElapsedUsec);
|
||||||
|
|
|
@ -3073,11 +3073,6 @@ void Application::queryOctree(NodeType_t serverType, PacketType packetType, Node
|
||||||
//qCDebug(interfaceapp) << ">>> inside... queryOctree()... _viewFrustum.getFieldOfView()=" << _viewFrustum.getFieldOfView();
|
//qCDebug(interfaceapp) << ">>> inside... queryOctree()... _viewFrustum.getFieldOfView()=" << _viewFrustum.getFieldOfView();
|
||||||
bool wantExtraDebugging = getLogger()->extraDebugging();
|
bool wantExtraDebugging = getLogger()->extraDebugging();
|
||||||
|
|
||||||
// These will be the same for all servers, so we can set them up once and then reuse for each server we send to.
|
|
||||||
_octreeQuery.setWantLowResMoving(true);
|
|
||||||
_octreeQuery.setWantDelta(true);
|
|
||||||
_octreeQuery.setWantCompression(true);
|
|
||||||
|
|
||||||
_octreeQuery.setCameraPosition(_viewFrustum.getPosition());
|
_octreeQuery.setCameraPosition(_viewFrustum.getPosition());
|
||||||
_octreeQuery.setCameraOrientation(_viewFrustum.getOrientation());
|
_octreeQuery.setCameraOrientation(_viewFrustum.getOrientation());
|
||||||
_octreeQuery.setCameraFov(_viewFrustum.getFieldOfView());
|
_octreeQuery.setCameraFov(_viewFrustum.getFieldOfView());
|
||||||
|
|
|
@ -49,11 +49,6 @@ void OctreeHeadlessViewer::queryOctree() {
|
||||||
qCDebug(octree) << "---------------";
|
qCDebug(octree) << "---------------";
|
||||||
}
|
}
|
||||||
|
|
||||||
// These will be the same for all servers, so we can set them up once and then reuse for each server we send to.
|
|
||||||
_octreeQuery.setWantLowResMoving(true);
|
|
||||||
_octreeQuery.setWantDelta(true);
|
|
||||||
_octreeQuery.setWantCompression(true); // TODO: should be on by default
|
|
||||||
|
|
||||||
_octreeQuery.setCameraPosition(_viewFrustum.getPosition());
|
_octreeQuery.setCameraPosition(_viewFrustum.getPosition());
|
||||||
_octreeQuery.setCameraOrientation(_viewFrustum.getOrientation());
|
_octreeQuery.setCameraOrientation(_viewFrustum.getOrientation());
|
||||||
_octreeQuery.setCameraFov(_viewFrustum.getFieldOfView());
|
_octreeQuery.setCameraFov(_viewFrustum.getFieldOfView());
|
||||||
|
|
|
@ -40,9 +40,15 @@ int OctreeQuery::getBroadcastData(unsigned char* destinationBuffer) {
|
||||||
|
|
||||||
// bitMask of less than byte wide items
|
// bitMask of less than byte wide items
|
||||||
unsigned char bitItems = 0;
|
unsigned char bitItems = 0;
|
||||||
if (_wantLowResMoving) { setAtBit(bitItems, WANT_LOW_RES_MOVING_BIT); }
|
|
||||||
if (_wantDelta) { setAtBit(bitItems, WANT_DELTA_AT_BIT); }
|
// NOTE: we need to keep these here for new clients to talk to old servers. After we know that the clients and
|
||||||
if (_wantCompression) { setAtBit(bitItems, WANT_COMPRESSION); }
|
// servers and clients have all been updated we could remove these bits. New servers will always force these
|
||||||
|
// features on old clients even if they don't ask for them. (which old clients will properly handle). New clients
|
||||||
|
// will always ask for these so that old servers will use these features.
|
||||||
|
setAtBit(bitItems, WANT_LOW_RES_MOVING_BIT);
|
||||||
|
setAtBit(bitItems, WANT_COLOR_AT_BIT);
|
||||||
|
setAtBit(bitItems, WANT_DELTA_AT_BIT);
|
||||||
|
setAtBit(bitItems, WANT_COMPRESSION);
|
||||||
|
|
||||||
*destinationBuffer++ = bitItems;
|
*destinationBuffer++ = bitItems;
|
||||||
|
|
||||||
|
@ -78,12 +84,13 @@ int OctreeQuery::parseData(ReceivedMessage& message) {
|
||||||
memcpy(&_cameraEyeOffsetPosition, sourceBuffer, sizeof(_cameraEyeOffsetPosition));
|
memcpy(&_cameraEyeOffsetPosition, sourceBuffer, sizeof(_cameraEyeOffsetPosition));
|
||||||
sourceBuffer += sizeof(_cameraEyeOffsetPosition);
|
sourceBuffer += sizeof(_cameraEyeOffsetPosition);
|
||||||
|
|
||||||
// voxel sending features...
|
// optional feature flags
|
||||||
unsigned char bitItems = 0;
|
unsigned char bitItems = 0;
|
||||||
bitItems = (unsigned char)*sourceBuffer++;
|
bitItems = (unsigned char)*sourceBuffer++;
|
||||||
_wantLowResMoving = oneAtBit(bitItems, WANT_LOW_RES_MOVING_BIT);
|
|
||||||
_wantDelta = oneAtBit(bitItems, WANT_DELTA_AT_BIT);
|
// NOTE: we used to use these bits to set feature request items if we need to extend the protocol with optional features
|
||||||
_wantCompression = oneAtBit(bitItems, WANT_COMPRESSION);
|
// do it here with... wantFeature= oneAtBit(bitItems, WANT_FEATURE_BIT);
|
||||||
|
Q_UNUSED(bitItems);
|
||||||
|
|
||||||
// desired Max Octree PPS
|
// desired Max Octree PPS
|
||||||
memcpy(&_maxQueryPPS, sourceBuffer, sizeof(_maxQueryPPS));
|
memcpy(&_maxQueryPPS, sourceBuffer, sizeof(_maxQueryPPS));
|
||||||
|
|
|
@ -35,7 +35,7 @@ typedef unsigned long long quint64;
|
||||||
|
|
||||||
// First bitset
|
// First bitset
|
||||||
const int WANT_LOW_RES_MOVING_BIT = 0;
|
const int WANT_LOW_RES_MOVING_BIT = 0;
|
||||||
const int UNUSED_BIT_1 = 1; // unused... available for new feature
|
const int WANT_COLOR_AT_BIT = 1;
|
||||||
const int WANT_DELTA_AT_BIT = 2;
|
const int WANT_DELTA_AT_BIT = 2;
|
||||||
const int UNUSED_BIT_3 = 3; // unused... available for new feature
|
const int UNUSED_BIT_3 = 3; // unused... available for new feature
|
||||||
const int WANT_COMPRESSION = 4; // 5th bit
|
const int WANT_COMPRESSION = 4; // 5th bit
|
||||||
|
@ -71,17 +71,11 @@ public:
|
||||||
void setCameraEyeOffsetPosition(const glm::vec3& eyeOffsetPosition) { _cameraEyeOffsetPosition = eyeOffsetPosition; }
|
void setCameraEyeOffsetPosition(const glm::vec3& eyeOffsetPosition) { _cameraEyeOffsetPosition = eyeOffsetPosition; }
|
||||||
|
|
||||||
// related to Octree Sending strategies
|
// related to Octree Sending strategies
|
||||||
bool getWantDelta() const { return _wantDelta; }
|
|
||||||
bool getWantLowResMoving() const { return _wantLowResMoving; }
|
|
||||||
bool getWantCompression() const { return _wantCompression; }
|
|
||||||
int getMaxQueryPacketsPerSecond() const { return _maxQueryPPS; }
|
int getMaxQueryPacketsPerSecond() const { return _maxQueryPPS; }
|
||||||
float getOctreeSizeScale() const { return _octreeElementSizeScale; }
|
float getOctreeSizeScale() const { return _octreeElementSizeScale; }
|
||||||
int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; }
|
int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setWantLowResMoving(bool wantLowResMoving) { _wantLowResMoving = wantLowResMoving; }
|
|
||||||
void setWantDelta(bool wantDelta) { _wantDelta = wantDelta; }
|
|
||||||
void setWantCompression(bool wantCompression) { _wantCompression = wantCompression; }
|
|
||||||
void setMaxQueryPacketsPerSecond(int maxQueryPPS) { _maxQueryPPS = maxQueryPPS; }
|
void setMaxQueryPacketsPerSecond(int maxQueryPPS) { _maxQueryPPS = maxQueryPPS; }
|
||||||
void setOctreeSizeScale(float octreeSizeScale) { _octreeElementSizeScale = octreeSizeScale; }
|
void setOctreeSizeScale(float octreeSizeScale) { _octreeElementSizeScale = octreeSizeScale; }
|
||||||
void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _boundaryLevelAdjust = boundaryLevelAdjust; }
|
void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _boundaryLevelAdjust = boundaryLevelAdjust; }
|
||||||
|
@ -97,9 +91,6 @@ protected:
|
||||||
glm::vec3 _cameraEyeOffsetPosition = glm::vec3(0.0f);
|
glm::vec3 _cameraEyeOffsetPosition = glm::vec3(0.0f);
|
||||||
|
|
||||||
// octree server sending items
|
// octree server sending items
|
||||||
bool _wantDelta = true;
|
|
||||||
bool _wantLowResMoving = true;
|
|
||||||
bool _wantCompression = false;
|
|
||||||
int _maxQueryPPS = DEFAULT_MAX_OCTREE_PPS;
|
int _maxQueryPPS = DEFAULT_MAX_OCTREE_PPS;
|
||||||
float _octreeElementSizeScale = DEFAULT_OCTREE_SIZE_SCALE; /// used for LOD calculations
|
float _octreeElementSizeScale = DEFAULT_OCTREE_SIZE_SCALE; /// used for LOD calculations
|
||||||
int _boundaryLevelAdjust = 0; /// used for LOD calculations
|
int _boundaryLevelAdjust = 0; /// used for LOD calculations
|
||||||
|
|
Loading…
Reference in a new issue