mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 23:36:41 +02:00
Added local glow to models
This commit is contained in:
parent
5eeef647cf
commit
df68082705
3 changed files with 38 additions and 4 deletions
|
@ -203,7 +203,11 @@ void ModelTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args)
|
||||||
// TODO: should we allow modelItems to have alpha on their models?
|
// TODO: should we allow modelItems to have alpha on their models?
|
||||||
Model::RenderMode modelRenderMode = args->_renderMode == OctreeRenderer::SHADOW_RENDER_MODE
|
Model::RenderMode modelRenderMode = args->_renderMode == OctreeRenderer::SHADOW_RENDER_MODE
|
||||||
? Model::SHADOW_RENDER_MODE : Model::DEFAULT_RENDER_MODE;
|
? Model::SHADOW_RENDER_MODE : Model::DEFAULT_RENDER_MODE;
|
||||||
model->render(alpha, modelRenderMode);
|
|
||||||
|
{ // Sets the glower scope
|
||||||
|
Glower glower(modelItem.getGlowLevel());
|
||||||
|
model->render(alpha, modelRenderMode);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isShadowMode && displayModelBounds) {
|
if (!isShadowMode && displayModelBounds) {
|
||||||
glColor3f(0.0f, 1.0f, 0.0f);
|
glColor3f(0.0f, 1.0f, 0.0f);
|
||||||
|
|
|
@ -85,12 +85,13 @@ ModelItem::ModelItem(const ModelItemID& modelItemID, const ModelItemProperties&
|
||||||
_shouldDie = false;
|
_shouldDie = false;
|
||||||
_modelURL = MODEL_DEFAULT_MODEL_URL;
|
_modelURL = MODEL_DEFAULT_MODEL_URL;
|
||||||
_modelRotation = MODEL_DEFAULT_MODEL_ROTATION;
|
_modelRotation = MODEL_DEFAULT_MODEL_ROTATION;
|
||||||
|
|
||||||
// animation related
|
// animation related
|
||||||
_animationURL = MODEL_DEFAULT_ANIMATION_URL;
|
_animationURL = MODEL_DEFAULT_ANIMATION_URL;
|
||||||
_animationIsPlaying = false;
|
_animationIsPlaying = false;
|
||||||
_animationFrameIndex = 0.0f;
|
_animationFrameIndex = 0.0f;
|
||||||
_animationFPS = MODEL_DEFAULT_ANIMATION_FPS;
|
_animationFPS = MODEL_DEFAULT_ANIMATION_FPS;
|
||||||
|
_glowLevel = 0.0f;
|
||||||
|
|
||||||
_jointMappingCompleted = false;
|
_jointMappingCompleted = false;
|
||||||
_lastAnimated = now;
|
_lastAnimated = now;
|
||||||
|
@ -125,6 +126,7 @@ void ModelItem::init(glm::vec3 position, float radius, rgbColor color, uint32_t
|
||||||
_animationIsPlaying = false;
|
_animationIsPlaying = false;
|
||||||
_animationFrameIndex = 0.0f;
|
_animationFrameIndex = 0.0f;
|
||||||
_animationFPS = MODEL_DEFAULT_ANIMATION_FPS;
|
_animationFPS = MODEL_DEFAULT_ANIMATION_FPS;
|
||||||
|
_glowLevel = 0.0f;
|
||||||
_jointMappingCompleted = false;
|
_jointMappingCompleted = false;
|
||||||
_lastAnimated = now;
|
_lastAnimated = now;
|
||||||
}
|
}
|
||||||
|
@ -802,6 +804,7 @@ ModelItemProperties::ModelItemProperties() :
|
||||||
_animationIsPlaying(false),
|
_animationIsPlaying(false),
|
||||||
_animationFrameIndex(0.0),
|
_animationFrameIndex(0.0),
|
||||||
_animationFPS(MODEL_DEFAULT_ANIMATION_FPS),
|
_animationFPS(MODEL_DEFAULT_ANIMATION_FPS),
|
||||||
|
_glowLevel(0.0f),
|
||||||
|
|
||||||
_id(UNKNOWN_MODEL_ID),
|
_id(UNKNOWN_MODEL_ID),
|
||||||
_idSet(false),
|
_idSet(false),
|
||||||
|
@ -817,6 +820,7 @@ ModelItemProperties::ModelItemProperties() :
|
||||||
_animationIsPlayingChanged(false),
|
_animationIsPlayingChanged(false),
|
||||||
_animationFrameIndexChanged(false),
|
_animationFrameIndexChanged(false),
|
||||||
_animationFPSChanged(false),
|
_animationFPSChanged(false),
|
||||||
|
_glowLevelChanged(false),
|
||||||
_defaultSettings(true)
|
_defaultSettings(true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -890,6 +894,7 @@ QScriptValue ModelItemProperties::copyToScriptValue(QScriptEngine* engine) const
|
||||||
properties.setProperty("animationIsPlaying", _animationIsPlaying);
|
properties.setProperty("animationIsPlaying", _animationIsPlaying);
|
||||||
properties.setProperty("animationFrameIndex", _animationFrameIndex);
|
properties.setProperty("animationFrameIndex", _animationFrameIndex);
|
||||||
properties.setProperty("animationFPS", _animationFPS);
|
properties.setProperty("animationFPS", _animationFPS);
|
||||||
|
properties.setProperty("glowLevel", _glowLevel);
|
||||||
|
|
||||||
if (_idSet) {
|
if (_idSet) {
|
||||||
properties.setProperty("id", _id);
|
properties.setProperty("id", _id);
|
||||||
|
@ -1015,7 +1020,7 @@ void ModelItemProperties::copyFromScriptValue(const QScriptValue &object) {
|
||||||
_animationFrameIndexChanged = true;
|
_animationFrameIndexChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QScriptValue animationFPS = object.property("animationFPS");
|
QScriptValue animationFPS = object.property("animationFPS");
|
||||||
if (animationFPS.isValid()) {
|
if (animationFPS.isValid()) {
|
||||||
float newFPS;
|
float newFPS;
|
||||||
|
@ -1025,6 +1030,16 @@ void ModelItemProperties::copyFromScriptValue(const QScriptValue &object) {
|
||||||
_animationFPSChanged = true;
|
_animationFPSChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QScriptValue glowLevel = object.property("glowLevel");
|
||||||
|
if (glowLevel.isValid()) {
|
||||||
|
float newGlowLevel;
|
||||||
|
newGlowLevel = glowLevel.toVariant().toFloat();
|
||||||
|
if (_defaultSettings || newGlowLevel != _glowLevel) {
|
||||||
|
_glowLevel = newGlowLevel;
|
||||||
|
_glowLevelChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_lastEdited = usecTimestampNow();
|
_lastEdited = usecTimestampNow();
|
||||||
}
|
}
|
||||||
|
@ -1075,11 +1090,16 @@ void ModelItemProperties::copyToModelItem(ModelItem& modelItem) const {
|
||||||
modelItem.setAnimationFrameIndex(_animationFrameIndex);
|
modelItem.setAnimationFrameIndex(_animationFrameIndex);
|
||||||
somethingChanged = true;
|
somethingChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_animationFPSChanged) {
|
if (_animationFPSChanged) {
|
||||||
modelItem.setAnimationFPS(_animationFPS);
|
modelItem.setAnimationFPS(_animationFPS);
|
||||||
somethingChanged = true;
|
somethingChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_glowLevelChanged) {
|
||||||
|
modelItem.setGlowLevel(_glowLevel);
|
||||||
|
somethingChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (somethingChanged) {
|
if (somethingChanged) {
|
||||||
bool wantDebug = false;
|
bool wantDebug = false;
|
||||||
|
@ -1104,6 +1124,7 @@ void ModelItemProperties::copyFromModelItem(const ModelItem& modelItem) {
|
||||||
_animationIsPlaying = modelItem.getAnimationIsPlaying();
|
_animationIsPlaying = modelItem.getAnimationIsPlaying();
|
||||||
_animationFrameIndex = modelItem.getAnimationFrameIndex();
|
_animationFrameIndex = modelItem.getAnimationFrameIndex();
|
||||||
_animationFPS = modelItem.getAnimationFPS();
|
_animationFPS = modelItem.getAnimationFPS();
|
||||||
|
_glowLevel = modelItem.getGlowLevel();
|
||||||
|
|
||||||
_id = modelItem.getID();
|
_id = modelItem.getID();
|
||||||
_idSet = true;
|
_idSet = true;
|
||||||
|
@ -1119,6 +1140,7 @@ void ModelItemProperties::copyFromModelItem(const ModelItem& modelItem) {
|
||||||
_animationIsPlayingChanged = false;
|
_animationIsPlayingChanged = false;
|
||||||
_animationFrameIndexChanged = false;
|
_animationFrameIndexChanged = false;
|
||||||
_animationFPSChanged = false;
|
_animationFPSChanged = false;
|
||||||
|
_glowLevelChanged = false;
|
||||||
_defaultSettings = false;
|
_defaultSettings = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,7 @@ public:
|
||||||
float getAnimationFrameIndex() const { return _animationFrameIndex; }
|
float getAnimationFrameIndex() const { return _animationFrameIndex; }
|
||||||
bool getAnimationIsPlaying() const { return _animationIsPlaying; }
|
bool getAnimationIsPlaying() const { return _animationIsPlaying; }
|
||||||
float getAnimationFPS() const { return _animationFPS; }
|
float getAnimationFPS() const { return _animationFPS; }
|
||||||
|
float getGlowLevel() const { return _glowLevel; }
|
||||||
|
|
||||||
quint64 getLastEdited() const { return _lastEdited; }
|
quint64 getLastEdited() const { return _lastEdited; }
|
||||||
uint16_t getChangedBits() const;
|
uint16_t getChangedBits() const;
|
||||||
|
@ -100,6 +101,7 @@ public:
|
||||||
void setAnimationFrameIndex(float value) { _animationFrameIndex = value; _animationFrameIndexChanged = true; }
|
void setAnimationFrameIndex(float value) { _animationFrameIndex = value; _animationFrameIndexChanged = true; }
|
||||||
void setAnimationIsPlaying(bool value) { _animationIsPlaying = value; _animationIsPlayingChanged = true; }
|
void setAnimationIsPlaying(bool value) { _animationIsPlaying = value; _animationIsPlayingChanged = true; }
|
||||||
void setAnimationFPS(float value) { _animationFPS = value; _animationFPSChanged = true; }
|
void setAnimationFPS(float value) { _animationFPS = value; _animationFPSChanged = true; }
|
||||||
|
void setGlowLevel(float value) { _glowLevel = value; _glowLevelChanged = true; }
|
||||||
|
|
||||||
/// used by ModelScriptingInterface to return ModelItemProperties for unknown models
|
/// used by ModelScriptingInterface to return ModelItemProperties for unknown models
|
||||||
void setIsUnknownID() { _id = UNKNOWN_MODEL_ID; _idSet = true; }
|
void setIsUnknownID() { _id = UNKNOWN_MODEL_ID; _idSet = true; }
|
||||||
|
@ -119,6 +121,7 @@ private:
|
||||||
bool _animationIsPlaying;
|
bool _animationIsPlaying;
|
||||||
float _animationFrameIndex;
|
float _animationFrameIndex;
|
||||||
float _animationFPS;
|
float _animationFPS;
|
||||||
|
float _glowLevel;
|
||||||
|
|
||||||
uint32_t _id;
|
uint32_t _id;
|
||||||
bool _idSet;
|
bool _idSet;
|
||||||
|
@ -135,6 +138,7 @@ private:
|
||||||
bool _animationIsPlayingChanged;
|
bool _animationIsPlayingChanged;
|
||||||
bool _animationFrameIndexChanged;
|
bool _animationFrameIndexChanged;
|
||||||
bool _animationFPSChanged;
|
bool _animationFPSChanged;
|
||||||
|
bool _glowLevelChanged;
|
||||||
bool _defaultSettings;
|
bool _defaultSettings;
|
||||||
};
|
};
|
||||||
Q_DECLARE_METATYPE(ModelItemProperties);
|
Q_DECLARE_METATYPE(ModelItemProperties);
|
||||||
|
@ -206,6 +210,7 @@ public:
|
||||||
const glm::quat& getModelRotation() const { return _modelRotation; }
|
const glm::quat& getModelRotation() const { return _modelRotation; }
|
||||||
bool hasAnimation() const { return !_animationURL.isEmpty(); }
|
bool hasAnimation() const { return !_animationURL.isEmpty(); }
|
||||||
const QString& getAnimationURL() const { return _animationURL; }
|
const QString& getAnimationURL() const { return _animationURL; }
|
||||||
|
float getGlowLevel() const { return _glowLevel; }
|
||||||
|
|
||||||
ModelItemID getModelItemID() const { return ModelItemID(getID(), getCreatorTokenID(), getID() != UNKNOWN_MODEL_ID); }
|
ModelItemID getModelItemID() const { return ModelItemID(getID(), getCreatorTokenID(), getID() != UNKNOWN_MODEL_ID); }
|
||||||
ModelItemProperties getProperties() const;
|
ModelItemProperties getProperties() const;
|
||||||
|
@ -248,6 +253,7 @@ public:
|
||||||
void setAnimationFrameIndex(float value) { _animationFrameIndex = value; }
|
void setAnimationFrameIndex(float value) { _animationFrameIndex = value; }
|
||||||
void setAnimationIsPlaying(bool value) { _animationIsPlaying = value; }
|
void setAnimationIsPlaying(bool value) { _animationIsPlaying = value; }
|
||||||
void setAnimationFPS(float value) { _animationFPS = value; }
|
void setAnimationFPS(float value) { _animationFPS = value; }
|
||||||
|
void setGlowLevel(float glowLevel) { _glowLevel = glowLevel; }
|
||||||
|
|
||||||
void setProperties(const ModelItemProperties& properties);
|
void setProperties(const ModelItemProperties& properties);
|
||||||
|
|
||||||
|
@ -293,6 +299,8 @@ protected:
|
||||||
// model related items
|
// model related items
|
||||||
QString _modelURL;
|
QString _modelURL;
|
||||||
glm::quat _modelRotation;
|
glm::quat _modelRotation;
|
||||||
|
|
||||||
|
float _glowLevel;
|
||||||
|
|
||||||
uint32_t _creatorTokenID;
|
uint32_t _creatorTokenID;
|
||||||
bool _newlyCreated;
|
bool _newlyCreated;
|
||||||
|
|
Loading…
Reference in a new issue