Browse Source

Now the engine is 3.3 core. At last

Panagiotis Christopoulos Charitos 15 năm trước cách đây
mục cha
commit
187fc9b524

+ 4 - 2
shaders/BsRefract.glsl

@@ -6,9 +6,11 @@
 
 uniform sampler2D fai;
 
-varying vec2 vTexCoords;
+in vec2 vTexCoords;
+
+layout(location = 0) out vec4 fFragColor;
 
 void main()
 {
-	gl_FragData[0] = texture2D(fai, vTexCoords);
+	fFragColor = texture2D(fai, vTexCoords);
 }

+ 22 - 4
src/Main.cpp

@@ -33,9 +33,11 @@
 #include "StdinListener.h"
 #include "Messaging.h"
 #include "ModelNode.h"
+#include "SkelAnimModelNodeCtrl.h"
+#include "Model.h"
 
 // map (hard coded)
-ModelNode* floor__,* sarge,* horse,* crate;
+ModelNode* floor__,* sarge,* horse,* crate, *imp;
 //SkelModelNode* imp;
 PointLight* point_lights[10];
 SpotLight* spot_lights[2];
@@ -156,15 +158,31 @@ void init()
 	spot_lights[1]->init("maps/temple/light3.light");
 	spot_lights[1]->setLocalTransform(Transform(Vec3(-2.3, 6.3, 2.9), Mat3(Euler(toRad(-70), toRad(-20), 0.0)), 1.0));
 
-	/*const char* skybox_fnames [] = { "textures/env/hellsky4_forward.tga", "textures/env/hellsky4_back.tga", "textures/env/hellsky4_left.tga",
-																	 "textures/env/hellsky4_right.tga", "textures/env/hellsky4_up.tga", "textures/env/hellsky4_down.tga" };
-	app->getScene().skybox.load(skybox_fnames);*/
 
 	// horse
 	horse = new ModelNode();
 	horse->init("meshes/horse/horse.mdl");
 	horse->setLocalTransform(Transform(Vec3(-2, 0, 1), Mat3::getIdentity(), 1.0));
 
+
+	// Sponza
+	ModelNode* sponza = new ModelNode();
+	sponza->init("maps/sponza/sponza.mdl");
+
+
+	// Pentagram
+	ModelNode* pentagram = new ModelNode();
+	pentagram->init("models/pentagram/pentagram.mdl");
+	pentagram->setLocalTransform(Transform(Vec3(2, 0, 0), Mat3::getIdentity(), 1.0));
+
+
+	// Imp
+	imp = new ModelNode();
+	imp->init("models/imp/imp.mdl");
+	imp->skelAnimModelNodeCtrl = new SkelAnimModelNodeCtrl(*imp);
+	imp->skelAnimModelNodeCtrl->set(imp->getModel().getSkelAnims()[0].get());
+	imp->skelAnimModelNodeCtrl->setStep(0.8);
+
 	return;
 
 	// sarge

+ 3 - 2
src/Renderer/MainRenderer.cpp

@@ -9,6 +9,7 @@
 #include "App.h"
 #include "RendererInitializer.h"
 #include "Messaging.h"
+#include "Ssao.h"
 
 
 //======================================================================================================================
@@ -102,8 +103,8 @@ void MainRenderer::render(Camera& cam_)
 	glDisable(GL_DEPTH_TEST);
 	glDisable(GL_BLEND);
 	sProg->bind();
-	sProg->findUniVar("rasterImage")->setTexture(is->getFai(), 0);
-	//sProg->findUniVar("rasterImage")->setTexture(pps.postPassFai, 0);
+	//sProg->findUniVar("rasterImage")->setTexture(pps->getSsao().getFai(), 0);
+	sProg->findUniVar("rasterImage")->setTexture(pps->getPostPassFai(), 0);
 	drawQuad();
 }
 

+ 1 - 1
src/Renderer/Pps.cpp

@@ -127,7 +127,7 @@ void Pps::runPrePass()
 
 	if(ssao->isEnabled())
 	{
-		prePassSProg->findUniVar("ppsSsaoFai")->setTexture(ssao->fai, 1);
+		prePassSProg->findUniVar("ppsSsaoFai")->setTexture(ssao->getFai(), 1);
 	}
 
 	r.drawQuad();

