Panagiotis Christopoulos Charitos 14 năm trước cách đây
mục cha
commit
1411bb2cff

+ 28 - 24
build/release/Makefile

@@ -4076,19 +4076,19 @@ Pps.o: ../../src/Renderer/Pps.cpp ../../src/Renderer/Pps.h \
  ../../src/Resources/ShaderProg/SProgUniVar.h \
  ../../src/Resources/ShaderProg/SProgVar.h \
  ../../src/Resources/ShaderProg/SProgAttribVar.h \
- ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
  ../../src/Renderer/BufferObjects/Vao.h ../../src/Core/Object.h \
- ../../src/Misc/GlException.h ../../src/Renderer/Ms.h \
- ../../src/Renderer/Ez.h ../../src/Renderer/Is.h ../../src/Renderer/Sm.h \
- ../../src/Scene/VisibilityTester.h ../../src/Renderer/Smo.h \
- ../../src/Scene/Cameras/Camera.h ../../src/Collision/Collision.h \
- ../../src/Collision/Plane.h ../../src/Collision/CollisionShape.h \
- ../../src/Collision/Sphere.h ../../src/Collision/Sphere.inl.h \
- ../../src/Collision/Obb.h ../../src/Collision/Obb.inl.h \
- ../../src/Scene/SceneNode.h ../../src/Collision/Obb.h \
- ../../src/Renderer/Bs.h ../../src/Renderer/Dbg.h \
- ../../src/Renderer/Drawers/SceneDbgDrawer.h \
+ ../../src/Misc/GlException.h ../../src/Renderer/Renderer.h \
+ ../../src/Renderer/Ms.h ../../src/Renderer/Ez.h ../../src/Renderer/Is.h \
+ ../../src/Renderer/Sm.h ../../src/Scene/VisibilityTester.h \
+ ../../src/Renderer/Smo.h ../../src/Scene/Cameras/Camera.h \
+ ../../src/Collision/Collision.h ../../src/Collision/Plane.h \
+ ../../src/Collision/CollisionShape.h ../../src/Collision/Sphere.h \
+ ../../src/Collision/Sphere.inl.h ../../src/Collision/Obb.h \
+ ../../src/Collision/Obb.inl.h ../../src/Scene/SceneNode.h \
+ ../../src/Collision/Obb.h ../../src/Renderer/Bs.h \
+ ../../src/Renderer/Dbg.h ../../src/Renderer/Drawers/SceneDbgDrawer.h \
  ../../src/Renderer/Drawers/CollisionDbgDrawer.h \
  ../../src/Renderer/Drawers/SceneDrawer.h \
  ../../src/Resources/Material/MtlUserDefinedVar.h \
@@ -4493,21 +4493,21 @@ Ssao.o: ../../src/Renderer/Ssao.cpp ../../src/Renderer/Ssao.h \
  ../../src/Resources/Texture/Image.h ../../src/Resources/Mesh/MeshData.h \
  ../../src/Resources/Core/ResourceManager.inl.h ../../src/Core/Logger.h \
  ../../src/Resources/Core/RsrcPtr.inl.h \
- ../../src/Resources/Core/RsrcPtr.h ../../src/Renderer/Renderer.h \
+ ../../src/Resources/Core/RsrcPtr.h \
  ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
  ../../src/Renderer/BufferObjects/Vao.h ../../src/Core/Object.h \
