Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh	(revision 2677)
@@ -11,5 +11,6 @@
 echo "starting $TARGET version"
 
-SCENE=../data/vienna/vienna_cropped.obj
+#SCENE=../data/vienna/vienna_cropped.obj
+SCENE=../data/vienna/city_full.obj
 
 VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz 
@@ -27,8 +28,8 @@
 -preprocessor=gvs \
 -gvs_epsilon=0.0001 \
--gvs_total_samples=100000 \
--gvs_samples_per_pass=100000 \
+-gvs_total_samples=1000000 \
+-gvs_samples_per_pass=1000000 \
 -gvs_initial_samples=16 \
--gvs_max_viewcells=1 \
+-gvs_max_viewcells=20 \
 -gvs_min_contribution=50 \
 -gvs_per_viewcell=true \
Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/gvs.env
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/gvs.env	(revision 2643)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/gvs.env	(revision 2677)
@@ -34,8 +34,8 @@
 	detectEmptyViewSpace true
 	loadMeshes false
-	# internal raycaster
-	#rayCastMethod 0
-	# intel raycaster
+
+	# internal: 0 intel: 1
 	rayCastMethod 1
+
 	exportVisibility false
 	applyVisibilityFilter false
Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/demo1.env
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/demo1.env	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/demo1.env	(revision 2677)
@@ -54,5 +54,5 @@
 	useGlDebugger false
 # 0 = INTERNAL 		1 = MLRT
-	rayCastMethod 0
+	rayCastMethod 1
 	
 #	type sampling
Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_demo_vienna
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_demo_vienna	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_demo_vienna	(revision 2677)
@@ -4,24 +4,13 @@
 export PATH=../bin:$PATH
 
-#TARGET=debug
-TARGET=release
-
-
 #COMMAND="./release/preprocessor.exe -preprocessor_quit_on_finish+"
 COMMAND="../scripts/preprocessor.sh -preprocessor_quit_on_finish- -preprocessor_use_gl_renderer+ -preprocessor_evaluate_filter- -samples_per_evaluation=5000000 -samples_per_pass=500000 -total_samples=100000000"
 
 
-SCENE=../data/vienna/vienna_cropped.obj
-#SCENE=../data/vienna/city_full.obj
+#SCENE=../data/vienna/vienna_cropped.obj
+SCENE=../data/vienna/city_full.obj
+
 VIEWCELLS=../data/vienna/vienna_cropped-seq-3000-false-20-viewcells.xml.gz
 #VIEWCELLS=../data/vienna/vienna_cropped-57000-viewcells.xml.gz
-
-
-#SCENE=../data/Arena/arena-high-lods.obj
-SCENE=../data/Arena/arena_trees.obj
-#VIEWCELLS=../data/Arena/arena-high-lods-57000-viewcells.xml.gz
-#VIEWCELLS=../data/Arena/arena-high-lods-10000-viewcells.xml.gz
-VIEWCELLS=../data/Arena/arena-high-lods-5000-viewcells.xml.gz
-
 
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vienna.sh
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vienna.sh	(revision 2601)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vienna.sh	(revision 2677)
@@ -13,7 +13,11 @@
 echo "starting $TARGET version"
 
-SCENE=../data/vienna/vienna_cropped.obj
-#VIEWCELLS=../data/vienna/vienna_cropped-seq-3000-false-20-viewcells.xml.gz
-VIEWCELLS=../data/vienna/vienna_cropped-57000-viewcells.xml.gz
+#SCENE=../data/vienna/vienna_cropped.obj
+SCENE=../data/vienna/city_full.obj
+
+#VIEWCELLS=../data/vienna/vienna_cropped-57000-viewcells.xml.gz
+#VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz 
+VIEWCELLS=../data/vienna/vienna_cropped-seq-3000-false-20-viewcells.xml.gz
+
 
 LOG_PREFIX=../scripts/tests/sig2008
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.h	(revision 2669)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.h	(revision 2677)
@@ -74,5 +74,5 @@
 	ObjectContainer mKdPvs;
 
