mirror of
https://github.com/JulianGro/overte.git
synced 2025-06-04 13:21:06 +02:00
Render the billboard if we don't have both models. Closes #2178.
This commit is contained in:
parent
e9908aff7c
commit
75c9e44545
3 changed files with 10 additions and 6 deletions
|
@ -112,7 +112,8 @@ glm::quat Avatar::getWorldAlignedOrientation () const {
|
||||||
}
|
}
|
||||||
|
|
||||||
float Avatar::getLODDistance() const {
|
float Avatar::getLODDistance() const {
|
||||||
return glm::distance(Application::getInstance()->getCamera()->getPosition(), _position) / _scale;
|
return Application::getInstance()->getAvatarManager().getLODDistanceMultiplier() *
|
||||||
|
glm::distance(Application::getInstance()->getCamera()->getPosition(), _position) / _scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Avatar::simulate(float deltaTime) {
|
void Avatar::simulate(float deltaTime) {
|
||||||
|
@ -305,13 +306,11 @@ glm::quat Avatar::computeRotationFromBodyToWorldUp(float proportion) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Avatar::renderBody() {
|
void Avatar::renderBody() {
|
||||||
if (_shouldRenderBillboard) {
|
if (_shouldRenderBillboard || !(_skeletonModel.isRenderable() && getHead()->getFaceModel().isRenderable())) {
|
||||||
|
// render the billboard until both models are loaded
|
||||||
renderBillboard();
|
renderBillboard();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!(_skeletonModel.isRenderable() && getHead()->getFaceModel().isRenderable())) {
|
|
||||||
return; // wait until both models are loaded
|
|
||||||
}
|
|
||||||
_skeletonModel.render(1.0f);
|
_skeletonModel.render(1.0f);
|
||||||
getHead()->render(1.0f);
|
getHead()->render(1.0f);
|
||||||
getHand()->render(false);
|
getHand()->render(false);
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
const QUuid MY_AVATAR_KEY; // NULL key
|
const QUuid MY_AVATAR_KEY; // NULL key
|
||||||
|
|
||||||
AvatarManager::AvatarManager(QObject* parent) :
|
AvatarManager::AvatarManager(QObject* parent) :
|
||||||
_avatarFades() {
|
_avatarFades(),
|
||||||
|
_lodDistanceMultiplier(1.0f) {
|
||||||
// register a meta type for the weak pointer we'll use for the owning avatar mixer for each avatar
|
// register a meta type for the weak pointer we'll use for the owning avatar mixer for each avatar
|
||||||
qRegisterMetaType<QWeakPointer<Node> >("NodeWeakPointer");
|
qRegisterMetaType<QWeakPointer<Node> >("NodeWeakPointer");
|
||||||
_myAvatar = QSharedPointer<MyAvatar>(new MyAvatar());
|
_myAvatar = QSharedPointer<MyAvatar>(new MyAvatar());
|
||||||
|
|
|
@ -33,6 +33,8 @@ public:
|
||||||
|
|
||||||
void clearOtherAvatars();
|
void clearOtherAvatars();
|
||||||
|
|
||||||
|
float getLODDistanceMultiplier() const { return _lodDistanceMultiplier; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void processAvatarMixerDatagram(const QByteArray& datagram, const QWeakPointer<Node>& mixerWeakPointer);
|
void processAvatarMixerDatagram(const QByteArray& datagram, const QWeakPointer<Node>& mixerWeakPointer);
|
||||||
|
|
||||||
|
@ -52,6 +54,8 @@ private:
|
||||||
|
|
||||||
QVector<AvatarSharedPointer> _avatarFades;
|
QVector<AvatarSharedPointer> _avatarFades;
|
||||||
QSharedPointer<MyAvatar> _myAvatar;
|
QSharedPointer<MyAvatar> _myAvatar;
|
||||||
|
|
||||||
|
float _lodDistanceMultiplier;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* defined(__hifi__AvatarManager__) */
|
#endif /* defined(__hifi__AvatarManager__) */
|
||||||
|
|
Loading…
Reference in a new issue