- ../../src/Misc/GlException.h ../../src/Renderer/Ms.h \
- ../../src/Renderer/Ez.h ../../src/Renderer/Is.h ../../src/Renderer/Sm.h \
- ../../src/Scene/VisibilityTester.h ../../src/Renderer/Smo.h \
- ../../src/Scene/Cameras/Camera.h ../../src/Collision/Collision.h \
- ../../src/Collision/Plane.h ../../src/Collision/CollisionShape.h \
- ../../src/Collision/Sphere.h ../../src/Collision/Sphere.inl.h \
- ../../src/Collision/Obb.h ../../src/Collision/Obb.inl.h \
- ../../src/Scene/SceneNode.h ../../src/Collision/Obb.h \
- ../../src/Renderer/Pps.h ../../src/Renderer/Hdr.h \
- ../../src/Renderer/Bs.h ../../src/Renderer/Dbg.h \
- ../../src/Renderer/Drawers/SceneDbgDrawer.h \
+ ../../src/Misc/GlException.h ../../src/Renderer/Renderer.h \
+ ../../src/Renderer/Ms.h ../../src/Renderer/Ez.h ../../src/Renderer/Is.h \
+ ../../src/Renderer/Sm.h ../../src/Scene/VisibilityTester.h \
+ ../../src/Renderer/Smo.h ../../src/Scene/Cameras/Camera.h \
+ ../../src/Collision/Collision.h ../../src/Collision/Plane.h \
+ ../../src/Collision/CollisionShape.h ../../src/Collision/Sphere.h \
+ ../../src/Collision/Sphere.inl.h ../../src/Collision/Obb.h \
+ ../../src/Collision/Obb.inl.h ../../src/Scene/SceneNode.h \
+ ../../src/Collision/Obb.h ../../src/Renderer/Pps.h \
+ ../../src/Renderer/Hdr.h ../../src/Renderer/Bs.h \
+ ../../src/Renderer/Dbg.h ../../src/Renderer/Drawers/SceneDbgDrawer.h \
  ../../src/Renderer/Drawers/CollisionDbgDrawer.h \
  ../../src/Renderer/Drawers/SceneDrawer.h \
  ../../src/Resources/Material/MtlUserDefinedVar.h \
@@ -6150,7 +6150,11 @@ Pps.bpi.o: ../../src/Scripting/Renderer/Pps.bpi.cpp \
  ../../src/Util/CharPtrHashMap.h \
  ../../src/Resources/ShaderProg/SProgUniVar.h \
  ../../src/Resources/ShaderProg/SProgVar.h \
- ../../src/Resources/ShaderProg/SProgAttribVar.h ../../src/Renderer/Hdr.h
+ ../../src/Resources/ShaderProg/SProgAttribVar.h \
+ ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Renderer/BufferObjects/BufferObject.h \
+ ../../src/Renderer/BufferObjects/Vao.h ../../src/Core/Object.h \
+ ../../src/Misc/GlException.h ../../src/Renderer/Hdr.h
 	@echo Compiling ../../src/Scripting/Renderer/Pps.bpi.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scripting/Renderer/Pps.bpi.cpp -o Pps.bpi.o
 

BIN
engine-rsrc/noise.png


BIN
engine-rsrc/noise3.png


+ 0 - 2
shaders/Final.glsl

@@ -15,7 +15,5 @@ void main()
 	//if( gl_FragCoord.x > 0.5 ) discard;
 
 	//fFragColor = texture2D(rasterImage, vTexCoords).rgb;
-	
 	fFragColor = vec3(texture2D(rasterImage, vTexCoords).r);
-	
 }

+ 13 - 11
shaders/PpsSsao-2.glsl

@@ -30,10 +30,10 @@ uniform sampler2D msDepthFai; ///< for the calculation of frag pos in view space
 uniform sampler2D noiseMap;
 uniform sampler2D msNormalFai;
 uniform float noiseMapSize = 100.0; /// Used in getRandom
-uniform float sampleRad = 0.006;  /// Used in main
-uniform float scale = 0.01; /// Used in doAmbientOcclusion
-uniform float intensity = 0.5; /// Used in doAmbientOcclusion
-uniform float bias = 0.01; /// Used in doAmbientOcclusion
+uniform float sampleRad = 0.1;  /// Used in main
+uniform float scale = 1.0; /// Used in doAmbientOcclusion
+uniform float intensity = 1.0; /// Used in doAmbientOcclusion
+uniform float bias = 0.001; /// Used in doAmbientOcclusion
 uniform vec2 screenSize; /// Used in getRandom
 /// @}
 
@@ -87,17 +87,15 @@ float doAmbientOcclusion(in vec2 tcoord, in vec2 uv, in vec3 p, in vec3 cnorm)
 
 
 void main(void)