-	float RaysPerSec() const { if (!mTotalTime) return 0; return (float)mTotalSamples / mTotalTime * 1e-6f; }
+	float RaysPerSec() const { if (!mTotalTime) return 0; return (float)(mTotalSamples / mTotalTime) * 1e-6f; }
 
 	void Print(ostream &app) const;
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp	(revision 2677)
@@ -70,5 +70,5 @@
 
 
-void QtGlRendererBuffer::MakeCurrent()
+void QtGlRendererBuffer::MakeLive()
 {
 	QGLPixelBuffer::makeCurrent();
@@ -77,5 +77,5 @@
 
 
-void QtGlRendererBuffer::DoneCurrent()
+void QtGlRendererBuffer::DoneLive()
 {
 	QGLPixelBuffer::doneCurrent();
@@ -92,6 +92,6 @@
 						 QGL::DepthBuffer | 
 						 QGL::DoubleBuffer |
-						 QGL::Rgba
-						 )),
+						 QGL::Rgba)
+						 ),
 GlRendererBuffer(sceneGraph, viewcells, tree)
 {
@@ -99,5 +99,5 @@
 	//mUseVbos = false;
 	
-	MakeCurrent();
+	MakeLive();
 	glViewport(0, 0, w, h);
     glMatrixMode(GL_PROJECTION);
@@ -109,5 +109,10 @@
 
 	InitGL();
-	DoneCurrent();
+	
+	//mydynamicTexture = generateDynamicTexture();
+    // bind the dynamic texture to the pbuffer - this is a no-op under X11
+	//bindToDynamicTexture(mydynamicTexture);
+
+	DoneLive();
 }
 
@@ -133,5 +138,5 @@
 float QtGlRendererBuffer::GetPixelError(int &pvsSize)
 {
-	MakeCurrent();
+	MakeLive();
 
 	if (0)
@@ -141,4 +146,7 @@
 		cout << "rgba: " << format().rgba() << endl;
 		cout << "double: " << format().doubleBuffer() << endl;
+		cout << "depth: " << format().depth() << endl;
+		cout << "gl:" << format().hasOpenGL() << endl;
+		cout << "dir:" << format().directRendering() << endl;
 	}
 
@@ -249,6 +257,7 @@
 	pixelCount = query->GetQueryResult();
 
-	pErrorPixels = ((float)pixelCount) / (GetWidth() * GetHeight());
-
+	pErrorPixels = (float)pixelCount / (GetWidth() * GetHeight());
+
+	// some error happened
 	if (pixelCount > 0) 
 	{
@@ -265,5 +274,6 @@
 
 			char filename[256];
-			sprintf(filename, "error-frame-%04d-%0.5f.png", mFrame, pErrorPixels);
+			//sprintf(filename, "error-frame-%04d-%0.5f.png", mFrame, pErrorPixels);
+			sprintf(filename, "error-frame-%04d-%04d.png", mFrame, pixelCount);
 			QImage im = toImage();
 			string str = mSnapPrefix + filename;
@@ -306,5 +316,5 @@
 	glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
 
-	DoneCurrent();
+	DoneLive();
 
 	return pErrorPixels;
@@ -2399,5 +2409,5 @@
 	// bind the dynamic texture to the pbuffer - this is a no-op under X11
 	mRenderBuffer->bindToDynamicTexture(dynamicTexture);
-	makeCurrent();
+	//makeCurrent();
 }
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h	(revision 2671)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h	(revision 2677)
@@ -61,6 +61,6 @@
 	~QtGlRendererBuffer() {}
 
-	virtual void MakeCurrent();
-	virtual void DoneCurrent();
+	virtual void MakeLive();
+	virtual void DoneLive();
 
 	virtual int GetWidth() const { return width(); }
@@ -75,4 +75,5 @@
 	int ComputePvs(ObjectContainer &objects, ObjectContainer &pvs) const;
 
+	unsigned int mydynamicTexture;
 
 public:
@@ -311,5 +312,6 @@
 
 public slots:
-void UpdateDynamicObjects();
+	
+	void UpdateDynamicObjects();
 	void UpdateAllPvs();
 	void ComputeVisibility();
@@ -516,5 +518,9 @@
 			mShowDistribution ^= 1;
 
