void display()
{
	//Clear buffers and setup for drawing
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	//Setup Camera
	//gluLookAt(-15,-15,10, 0,0,0,0,0,1);

	//Rotate
	glRotatef(g_vLandRotate[0],1.0,0.0,0.0);
	glRotatef(g_vLandRotate[1],0.0,1.0,0.0);
	glRotatef(g_vLandRotate[2],0.0,0.0,1.0);
	//Scale
	glScalef(g_vLandScale[0],g_vLandScale[1],g_vLandScale[2]);
	//Translate
	glTranslatef(g_vLandTranslate[0],g_vLandTranslate[1],g_vLandTranslate[2]);
	
	rideCamera();

	//Draw after this
	renderSkybox();
	renderGround();
	//renderSplines();
	renderRails();

	//Swap buffer since double buffering
	glutSwapBuffers();
}
Example #2
0
void Scenario::render() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    renderGround();
    renderLines();
    renderGoal();
}
Example #3
0
void display()
{
  // This function is called whenever it is time to render
  // a new frame; due to the idle()-function below, this
  // function will get called several times per second
  
  // Clear framebuffer & zbuffer
  glClearColor(0.3, 0, 0, 1);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  // Set current material  
  glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuseColor);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specularColor);
  

  // Place camera and light
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  gluLookAt(100,50,50, 0, 0, 0, 0, 1, 0); // No manual control but better place from the start
  glLoadMatrixd(getCameraMatrix());
  glLightfv(GL_LIGHT0, GL_POSITION, light_position); // After camera matrix - camera independent!

  
  // Render the scene!
  renderGround();
  renderTerrain();
  
  // Swap front- and backbuffers
  glutSwapBuffers();
}
void UINodeBackgroundScene::renderFailedWaterHeight (int x, int y) const
{
	renderCave(x, y);
	renderGround(x, y);
	renderFailedCenter(x, y, MapFailedReasons::FAILED_WATER_HEIGHT);
	renderWater(x, y);
}
/***** DISPLAY FUNCTION *****/
void display()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glColor3f(1.0, 1.0, 1.0);

	glShadeModel(GL_SMOOTH);

	glLoadIdentity();

	if (animate) {
		animateRide();
	}

	/* camera view */
	gluLookAt(eyeX, eyeY, eyeZ,
		centerX, centerY, centerZ,
		upX, upY, upZ);
	/*
	Camera Speed - extra credit - realistic in terms of gravity
	u_new = u_current + (delta(t)) * sq(2g(h_max - h))/||dp/du||
	h_max = max height anywhere on the rollercoaster + a tiny bit
	h = current height
	p = position. | dp/du | = length of position

	kinetic energy + potential energy = constant
	*/

	renderSky();
	renderGround();
	renderSpline();

	/* needed for double buffering*/
	glutSwapBuffers();
}
void UINodeBackgroundScene::renderFailedOnGround (int x, int y, const MapFailedReason& reason, float offsetY) const
{
	renderCave(x, y);
	const int groundY = renderGround(x, y);
	FailedMap::const_iterator i = _failed.find(&reason);
	if (i == _failed.end())
		return;
	const TexturePtr& t = i->second;
	if (!t || !t->isValid())
		return;

	const int playerX = x + getRenderCenterX() - t->getWidth() / 2;
	const int playerY = groundY - t->getHeight() + offsetY * t->getHeight();
	renderImage(t, playerX, playerY);
}
Example #7
0
void ShadowView::paintGL()
{
    // setup the view matrix
    setupUserViewProj();

    // enable Texturing
    glEnable(GL_TEXTURE_2D);

    // Clear Buffer for new frame
    glClearColor(0.0f ,0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // render Background
    renderBackground();

//    // render the sun
//    renderSun();

    // Modelview Transformation
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef( 0.0f, 0.0f, g_fCameraZoom); // Zoom
    glRotatef(g_fCameraElevation, 1.0f, 0.0f, 0.0f);  // rotate elevation
    glRotatef(g_fCameraAzimuth, 0.0f, 1.0f, 0.0f);    // rotate azimuth
    //glTranslatef( 0.0f, -g_fGroundLevel, 0.0f);   // Lower the whole scene so that the center of the Mesh overlappes with the center of rotation

    std::cout << g_fCameraZoom << " \t" << g_fCameraElevation << " \t" << g_fCameraAzimuth << std::endl;
    std::cout.flush();

    renderGround();

    if( !m_mesh.expired() )
    {
        // enable sceneRendering Shader
        //sceneRendering.enable();

        // setup shader parameters
        // TODO not elegant! try to do with uniform variabiles
        //glColor4f(g_fSceneRenderingMode/4.0f, 0.0f, 0.0f, 0.0f);

        // render the scene
        //m_mesh.lock()->draw();

        //sceneRendering.disable();
    }
}