示例#1
0
// This display function is called once pr frame 
void GPUVolRTV0::display(DrawEnv *pEnv)
{
    // was in init before. As OpenSG resets those they have to be
    // restored to the required values
	glEnable(GL_CULL_FACE);
	glClearColor(0.0, 0.0, 0.0, 0);
    glDisable(GL_LIGHTING);
	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
    // end

	static float rotate = 0; 
	rotate += 0.25;

//	resize(WINDOW_SIZE,WINDOW_SIZE);
    resize(pEnv->getPixelWidth(), pEnv->getPixelHeight());
	enable_renderbuffers();

	glLoadIdentity();
	glTranslatef(0,0,-2.25);
	glRotatef(rotate,0,1,1);
	glTranslatef(-0.5,-0.5,-0.5); // center the texturecube

    glGetFloatv(GL_MODELVIEW_MATRIX, mModelView);
    glGetFloatv(GL_PROJECTION_MATRIX, mProj);

	render_backface();
	raycasting_pass();
	disable_renderbuffers();
	render_buffer_to_screen(pEnv);
//	glutSwapBuffers();
}
示例#2
0
void cgtk::raycasting_pass()
{
	disable_renderbuffers();

	//glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_RECTANGLE_ARB,final_image,0);
	//glClearColor(0,0,0,0);
	//glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
	cgGLEnableProfile(vertexProfile);
	cgGLEnableProfile(fragmentProfile);
	cgGLBindProgram(vertex_main);
	cgGLBindProgram(fragment_main);
	cgGLSetParameter1f(cgGetNamedParameter(fragment_main,"stepsize"),stepsize);
	cgGLSetParameter1f(cgGetNamedParameter(fragment_main,"width"),WINDOW_SIZE_W);
	cgGLSetParameter1f(cgGetNamedParameter(fragment_main,"heigth"),WINDOW_SIZE_H);
	set_tex_param("tex",backface_buffer,fragment_main,param1);
	set_tex_param("volume_tex",volume_texture,fragment_main,param2);
	glEnable(GL_BLEND);
	glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);
	//drawQuads(1,1,1,b);
	drawBd();
	cgGLDisableProfile(vertexProfile);
	cgGLDisableProfile(fragmentProfile);
	glDisable(GL_CULL_FACE);
	glDisable(GL_BLEND);
}
示例#3
0
/**
 * @brief ParticleSystem Render
 */
bool ParticleSystem::Render(void) {
  viewAspect = wWidth / static_cast<float>(wHeight);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  projMX =
      glm::perspective(static_cast<float>(fovY), viewAspect, 0.01f, 100.0f);

  // --------------------------------------------------
  //  draw to FBO
  // --------------------------------------------------
  enable_renderbuffers();
  drawToFBO();
  disable_renderbuffers();

  // --------------------------------------------------
  //  draw fullscreen quad
  // --------------------------------------------------
  drawQuad();

  PostRedisplay();
  return false;
}