History

adjustable LOD tweaks

ZappoMan committed 13 years ago

Commit dd7eb661 parent baafea05 files · +35 −10Browse files

Showing the changes to interface/src/VoxelSystem.cpp (1 of 5 files). Show all

Unified · Split

interface/src/VoxelSystem.cpp+14−1
@@ -109,6 +109,7 @@ VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) · 108 unmodified lines
109 _useFastVoxelPipeline = false;109 _useFastVoxelPipeline = false;
110 110
111 _culledOnce = false;111 _culledOnce = false;
112 _inhideOutOfView = false;
112}113}
113 114
114void VoxelSystem::voxelDeleted(VoxelNode* node) {115void VoxelSystem::voxelDeleted(VoxelNode* node) {
@@ -1848,6 +1849,14 @@ public: · 1733 unmodified lines
1848};1849};
1849 1850
1850void VoxelSystem::hideOutOfView(bool forceFullFrustum) {1851void VoxelSystem::hideOutOfView(bool forceFullFrustum) {
1852
1853 // don't re-enter...
1854 if (_inhideOutOfView) {
1855 return;
1856 }
1857
1858 _inhideOutOfView = true;
1859
1851 bool showDebugDetails = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);1860 bool showDebugDetails = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
1852 PerformanceWarning warn(showDebugDetails, "hideOutOfView()", showDebugDetails);1861 PerformanceWarning warn(showDebugDetails, "hideOutOfView()", showDebugDetails);
1853 bool widenFrustum = true;1862 bool widenFrustum = true;
@@ -1879,10 +1888,13 @@ void VoxelSystem::hideOutOfView(bool forceFullFrustum) { · 25 unmodified lines
1879 1888
1880 if (!forceFullFrustum && _culledOnce && args.lastViewFrustum.isVerySimilar(args.thisViewFrustum)) {1889 if (!forceFullFrustum && _culledOnce && args.lastViewFrustum.isVerySimilar(args.thisViewFrustum)) {
1881 //printf("view frustum hasn't changed BAIL!!!\n");1890 //printf("view frustum hasn't changed BAIL!!!\n");
1891 _inhideOutOfView = false;
1882 return;1892 return;
1883 }1893 }
1884 1894
1895 pthread_mutex_lock(&_treeLock);
1885 _tree->recurseTreeWithOperation(hideOutOfViewOperation,(void*)&args);1896 _tree->recurseTreeWithOperation(hideOutOfViewOperation,(void*)&args);
1897 pthread_mutex_unlock(&_treeLock);
1886 _lastCulledViewFrustum = args.thisViewFrustum; // save last stable1898 _lastCulledViewFrustum = args.thisViewFrustum; // save last stable
1887 _culledOnce = true;1899 _culledOnce = true;
1888 1900
@@ -1900,6 +1912,7 @@ void VoxelSystem::hideOutOfView(bool forceFullFrustum) { · 11 unmodified lines
1900 args.nodesInsideInside, args.nodesIntersectInside, args.nodesOutsideOutside1912 args.nodesInsideInside, args.nodesIntersectInside, args.nodesOutsideOutside
1901 );1913 );
1902 }1914 }
1915 _inhideOutOfView = false;
1903}1916}
1904 1917
1905bool VoxelSystem::hideAllSubTreeOperation(VoxelNode* node, void* extraData) {1918bool VoxelSystem::hideAllSubTreeOperation(VoxelNode* node, void* extraData) {