Created a 'buildOctreeForTheFirstTime()' function .. which adds the nodes but doesn't deal with LOD
--HG-- branch : nfb
This commit is contained in:
@@ -515,7 +515,6 @@ void KRScene::updateOctree(const KRViewport &viewport)
|
||||
if(light) {
|
||||
m_lights.insert(light);
|
||||
}
|
||||
|
||||
}
|
||||
for(std::set<KRNode *>::iterator itr=modifiedNodes.begin(); itr != modifiedNodes.end(); itr++) {
|
||||
KRNode *node = *itr;
|
||||
@@ -530,6 +529,35 @@ void KRScene::updateOctree(const KRViewport &viewport)
|
||||
}
|
||||
}
|
||||
|
||||
void KRScene::buildOctreeForTheFirstTime()
|
||||
{
|
||||
std::set<KRNode *> newNodes = std::move(m_newNodes);
|
||||
m_newNodes.clear();
|
||||
for(std::set<KRNode *>::iterator itr=newNodes.begin(); itr != newNodes.end(); itr++) {
|
||||
KRNode *node = *itr;
|
||||
m_nodeTree.add(node);
|
||||
if(node->hasPhysics()) {
|
||||
m_physicsNodes.insert(node);
|
||||
}
|
||||
KRAmbientZone *ambientZoneNode = dynamic_cast<KRAmbientZone *>(node);
|
||||
if(ambientZoneNode) {
|
||||
m_ambientZoneNodes.insert(ambientZoneNode);
|
||||
}
|
||||
KRReverbZone *reverbZoneNode = dynamic_cast<KRReverbZone *>(node);
|
||||
if(reverbZoneNode) {
|
||||
m_reverbZoneNodes.insert(reverbZoneNode);
|
||||
}
|
||||
KRLocator *locatorNode = dynamic_cast<KRLocator *>(node);
|
||||
if(locatorNode) {
|
||||
m_locatorNodes.insert(locatorNode);
|
||||
}
|
||||
KRLight *light = dynamic_cast<KRLight *>(node);
|
||||
if(light) {
|
||||
m_lights.insert(light);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void KRScene::physicsUpdate(float deltaTime)
|
||||
{
|
||||
for(std::set<KRNode *>::iterator itr=m_physicsNodes.begin(); itr != m_physicsNodes.end(); itr++) {
|
||||
|
||||
@@ -76,6 +76,7 @@ public:
|
||||
void render(KROctreeNode *pOctreeNode, unordered_map<KRAABB, int> &visibleBounds, KRCamera *pCamera, std::vector<KRPointLight *> &point_lights, std::vector<KRDirectionalLight *> &directional_lights, std::vector<KRSpotLight *>&spot_lights, const KRViewport &viewport, KRNode::RenderPass renderPass, std::vector<KROctreeNode *> &remainingOctrees, std::vector<KROctreeNode *> &remainingOctreesTestResults, std::vector<KROctreeNode *> &remainingOctreesTestResultsOnly, bool bOcclusionResultsPass, bool bOcclusionTestResultsOnly);
|
||||
|
||||
void updateOctree(const KRViewport &viewport);
|
||||
void buildOctreeForTheFirstTime();
|
||||
|
||||
void notify_sceneGraphCreate(KRNode *pNode);
|
||||
void notify_sceneGraphDelete(KRNode *pNode);
|
||||
|
||||
Reference in New Issue
Block a user