void BlurPainter::Initialize(GLuint FBO, GLuint dummyVAO) { BasePainter::Initialize(FBO, dummyVAO); m_intermediateTexture = new FBOTexture(); m_occlusionRadius = 3.0f; m_maxOcclusionDistance = 12.0f; InitFBO(); m_shaderManager->ResetProgram(); m_seedTexture = TextureManager::LoadFromFile("assets/texture/noise.png", GL_TEXTURE_2D, GL_RGBA, GL_RGBA, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT); m_shaderManager->ResetProgram(); m_shaderManager->CreateProgram("GaussianBlurHorizontal"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "GBHVS", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "GBHGS", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/PostProcessing/GaussianBlurHorizontalFS.glsl", "GBHFS", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("GBHVS", "GaussianBlurHorizontal"); m_shaderManager->AttachShader("GBHGS", "GaussianBlurHorizontal"); m_shaderManager->AttachShader("GBHFS", "GaussianBlurHorizontal"); m_shaderManager->LinkProgram("GaussianBlurHorizontal"); m_shaderManager->CreateProgram("GaussianBlurVertical"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "GBVVS", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "GBVGS", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/PostProcessing/GaussianBlurVerticalFS.glsl", "GBVFS", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("GBVVS", "GaussianBlurVertical"); m_shaderManager->AttachShader("GBVGS", "GaussianBlurVertical"); m_shaderManager->AttachShader("GBVFS", "GaussianBlurVertical"); m_shaderManager->LinkProgram("GaussianBlurVertical"); m_shaderManager->CreateProgram("GaussianBlurHorizontal_old"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "GBHVS_old", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "GBHGS_old", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/PostProcessing/GaussianBlurHorizontalFS_old.glsl", "GBHFS_old", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("GBHVS_old", "GaussianBlurHorizontal_old"); m_shaderManager->AttachShader("GBHGS_old", "GaussianBlurHorizontal_old"); m_shaderManager->AttachShader("GBHFS_old", "GaussianBlurHorizontal_old"); m_shaderManager->LinkProgram("GaussianBlurHorizontal_old"); m_shaderManager->CreateProgram("GaussianBlurVertical_old"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "GBVVS_old", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "GBVGS_old", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/PostProcessing/GaussianBlurVerticalFS_old.glsl", "GBVFS_old", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("GBVVS_old", "GaussianBlurVertical_old"); m_shaderManager->AttachShader("GBVGS_old", "GaussianBlurVertical_old"); m_shaderManager->AttachShader("GBVFS_old", "GaussianBlurVertical_old"); m_shaderManager->LinkProgram("GaussianBlurVertical_old"); m_horizontalBlurFactorUniform = m_shaderManager->GetUniformLocation("GaussianBlurHorizontal", "gBlurFactor"); m_verticalBlurFactorUniform = m_shaderManager->GetUniformLocation("GaussianBlurVertical", "gBlurFactor"); }
void GraphicsEngine::Init(int width, int height) { InitFBO(); Resource.Init(); Quad.Init(); font->Init(); pp->Init(width, height); glLineWidth(2); glEnable(GL_CULL_FACE); }
int Init ( ESContext *esContext ) { glClearColor ( 0.0f, 0.0f, 0.0f, 0.0f ); //Init matrix tranform coordinate from clip space to texture space (texture transform matrix) //... InitResource(); InitObjects(); InitFBO(); InitFBO_(); return 0; }
void glut_viewer_hdr_init() { glut_viewer_get_screen_size(&WINDOW_WIDTH, &WINDOW_HEIGHT) ; if(!InitShaders()) { std::cerr << "could not init shaders" << std::endl ; exit(-1) ; } if(!InitFBO()) { std::cerr << "could not init FBO" << std::endl ; exit(-1) ; } glClampColorARB(GL_CLAMP_VERTEX_COLOR_ARB, GL_FALSE) ; glClampColorARB(GL_CLAMP_FRAGMENT_COLOR_ARB, GL_FALSE) ; InitBlur() ; }
void reshape(GLint width, GLint height) { g_Width = width; g_Height = height; printf("--- MIDISYS ENGINE: reshape event: %dx%d\n", (int)width, (int)height); glViewport(0, 0, g_Width, g_Height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(65.0, (float)g_Width / g_Height, g_nearPlane, g_farPlane); glMatrixMode(GL_MODELVIEW); glDeleteTextures(1, &fb_tex); glDeleteRenderbuffersEXT(1, &depth_rb); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glDeleteFramebuffersEXT(1, &fb); InitFBO(); }
void GIPainter::Initialize(GLuint FBO, GLuint dummyVAO, int screenWidth, int screenHeight) { BasePainter::Initialize(FBO, dummyVAO); m_screenWidth = screenWidth; m_screenHeight = screenHeight; m_SSDOTexture = new FBOTexture(); m_occlusionRadius = 3.0f; m_maxOcclusionDistance = 14.0f; InitFBO(); Resize(screenWidth, screenHeight); m_shaderManager->ResetProgram(); m_shaderManager->CreateProgram("DSSDO"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "DSSDOVS", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "DSSDOGS", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/GlobalIllumination/DSSDOFS.glsl", "DSSDOFS", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("DSSDOVS", "DSSDO"); m_shaderManager->AttachShader("DSSDOGS", "DSSDO"); m_shaderManager->AttachShader("DSSDOFS", "DSSDO"); m_shaderManager->LinkProgram("DSSDO"); m_shaderManager->UseProgram("DSSDO"); m_invProjUniform = m_shaderManager->GetUniformLocation("DSSDO", "gInvProjView"); m_eyePosUniform = m_shaderManager->GetUniformLocation("DSSDO", "gEyePosition"); m_screenSizeUniform = m_shaderManager->GetUniformLocation("DSSDO", "gScreenSize"); m_maxOcclusionDistanceUniform = m_shaderManager->GetUniformLocation("DSSDO", "gMaxOcclusionDistance"); m_occlusionRadiusUniform = m_shaderManager->GetUniformLocation("DSSDO", "gOcclusionRadius"); m_normalDepthUniform = m_shaderManager->GetUniformLocation("DSSDO", "gNormals_depth"); m_noiseUniform = m_shaderManager->GetUniformLocation("DSSDO", "gNoiseTexture"); m_seedTexture = TextureManager::LoadFromFile("assets/texture/noise.png", GL_TEXTURE_2D, GL_RGBA, GL_RGBA, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT); m_shaderManager->ResetProgram(); m_shaderManager->CreateProgram("SSDORadiance"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "RadianceVS", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "RadianceGS", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/GlobalIllumination/SSDORadianceFS.glsl", "RadianceFS", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("RadianceVS", "SSDORadiance"); m_shaderManager->AttachShader("RadianceGS", "SSDORadiance"); m_shaderManager->AttachShader("RadianceFS", "SSDORadiance"); m_shaderManager->LinkProgram("SSDORadiance"); m_shaderManager->UseProgram("SSDORadiance"); m_shaderManager->CreateProgram("SSDO"); m_shaderManager->LoadShader("shaders/RenderToQuad/Quad.vertex", "SSDOVS", GL_VERTEX_SHADER); m_shaderManager->LoadShader("shaders/FSQuadGS.glsl", "SSDOGS", GL_GEOMETRY_SHADER); m_shaderManager->LoadShader("shaders/GlobalIllumination/SSDOFS.glsl", "SSDOFS", GL_FRAGMENT_SHADER); m_shaderManager->AttachShader("SSDOVS", "SSDO"); m_shaderManager->AttachShader("SSDOGS", "SSDO"); m_shaderManager->AttachShader("SSDOFS", "SSDO"); m_shaderManager->LinkProgram("SSDO"); m_shaderManager->UseProgram("SSDO"); }
void DualDepthPeeling::SetWidthHeight(int width, int height){ FreeFBO(); InitFBO(width, height); }
void InitGL_AG2(int w, int h) { Uint32 flags; int bpp = 32; int rgb_size[3]; char *ext; if(InitVideo) return; InitVideo = TRUE; vram_pb = NULL; vram_pg = NULL; vram_pr = NULL; #ifdef _USE_OPENCL cldraw = NULL; #endif flags = SDL_OPENGL | SDL_RESIZABLE; switch (bpp) { case 8: rgb_size[0] = 3; rgb_size[1] = 3; rgb_size[2] = 2; break; case 15: case 16: rgb_size[0] = 5; rgb_size[1] = 5; rgb_size[2] = 5; break; default: rgb_size[0] = 8; rgb_size[1] = 8; rgb_size[2] = 8; break; } /* * GL 拡張の取得 20110907- */ InitVramSemaphore(); uVramTextureID = 0; uNullTextureID = 0; pVram2 = NULL; #ifdef _USE_OPENCL bInitCL = FALSE; nCLGlobalWorkThreads = 10; bCLSparse = FALSE; // TRUE=Multi threaded CL,FALSE = Single Thread. nCLPlatformNum = 0; nCLDeviceNum = 0; bCLInteropGL = FALSE; //bCLDirectMapping = FALSE; #endif InitVirtualVram(); //if(AG_UsingSDL(NULL)) { InitFBO(); // 拡張の有無を調べてからFBOを初期化する。 // FBOの有無を受けて、拡張の有無変数を変更する(念のために) InitGLExtensionVars(); InitGridVertexs(); // Grid初期化 //} fBrightR = 1.0; // 輝度の初期化 fBrightG = 1.0; fBrightB = 1.0; return; }