Преглед на файлове

Fix \ground light & investigate tangent bug

Panagiotis Christopoulos Charitos преди 12 години
родител
ревизия
33d0641c93
променени са 5 файла, в които са добавени 10 реда и са изтрити 33 реда
  1. 2 1
      shaders/IsLp.glsl
  2. 0 2
      shaders/Pps.glsl
  3. 4 26
      src/resource/MeshLoader.cpp
  4. 1 1
      src/scene/SceneGraph.cpp
  5. 3 3
      testapp/Main.cpp

+ 2 - 1
shaders/IsLp.glsl

@@ -316,7 +316,8 @@ void main()
 
 
 #if GROUND_LIGHT
-	fColor *= dot(normal, groundLightDir.xyz) + 1.0;
+	fColor += max(dot(normal, groundLightDir.xyz), 0.0) 
+		* vec3(0.1, 0.1, 0.0);
 #endif
 
 #if 0

+ 0 - 2
shaders/Pps.glsl

@@ -59,8 +59,6 @@ vec3 gammaCorrectionRgb(in vec3 gamma, in vec3 col)
 //==============================================================================
 vec3 sharpen(in sampler2D tex, in vec2 texCoords)
 {
-	const vec2 TEX_OFFSET = vec2(1.0 / FBO_WIDTH, 1.0 / FBO_HEIGHT);
-
 	const float sharpenFactor = 0.25;
 
 	vec3 col = texture(tex, texCoords).rgb;

+ 4 - 26
src/resource/MeshLoader.cpp

@@ -41,13 +41,6 @@ void MeshLoader::load(const char* filename)
 	// Try
 	try
 	{
-		std::cout << filename << std::endl;
-
-		if(filename == std::string("data/maps/sponza/sponza_07.mesh"))
-		{
-			std::cout << "ahoy" << std::endl;
-		}
-
 		// Open the file
 		std::fstream file(filename, std::fstream::in | std::fstream::binary);
 
@@ -218,7 +211,7 @@ void MeshLoader::createFaceNormals()
 
 		if(tri.normal != Vec3(0.0))
 		{
-			tri.normal.normalize();
+			//tri.normal.normalize();
 		}
 		else
 		{
@@ -275,7 +268,6 @@ void MeshLoader::createVertTangents()
 		if(isZero(det))
 		{
 			//ANKI_LOGW(getRsrcName() << ": det == " << fixed << det);
-			std::cout << "det sucks" << std::endl;
 			det = 0.0001;
 		}
 		else
@@ -288,11 +280,6 @@ void MeshLoader::createVertTangents()
 		//t.normalize();
 		//b.normalize();
 
-		if(i0 == 2 || i1 == 2 || i2 == 2)
-		{
-			std::cout << "t " << t << " b " << b << std::endl;
-		}
-
 		vertTangents[i0] += Vec4(t, 1.0);
 		vertTangents[i1] += Vec4(t, 1.0);
 		vertTangents[i2] += Vec4(t, 1.0);
@@ -302,27 +289,18 @@ void MeshLoader::createVertTangents()
 		bitagents[i2] += b;
 	}
 
-	for(uint i = 0; i < vertTangents.size(); i++)
+	for(U i = 0; i < vertTangents.size(); i++)
 	{
-		Vec3 t = Vec3(vertTangents[i]);
+		Vec3 t = vertTangents[i].xyz();
 		const Vec3& n = vertNormals[i];
 		Vec3& b = bitagents[i];
 
-		if(t == Vec3(0.0))
-		{
-			std::cout << "t zero " << i << std::endl;
-		}
-		else
-		{
-			std::cout << "t NOT zero" << std::endl;
-		}
-
 		t = t - n * n.dot(t);
 		t.normalize();
 
 		if(!isZero(t.getLength() - 1.0))
 		{
-			std::cout << "t" << t << std::endl;
+			std::cout << "t " << std::endl;
 		}
 
 		b.normalize();

+ 1 - 1
src/scene/SceneGraph.cpp

@@ -102,7 +102,7 @@ SceneGraph::SceneGraph()
 {
 	nodes.reserve(ANKI_CFG_SCENE_NODES_AVERAGE_COUNT);
 
-	ambientCol = Vec3(0.1, 0.05, 0.05) * 2;
+	ambientCol = Vec3(0.1, 0.05, 0.05) * 3;
 }
 
 //==============================================================================

+ 3 - 3
testapp/Main.cpp

@@ -287,7 +287,7 @@ void init()
 	const F32 distPerSec = 2.0;
 	scene.getEventManager().newFollowPathEvent(-1.0, 
 		path->getDistance() / distPerSec, 
-		horse, path, distPerSec);
+		cam, path, distPerSec);
 }
 
 //==============================================================================
@@ -514,7 +514,7 @@ void initSubsystems(int argc, char* argv[])
 	// Window
 	NativeWindowInitializer nwinit;
 	nwinit.width = 1280;
-	nwinit.height = 720;
+	nwinit.height = 800;
 	nwinit.majorVersion = glmajor;
 	nwinit.minorVersion = glminor;
 	nwinit.depthBits = 0;
@@ -534,7 +534,7 @@ void initSubsystems(int argc, char* argv[])
 	initializer.ms.ez.enabled = true;
 	initializer.dbg.enabled = false;
 	initializer.is.sm.bilinearEnabled = true;
-	initializer.is.groundLightEnabled = false;
+	initializer.is.groundLightEnabled = true;
 	initializer.is.sm.enabled = true;
 	initializer.is.sm.pcfEnabled = false;
 	initializer.is.sm.resolution = 512;