-{
-	fColor = 1.0f;
-	
-	const vec3 kernel[4] = vec3[](vec2(1, 0), vec2(-1, 0), vec2(0, 1), vec2(0, -1));
+{	
+	const vec2 kernel[4] = vec2[](vec2(1, 0), vec2(-1, 0), vec2(0, 1), vec2(0, -1));
 
 	vec3 p = getPosition(vTexCoords);
 	vec3 n = getNormal(vTexCoords);
 	vec2 rand = getRandom(vTexCoords);
 
 	float ao = 0.0f;
-	float rad = sampleRad / p.z;
+	float rad = sampleRad ;// p.z;
 
 	// SSAO Calculation
 	const int ITERATIONS = 4;
@@ -111,8 +109,12 @@ void main(void)
 		ao += doAmbientOcclusion(vTexCoords, coord1 * 0.75, p, n);
 		ao += doAmbientOcclusion(vTexCoords, coord2, p, n);
 	} 
-	ao /= 4.0;
+	ao /= ITERATIONS * 4.0;
 
-	fColor = ao;
+	fColor = 1 - ao;
+	
+	
+	/*vec2 v = getRandom(vTexCoords);	
+	fColor = (fColor - fColor) + ((v.x + v.y) / 2.0);*/
 }
 

+ 1 - 1
src/Renderer/MainRenderer.cpp

@@ -101,7 +101,7 @@ void MainRenderer::render(Camera& cam_)
 	glDisable(GL_BLEND);
 	sProg->bind();
 	//sProg->findUniVar("rasterImage")->setTexture(ms.getNormalFai(), 0);
-	sProg->findUniVar("rasterImage")->set(pps.getSsao().getFai(), 0);
+	sProg->findUniVar("rasterImage")->set(pps.getSsao().ssaoFai, 0);
 	//sProg->findUniVar("rasterImage")->set(pps.getPostPassFai(), 0);
 	drawQuad();
 }

+ 6 - 6
src/Renderer/Ssao.cpp

@@ -67,7 +67,7 @@ void Ssao::init(const RendererInitializer& initializer)
 	//
 
 	// first pass prog
-	ssaoSProg.loadRsrc("shaders/PpsSsao.glsl");
+	ssaoSProg.loadRsrc("shaders/PpsSsao-2.glsl");
 
 	// blurring progs
 	const char* SHADER_FILENAME = "shaders/GaussianBlurGeneric.glsl";
@@ -86,17 +86,17 @@ void Ssao::init(const RendererInitializer& initializer)
 
 	/// @todo fix this crap
 	// load noise map and disable temporally the texture compression and enable mipmapping
-	/*bool texCompr = Texture::compressionEnabled;
+	bool texCompr = Texture::compressionEnabled;
 	bool mipmaping = Texture::mipmappingEnabled;
 	Texture::compressionEnabled = false;
-	Texture::mipmappingEnabled = true;*/
-	noiseMap.loadRsrc("gfx/noise3.tga");
-	/*noiseMap->setTexParameter(GL_TEXTURE_WRAP_S, GL_REPEAT);
+	Texture::mipmappingEnabled = true;
+	noiseMap.loadRsrc("engine-rsrc/noise.png");
+	noiseMap->setTexParameter(GL_TEXTURE_WRAP_S, GL_REPEAT);
 	noiseMap->setTexParameter(GL_TEXTURE_WRAP_T, GL_REPEAT);
 	//noise_map->setTexParameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 	//noise_map->setTexParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 	Texture::compressionEnabled = texCompr;
-	Texture::mipmappingEnabled = mipmaping;*/
+	Texture::mipmappingEnabled = mipmaping;
 	
 	//
 	// Geom

+ 1 - 1
src/Renderer/Ssao.h

@@ -30,7 +30,7 @@ class Ssao: private RenderingPass
 		const Texture& getFai() const {return fai;}
 		/// @}
 
-	private:
+	public: /// @todo make private
 		Texture ssaoFai; ///< It contains the unblurred SSAO factor
 		Texture hblurFai;
 		Texture fai;  ///< AKA vblurFai The final FAI

+ 1 - 1
src/Resources/Texture/Texture.cpp

@@ -14,7 +14,7 @@
 //======================================================================================================================
 int Texture::textureUnitsNum = -1;
 bool Texture::mipmappingEnabled = true;
-bool Texture::compressionEnabled = true;
+bool Texture::compressionEnabled = false;
 int Texture::anisotropyLevel = 8;