#include "engine/camera.hpp" #include "engine/largepos.hpp" #include "engine/light.hpp" #include "engine/object.hpp" #include "engine/planet.hpp" #include "engine/rendering.hpp" #include "engine/shader.hpp" #include "engine/simple-shapes.hpp" #include "engine/texture.hpp" #include "engine/multipass.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void cke(){ GLenum err = glGetError(); if (err != GL_NO_ERROR) { std::cout<<"\n" << err << "frm\n"; exit(-1); } } void printerror(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam){ std::cout<vertices; test2.genVbo(pltm.vertices, pltm.numverts); test2.setVertexAtribPointer("position", 0); test2.genEbo(pltm.indices, pltm.numindecies); test2.setBuffer(color, sizeof(color) / sizeof(color[1]), test2.COLOR_BUFFER); test2.setVertexAtribPointer("color", 0); test2.scaleMatrix=glm::scale(glm::mat4(1.0), glm::vec3(1.0)); test2.positionMatrix = glm::translate(test2.positionMatrix, glm::vec3(0.f,-0.5f,-1.f)); test2.rotationMatrix=glm::rotate(glm::mat4(1.0f), (float)glm::radians(180.0), glm::vec3(0.0,1.0,0.0)); test2.distmult=1.0; test.rend_shader->use(); camera mainCamera; mainCamera.proj= glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, renderer.farClipPlane); mainCamera.view= glm::lookAt(glm::vec3(1.2f, 1.2f, 1.2f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 0.0f, 1.0f)); test.shdViewId=test.rend_shader->getUniformId("view"); test.shdProjId=test.rend_shader->getUniformId("proj"); test.shdTrnsId=test.rend_shader->getUniformId("trans"); test2.shdViewId=test2.rend_shader->getUniformId("view"); test2.shdProjId=test2.rend_shader->getUniformId("proj"); test2.shdTrnsId=test2.rend_shader->getUniformId("trans"); test2.spacePos.fx=100.0; test2.spaceAct=true; renderer.shaders.at(2).use(); Gbuffer gbuf; gbuf.init(800, 600); gbuf.bind(); renderer.mkDepthBuffer(); mainCamera.pos=glm::vec3(1.2f,6.2f,1.2f); renderer.lights.push_back(light(glm::vec3(0.f,0.f,5.f))); // trans = glm::rotate(trans, glm::radians(10.0f), glm::vec3(0.0f, // 0.0f, 1.0f)); /*texture tex; tex.loadFromPath("sample.png", VELAGE_generateTextureSettings(GL_CLAMP_TO_EDGE, GL_LINEAR), GL_TEXTURE0); tex.setTexUniformLocation("tex1", 0, test.rend_shader);*/ // std::cout<>( t_now - t_start) .count(); currentframe=time; deltaTime=currentframe-lastframe; lastframe=currentframe; test2.updateMatrix(mainCamera); glm::mat4 trans = glm::mat4(1.0f); trans = glm::rotate(trans, time * glm::radians(180.0f), glm::vec3(0.0f, 0.0f, 1.0f)); test.rotationMatrix = trans; mainCamera.update(); largePos a; largePos b; a.fx=20; b.fx=10; //std::cout<<(a-b).fx<<"ä\n"; renderer.render(mainCamera, &renderer.shaders.at(3), &renderer.shaders.at(4), &gbuf); renderer.shaders.at(0).use(); //test.render(mainCamera); SDL_GL_SwapWindow(window); SDL_Delay(16); } SDL_GL_DeleteContext(renderer.context); SDL_Quit(); return 0; } // renderer.shaders.at(3).use(); // glUniform3f(renderer.shaders.at(3).getUniformId("lights[0].Position"), 0.f,0.f,5.f); // glUniform3f(renderer.shaders.at(3).getUniformId("lights[0].Color"), 1.f,1.f,1.f); // test.renderShadows(light(glm::vec3(0.,0.,5.)), renderer.SHADOW_WIDTH, renderer.SHADOW_HEIGHT, renderer.depthCubemap, &renderer.shaders.at(3), renderer.depthFBO, renderer.farClipPlane, true); // test2.renderShadows(light(glm::vec3(0.,0.,5.)), renderer.SHADOW_WIDTH, renderer.SHADOW_HEIGHT, renderer.depthCubemap, &renderer.shaders.at(3), renderer.depthFBO, renderer.farClipPlane); // cke();// return -1; // renderer.shaders.at(1).use(); // glActiveTexture(GL_TEXTURE0); // glBindTexture(GL_TEXTURE_CUBE_MAP, renderer.depthCubemap); // glUniform1i(renderer.shaders.at(1).getUniformId("depthMap"), 0); // gbuf.bindW(); // gbuf.clear(); // glUniform3f(renderer.shaders.at(1).getUniformId("lights[0].Position"), 0.f,0.f,5.f); // glUniform3f(renderer.shaders.at(1).getUniformId("lights[0].Color"), 1.f,1.f,1.f); // glUniform1f(renderer.shaders.at(1).getUniformId("far_plane"), 100.f); // test.render(mainCamera); // test2.render(mainCamera); // renderer.shaders.at(2).use(); // glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); // gbuf.bindR(); // // tex 0 position // // tex 1 normals // // tex 2 diffuse (albedo) // // tex 3 texcoord // // tex 4 shadow // renderer.setupTextureDS(gbuf); // glUniform1i(renderer.shaders.at(2).getUniformId("gPosition"),0); // glUniform1i(renderer.shaders.at(2).getUniformId("gNormal"),1); // glUniform1i(renderer.shaders.at(2).getUniformId("gAlbedoSpec"),2); // glUniform1i(renderer.shaders.at(2).getUniformId("gShadow"),4); // glUniform3f(renderer.shaders.at(2).getUniformId("lights[0].Position"), 0.f,0.f,0.f); // glUniform3f(renderer.shaders.at(2).getUniformId("lights[0].Color"), 1.f,1.f,1.f); // if(firstMouse){ // firstMouse=false; // //std::cout<<"löoel "<< renderer.shaders.at(3).geometryShader<<" \n"; // } // renderer.renderlighting(renderer.shaders.at(2).getInputId("position"),renderer.shaders.at(2).getInputId("TexCoord")); // renderer.cpyDepthBuffer(gbuf.fbo); //enderer.shaders.at(0).use(); // if(firstMouse){ // //firstMouse=false; // // std::cout<<"\n"<