+ 1 - 0
src/Renderer/Pps.h

@@ -29,6 +29,7 @@ class Pps: private RenderingPass
 		/// @name Accessors
 		/// @{
 		Hdr& getHdr() {return *hdr;}
+		Ssao& getSsao() {return *ssao;}
 		/// @}
 
 	private:

+ 5 - 5
src/Renderer/Renderer.cpp

@@ -46,8 +46,8 @@ void Renderer::init(const RendererInitializer& initializer)
 	// init the stages. Careful with the order!!!!!!!!!!
 	ms->init(initializer);
 	is->init(initializer);
-	/*pps.init(initializer);
-	bs.init(initializer);*/
+	pps->init(initializer);
+	bs->init(initializer);
 
 	// quad VBOs and VAO
 	float quadVertCoords[][2] = {{1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}};
@@ -73,9 +73,9 @@ void Renderer::render(Camera& cam_)
 
 	ms->run();
 	is->run();
-	/*pps.runPrePass();
-	bs.run();
-	pps.runPostPass();*/
+	pps->runPrePass();
+	bs->run();
+	pps->runPostPass();
 
 	++framesNum;
 }

+ 4 - 4
src/Renderer/Ssao.h

@@ -17,10 +17,6 @@
 class Ssao: private RenderingPass
 {
 	public:
-		Texture ssaoFai; ///< It contains the unblurred SSAO factor
-		Texture hblurFai;
-		Texture fai;  ///< AKA vblurFai The final FAI
-
 		Ssao(Renderer& r_, Object* parent): RenderingPass(r_, parent) {}
 		void init(const RendererInitializer& initializer);
 		void run();
@@ -29,9 +25,13 @@ class Ssao: private RenderingPass
 		/// @{
 		bool isEnabled() const {return enabled;}
 		float getRenderingQuality() const {return renderingQuality;}
+		const Texture& getFai() const {return fai;}
 		/// @}
 
 	private:
+		Texture ssaoFai; ///< It contains the unblurred SSAO factor
+		Texture hblurFai;
+		Texture fai;  ///< AKA vblurFai The final FAI
 		bool enabled;
 		float renderingQuality;
 		float blurringIterations;

+ 2 - 1
src/Scene/Controllers/SkelAnimModelNodeCtrl.cpp

@@ -12,7 +12,8 @@
 //======================================================================================================================
 SkelAnimModelNodeCtrl::SkelAnimModelNodeCtrl(ModelNode& modelNode_):
 	Controller(CT_SKEL_ANIM),
-	modelNode(modelNode_)
+	modelNode(modelNode_),
+	frame(0.0)
 {}
 
 

+ 3 - 1
src/Scene/Controllers/SkelAnimModelNodeCtrl.h

@@ -5,6 +5,7 @@
 #include "Controller.h"
 #include "Math.h"
 #include "RsrcPtr.h"
+#include "Properties.h"
 
 
 class Skeleton;
@@ -15,13 +16,14 @@ class ModelNode;
 /// SkelAnim controls a ModelNode
 class SkelAnimModelNodeCtrl: public Controller
 {
+	PROPERTY_RW(float, step, setStep, getStep)
+
 	public:
 		SkelAnimModelNodeCtrl(ModelNode& skelNode_);
 		void update(float time);
 		void set(const SkelAnim* skelAnim_) {skelAnim = skelAnim_;}
 
 	private:
-		float step;
 		float frame;
 		const SkelAnim* skelAnim; ///< The active skeleton animation
 		ModelNode& modelNode; ///< Know your father

+ 1 - 1
src/Util/Exception.cpp

@@ -9,7 +9,7 @@
 void Exception::init(const char* err_, const char* file, int line, const char* func)
 {
 	char tmpStr[1024];
-	sprintf(tmpStr, "(%s:%d %s) %s", file, line, func, err_);
+	sprintf(tmpStr, "\n(%s:%d %s) %s", file, line, func, err_);
 	//sprintf(tmpStr, "%s", err_);
 	err = tmpStr;
 }