-		std::cout << "b: " << (mShowDistribution & 1) << " " << (mShowDistribution & 2) << " " << (mShowDistribution & 4) << " " << (mShowDistribution & 8) << std::endl; 
+		std::cout << "b: " 
+				  << (mShowDistribution & 1) << " " 
+				  << (mShowDistribution & 2) << " " 
+				  << (mShowDistribution & 4) << " " 
+				  << (mShowDistribution & 8) << std::endl; 
 	}
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp	(revision 2671)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp	(revision 2677)
@@ -993,5 +993,5 @@
 								   )
 {
-	MakeCurrent();
+	MakeLive();
 
 	if (mPixelBuffer == NULL)
@@ -1022,5 +1022,5 @@
 	}
 
-	DoneCurrent();
+	DoneLive();
 }
 
@@ -1042,10 +1042,10 @@
 GlRendererBuffer::EvalPvsStat()
 {
-	MakeCurrent();
+	MakeLive();
 	
 	GlRenderer::EvalPvsStat();
 	
-	DoneCurrent();
-  //  mRenderingFinished.wakeAll();
+	DoneLive();
+	// mRenderingFinished.wakeAll();
 }
 
@@ -1053,9 +1053,9 @@
 void GlRendererBuffer::EvalPvsStat(const SimpleRayContainer &viewPoints)
 {
-	MakeCurrent();
+	MakeLive();
 
 	GlRenderer::EvalPvsStat(viewPoints);
   
-	DoneCurrent();
+	DoneLive();
 }
 
@@ -1478,7 +1478,8 @@
 }
 
+
 bool GlRendererBuffer::ValidViewPoint()
 {	
-	MakeCurrent();
+	MakeLive();
 
 	SetupProjection(GetWidth(), GetHeight());
@@ -1486,5 +1487,5 @@
 	bool result = GlRenderer::ValidViewPoint();
 	
-	DoneCurrent();
+	DoneLive();
 	
 	return result;
@@ -1528,12 +1529,8 @@
 		float error = GetPixelError(pvsSize);
 
-
-	  //	  emit UpdatePvsErrorItem(i,
-	  //							  mPvsErrorBuffer[i]);
-	  //	  swapBuffers();
 		mPvsErrorBuffer[i].mError = error;
 		mPvsErrorBuffer[i].mPvsSize = pvsSize;
 
-		cout<<"("<<i<<" ["<<mViewPoint<<"]["<<mViewDirection<<"] "<<mPvsErrorBuffer[i].mError<<")";
+		//cout<<"("<<i<<" ["<<mViewPoint<<"]["<<mViewDirection<<"] "<<mPvsErrorBuffer[i].mError<<")";
 	}
 
