mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 07:23:00 +02:00
remove render element proxies
This commit is contained in:
parent
ec86394556
commit
4a34b142d1
2 changed files with 0 additions and 86 deletions
|
@ -52,9 +52,7 @@ EntityTreeRenderer::EntityTreeRenderer(bool wantScripts, AbstractViewStateInterf
|
||||||
_lastMouseEventValid(false),
|
_lastMouseEventValid(false),
|
||||||
_viewState(viewState),
|
_viewState(viewState),
|
||||||
_scriptingServices(scriptingServices),
|
_scriptingServices(scriptingServices),
|
||||||
_displayElementChildProxies(false),
|
|
||||||
_displayModelBounds(false),
|
_displayModelBounds(false),
|
||||||
_displayModelElementProxy(false),
|
|
||||||
_dontDoPrecisionPicking(false)
|
_dontDoPrecisionPicking(false)
|
||||||
{
|
{
|
||||||
REGISTER_ENTITY_TYPE_WITH_FACTORY(Model, RenderableModelEntityItem::factory)
|
REGISTER_ENTITY_TYPE_WITH_FACTORY(Model, RenderableModelEntityItem::factory)
|
||||||
|
@ -372,92 +370,13 @@ const FBXGeometry* EntityTreeRenderer::getCollisionGeometryForEntity(EntityItemP
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityTreeRenderer::renderElementProxy(EntityTreeElementPointer entityTreeElement, RenderArgs* args) {
|
|
||||||
auto deferredLighting = DependencyManager::get<DeferredLightingEffect>();
|
|
||||||
Q_ASSERT(args->_batch);
|
|
||||||
gpu::Batch& batch = *args->_batch;
|
|
||||||
Transform transform;
|
|
||||||
|
|
||||||
glm::vec3 elementCenter = entityTreeElement->getAACube().calcCenter();
|
|
||||||
float elementSize = entityTreeElement->getScale();
|
|
||||||
|
|
||||||
auto drawWireCube = [&](glm::vec3 offset, float size, glm::vec4 color) {
|
|
||||||
transform.setTranslation(elementCenter + offset);
|
|
||||||
batch.setModelTransform(transform);
|
|
||||||
deferredLighting->renderWireCube(batch, size, color);
|
|
||||||
};
|
|
||||||
|
|
||||||
drawWireCube(glm::vec3(), elementSize, glm::vec4(1.0f, 0.0f, 0.0f, 1.0f));
|
|
||||||
|
|
||||||
if (_displayElementChildProxies) {
|
|
||||||
// draw the children
|
|
||||||
float halfSize = elementSize / 2.0f;
|
|
||||||
float quarterSize = elementSize / 4.0f;
|
|
||||||
|
|
||||||
drawWireCube(glm::vec3(-quarterSize, -quarterSize, -quarterSize), halfSize, glm::vec4(1.0f, 1.0f, 0.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(quarterSize, -quarterSize, -quarterSize), halfSize, glm::vec4(1.0f, 0.0f, 1.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(-quarterSize, quarterSize, -quarterSize), halfSize, glm::vec4(0.0f, 1.0f, 0.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(-quarterSize, -quarterSize, quarterSize), halfSize, glm::vec4(0.0f, 0.0f, 1.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(quarterSize, quarterSize, quarterSize), halfSize, glm::vec4(1.0f, 1.0f, 1.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(-quarterSize, quarterSize, quarterSize), halfSize, glm::vec4(0.0f, 0.5f, 0.5f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(quarterSize, -quarterSize, quarterSize), halfSize, glm::vec4(0.5f, 0.0f, 0.0f, 1.0f));
|
|
||||||
drawWireCube(glm::vec3(quarterSize, quarterSize, -quarterSize), halfSize, glm::vec4(0.0f, 0.5f, 0.0f, 1.0f));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EntityTreeRenderer::renderProxies(EntityItemPointer entity, RenderArgs* args) {
|
|
||||||
bool isShadowMode = args->_renderMode == RenderArgs::SHADOW_RENDER_MODE;
|
|
||||||
if (!isShadowMode && _displayModelBounds) {
|
|
||||||
PerformanceTimer perfTimer("renderProxies");
|
|
||||||
|
|
||||||
AACube maxCube = entity->getMaximumAACube();
|
|
||||||
AACube minCube = entity->getMinimumAACube();
|
|
||||||
AABox entityBox = entity->getAABox();
|
|
||||||
|
|
||||||
glm::vec3 maxCenter = maxCube.calcCenter();
|
|
||||||
glm::vec3 minCenter = minCube.calcCenter();
|
|
||||||
glm::vec3 entityBoxCenter = entityBox.calcCenter();
|
|
||||||
glm::vec3 entityBoxScale = entityBox.getScale();
|
|
||||||
|
|
||||||
auto deferredLighting = DependencyManager::get<DeferredLightingEffect>();
|
|
||||||
Q_ASSERT(args->_batch);
|
|
||||||
gpu::Batch& batch = *args->_batch;
|
|
||||||
Transform transform;
|
|
||||||
|
|
||||||
// draw the max bounding cube
|
|
||||||
transform.setTranslation(maxCenter);
|
|
||||||
batch.setModelTransform(transform);
|
|
||||||
deferredLighting->renderWireCube(batch, maxCube.getScale(), glm::vec4(1.0f, 1.0f, 0.0f, 1.0f));
|
|
||||||
|
|
||||||
// draw the min bounding cube
|
|
||||||
transform.setTranslation(minCenter);
|
|
||||||
batch.setModelTransform(transform);
|
|
||||||
deferredLighting->renderWireCube(batch, minCube.getScale(), glm::vec4(0.0f, 1.0f, 0.0f, 1.0f));
|
|
||||||
|
|
||||||
// draw the entityBox bounding box
|
|
||||||
transform.setTranslation(entityBoxCenter);
|
|
||||||
transform.setScale(entityBoxScale);
|
|
||||||
batch.setModelTransform(transform);
|
|
||||||
deferredLighting->renderWireCube(batch, 1.0f, glm::vec4(0.0f, 0.0f, 1.0f, 1.0f));
|
|
||||||
|
|
||||||
// Rotated bounding box
|
|
||||||
batch.setModelTransform(entity->getTransformToCenter());
|
|
||||||
deferredLighting->renderWireCube(batch, 1.0f, glm::vec4(1.0f, 0.0f, 1.0f, 1.0f));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EntityTreeRenderer::renderElement(OctreeElementPointer element, RenderArgs* args) {
|
void EntityTreeRenderer::renderElement(OctreeElementPointer element, RenderArgs* args) {
|
||||||
// actually render it here...
|
// actually render it here...
|
||||||
// we need to iterate the actual entityItems of the element
|
// we need to iterate the actual entityItems of the element
|
||||||
EntityTreeElementPointer entityTreeElement = std::static_pointer_cast<EntityTreeElement>(element);
|
EntityTreeElementPointer entityTreeElement = std::static_pointer_cast<EntityTreeElement>(element);
|
||||||
|
|
||||||
|
|
||||||
bool isShadowMode = args->_renderMode == RenderArgs::SHADOW_RENDER_MODE;
|
bool isShadowMode = args->_renderMode == RenderArgs::SHADOW_RENDER_MODE;
|
||||||
|
|
||||||
if (!isShadowMode && _displayModelElementProxy && entityTreeElement->size() > 0) {
|
|
||||||
renderElementProxy(entityTreeElement, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
entityTreeElement->forEachEntity([&](EntityItemPointer entityItem) {
|
entityTreeElement->forEachEntity([&](EntityItemPointer entityItem) {
|
||||||
if (entityItem->isVisible()) {
|
if (entityItem->isVisible()) {
|
||||||
// NOTE: Zone Entities are a special case we handle here...
|
// NOTE: Zone Entities are a special case we handle here...
|
||||||
|
|
|
@ -114,9 +114,7 @@ public slots:
|
||||||
void updateEntityRenderStatus(bool shouldRenderEntities);
|
void updateEntityRenderStatus(bool shouldRenderEntities);
|
||||||
|
|
||||||
// optional slots that can be wired to menu items
|
// optional slots that can be wired to menu items
|
||||||
void setDisplayElementChildProxies(bool value) { _displayElementChildProxies = value; }
|
|
||||||
void setDisplayModelBounds(bool value) { _displayModelBounds = value; }
|
void setDisplayModelBounds(bool value) { _displayModelBounds = value; }
|
||||||
void setDisplayModelElementProxy(bool value) { _displayModelElementProxy = value; }
|
|
||||||
void setDontDoPrecisionPicking(bool value) { _dontDoPrecisionPicking = value; }
|
void setDontDoPrecisionPicking(bool value) { _dontDoPrecisionPicking = value; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -134,7 +132,6 @@ private:
|
||||||
void checkAndCallPreload(const EntityItemID& entityID, const bool reload = false);
|
void checkAndCallPreload(const EntityItemID& entityID, const bool reload = false);
|
||||||
|
|
||||||
QList<Model*> _releasedModels;
|
QList<Model*> _releasedModels;
|
||||||
void renderProxies(EntityItemPointer entity, RenderArgs* args);
|
|
||||||
RayToEntityIntersectionResult findRayIntersectionWorker(const PickRay& ray, Octree::lockType lockType,
|
RayToEntityIntersectionResult findRayIntersectionWorker(const PickRay& ray, Octree::lockType lockType,
|
||||||
bool precisionPicking);
|
bool precisionPicking);
|
||||||
|
|
||||||
|
@ -157,9 +154,7 @@ private:
|
||||||
MouseEvent _lastMouseEvent;
|
MouseEvent _lastMouseEvent;
|
||||||
AbstractViewStateInterface* _viewState;
|
AbstractViewStateInterface* _viewState;
|
||||||
AbstractScriptingServicesInterface* _scriptingServices;
|
AbstractScriptingServicesInterface* _scriptingServices;
|
||||||
bool _displayElementChildProxies;
|
|
||||||
bool _displayModelBounds;
|
bool _displayModelBounds;
|
||||||
bool _displayModelElementProxy;
|
|
||||||
bool _dontDoPrecisionPicking;
|
bool _dontDoPrecisionPicking;
|
||||||
|
|
||||||
bool _shuttingDown = false;
|
bool _shuttingDown = false;
|
||||||
|
|
Loading…
Reference in a new issue