Exemple #1
0
	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");

		
	}
Exemple #2
0
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() ;
}
Exemple #5
0
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();
}
Exemple #6
0
	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");
	}
Exemple #7
0
void DualDepthPeeling::SetWidthHeight(int width, int height){
	FreeFBO();
	InitFBO(width, height);
}
Exemple #8
0
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;
}