@@ -1603,4 +1600,7 @@
 	for (sit = viewPoints.begin(); sit != sit_end; ++ sit, ++ i) 
 	{
+		if ((i % 10) == 99)
+			cout << "processed " << i << " view points " << endl;
+
 		//cout << "\n\nvp: " << (*sit) << endl;
 		SimpleRay sray = *sit;
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/demo1.env
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/demo1.env	(revision 2524)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/demo1.env	(revision 2677)
@@ -74,5 +74,5 @@
 	visibilityFile visibility.xml
 	loadMeshes false
-	loadKdTree	false
+	loadKdTree false
 	exportKdTree false
 
@@ -169,5 +169,5 @@
 
 KdTree {
-	pvsArea   5e-4
+	pvsArea   5e-5
 	sahUseFaces false
 	Termination {
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor05.vcproj
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor05.vcproj	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor05.vcproj	(revision 2677)
@@ -153,5 +153,5 @@
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib Preprocessor05.lib RTScene.lib RTWorld.lib cg.lib cgGL.lib Qt3Support4.lib QtTest4.lib QtGui4.lib QtInterface05.lib QtOpenGL4.lib QtCore4.lib qtmain.lib"
+				AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib Preprocessor05.lib RTScene.lib RTWorld.lib cg.lib cgGL.lib QtInterface05.lib QtGui4.lib QtOpenGL4.lib QtCore4.lib qtmain.lib"
 				OutputFile="../bin/$(ConfigurationName)/Preprocessor.exe"
 				LinkIncremental="1"
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp	(revision 2643)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp	(revision 2677)
@@ -1477,33 +1477,33 @@
 
 KdLeaf *KdTree::ImportBinLeaf(IN_STREAM &stream, 
-			      KdInterior *parent,
-			      const ObjectContainer &objects)
-{
-  int leafId = TYPE_LEAF;
-  int objId = leafId;
-  int size;
-  
-  stream.read(reinterpret_cast<char *>(&size), sizeof(int));
-  KdLeaf *leaf = new KdLeaf(parent, size);
-
-  MeshInstance dummyInst(NULL);
-	
-  // read object ids
-  // note: this can also be done geometrically
-  for (int i = 0; i < size; ++ i)
-    {	
-      stream.read(reinterpret_cast<char *>(&objId), sizeof(int));
-      dummyInst.SetId(objId);
-      
-      ObjectContainer::const_iterator oit =
-	lower_bound(objects.begin(), objects.end(), (Intersectable *)&dummyInst, ilt);
-      
-      if ((oit != objects.end()) && ((*oit)->GetId() == objId))
-	leaf->mObjects.push_back(*oit);
-      else
-	Debug << "error: object with id " << objId << " does not exist" << endl;
-    }
-  
-  return leaf;
+							  KdInterior *parent,
+							  const ObjectContainer &objects)
+{
+	int leafId = TYPE_LEAF;
+	int objId = leafId;
+	int size;
+
+	stream.read(reinterpret_cast<char *>(&size), sizeof(int));
+	KdLeaf *leaf = new KdLeaf(parent, size);
+
+	MeshInstance dummyInst(NULL);
+
+	// read object ids
+	// note: this can also be done geometrically
+	for (int i = 0; i < size; ++ i)
+	{	
+		stream.read(reinterpret_cast<char *>(&objId), sizeof(int));
+		dummyInst.SetId(objId);
+
+		ObjectContainer::const_iterator oit =
+			lower_bound(objects.begin(), objects.end(), (Intersectable *)&dummyInst, ilt);
+
+		if ((oit != objects.end()) && ((*oit)->GetId() == objId))
+			leaf->mObjects.push_back(*oit);
+		else
+			Debug << "error: object with id " << objId << " does not exist" << endl;
+	}
+
+	return leaf;
 }
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp	(revision 2676)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp	(revision 2677)
@@ -257,6 +257,8 @@
 	{
 		cout << "importing random view cells" << endl;
-		preprocessor->mViewCellsManager->ImportViewCellsList(viewCellPointsFile);
-		cout << "finished" << endl;
+		if (preprocessor->mViewCellsManager->ImportViewCellsList(viewCellPointsFile))
+			cout << "successfully loaded " << viewCellPointsFile << endl;
+		else
+			cout << "error: file << " << viewCellPointsFile << " not found, generating random view points!" << endl;
 	}
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.h	(revision 2671)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.h	(revision 2677)
@@ -330,6 +330,6 @@
 	virtual int GetHeight() const  = 0; 
 
-	virtual void MakeCurrent() = 0;
-	virtual void DoneCurrent() = 0;
+	virtual void MakeLive() = 0;
+	virtual void DoneLive() = 0;
 
 	virtual bool ValidViewPoint();
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp	(revision 2671)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp	(revision 2677)
@@ -68,9 +68,10 @@
 	mGvsStatsStream.open(gvsStatsLog);
 
+	cout << "number of gvs samples per pass: " << mGvsSamplesPerPass << endl;
+	cout << "number of samples per pass: " << mSamplesPerPass << endl;
+
 	Debug << "Gvs preprocessor options" << endl;
 	Debug << "number of total samples: " << mTotalSamples << endl;
 	Debug << "number of initial samples: " << mInitialSamples << endl;
-	cout << "number of gvs samples per pass: " << mGvsSamplesPerPass << endl;
-	cout << "number of samples per pass: " << mSamplesPerPass << endl;
 	Debug << "threshold: " << mThreshold << endl;
 	Debug << "epsilon: " << mEps << endl;
@@ -804,5 +805,4 @@
 	mGenericStats2 = 0;
 
-	//while (mGvsStats.mPerViewCellSamples < mTotalSamples) 
 	while (1)
 	{
@@ -1223,22 +1223,24 @@
 	app << "#PvsCost\n" << (int)mPvsCost << endl;
 
-#if 0
+	app << "#PerViewCellSamples\n" << mPerViewCellSamples << endl;
+	app << "#RaysPerSec\n" << RaysPerSec() << endl;
+	
 	app << "#TotalPvs\n" << mTotalPvs << endl;
 	app << "#TotalTime\n" << mTotalTime << endl;
-	app << "#RaysPerSec\n" << RaysPerSec() << endl;
-	
-	app << "#PerViewCellSamples\n" << mPerViewCellSamples << endl;
 	app << "#TotalSamples\n" << mTotalSamples << endl;
-	app	<< "#SamplesContri\n" << mTotalContribution << endl;
+
 	app << "#TotalTrianglePvs\n" << mTotalTrianglePvs << endl;
 	
-#endif
-
-	//app << "#ReverseSamples\n" << mReverseSamples << endl;
-	//app << "#BorderSamples\n" << mBorderSamples << endl;
-
-	//app << "#Pass\n" << mPass << endl;
-	//app << "#ScDiff\n" << mPassContribution << endl;
-	//app << "#GvsRuns\n" << mGvsPass << endl;	
+	if (0)
+	{
+		app << "#ReverseSamples\n" << mReverseSamples << endl;
+		app << "#BorderSamples\n" << mBorderSamples << endl;
+
+		app << "#Pass\n" << mPass << endl;
+		app << "#ScDiff\n" << mPassContribution << endl;
+		app << "#GvsRuns\n" << mGvsPass << endl;	
+
+		app	<< "#SamplesContri\n" << mTotalContribution << endl;
+	}
 
 	app << endl;
@@ -1261,6 +1263,10 @@
 	ProcessViewCell();
 
-	mGvsStats.mTrianglePvs = (int)mTrianglePvs.size();
-	mGvsStats.mTotalTrianglePvs += mGvsStats.mTrianglePvs;
+	
+	////////
+	//-- stats
+
+	// compute pvs size using larger (bvh objects)
+	// note: for kd pvs we had to do this during gvs computation
 
 	if (!mUseKdPvs)
@@ -1283,4 +1289,5 @@
 
 		mGvsStats.mPerViewCellPvs = (int)objectPvs.size();
+		mGvsStats.mPvsCost = 0; // todo objectPvs.EvalPvsCost();
 	}
 	else
@@ -1289,25 +1296,29 @@
 		mGvsStats.mPvsCost = mCurrentViewCell->GetPvs().EvalPvsCost();
 
-		cout << "id: " << mCurrentViewCell->GetId() << " pvs cost: " 
-			 << mGvsStats.mPvsCost << " pvs tri: " << mTrianglePvs.size() << endl;
-	}
-
-
-	////////
-	//-- stats
-
-	mGvsStats.mViewCells = mProcessedViewCells;//mPass;
-	mGvsStats.mTotalPvs += mGvsStats.mPerViewCellPvs;
-	mGvsStats.mTotalSamples += mGvsStats.mPerViewCellSamples;
-
+	}
+
+	mGvsStats.mTrianglePvs = (int)mTrianglePvs.size();
+	
 	// timing
 	const long currentTime = GetTime();
-
 	mGvsStats.mTimePerViewCell = TimeDiff(startTime, currentTime) * 1e-3f;
+
+
+	////////////////
+	// global values
+
+	mGvsStats.mViewCells = mProcessedViewCells;//mPass;
+	mGvsStats.mTotalTrianglePvs += mGvsStats.mTrianglePvs;
 	mGvsStats.mTotalTime += mGvsStats.mTimePerViewCell;
+    mGvsStats.mTotalPvs += mGvsStats.mPerViewCellPvs;
+	mGvsStats.mTotalSamples += mGvsStats.mPerViewCellSamples;
 
 	mGvsStats.Stop();
 	mGvsStats.Print(mGvsStatsStream);
 
+	cout << "id: " << mCurrentViewCell->GetId() << " pvs cost: " 
+	 << mGvsStats.mPvsCost << " pvs tri: " << mTrianglePvs.size() << endl;
+
+
 	mTrianglePvs.clear();
 }
