void initScene() {
    // Clear
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // Set drawing mode
    glMatrixMode(GL_MODELVIEW);

    // Draw scene
    glLoadIdentity();
    glTranslatef(0.0f,0.0f,-7.0f);

    // Draw lighting
	GLfloat ambientColor[] = {0.2f, 0.2f, 0.2f, 1.0f}; //Color (0.2, 0.2, 0.2)
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientColor);

    //Add positioned light
	GLfloat lightColor0[] = {0.5f, 0.5f, 0.5f, 1.0f}; //Color (0.5, 0.5, 0.5)
	GLfloat lightPos0[] = {4.0f, 0.0f, 8.0f, 1.0f}; //Positioned at (4, 0, 8)
	glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor0);
	glLightfv(GL_LIGHT0, GL_POSITION, lightPos0);

	//Add directed light
	GLfloat lightColor1[] = {0.7f, 0.7f, 0.7f, 1.0f}; //Color (0.5, 0.2, 0.2)
	//Coming from the direction (-1, 0.5, 0.5)
	GLfloat lightPos1[] = {-1.0f, 0.5f, 0.5f, 0.0f};
	glLightfv(GL_LIGHT1, GL_DIFFUSE, lightColor1);
	glLightfv(GL_LIGHT1, GL_POSITION, lightPos1);

    // Draw the cube
    Cube.draw(_textureId);

    glutSwapBuffers();
}
示例#2
0
文件: geom.cpp 项目: jokoon/eio
    void draw_indexed(){
        // render
        // ------
        glEnable(GL_DEPTH_TEST);
        glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        // bind textures on corresponding texture units
        glActiveTexture(GL_TEXTURE0);
        glBindTexture(GL_TEXTURE_1D, mi.texture);
        // glActiveTexture(GL_TEXTURE1);
        // glBindTexture(GL_TEXTURE_2D, geom::texture2);

        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

        // activate shader
        geom::shader_lowpoly.use();

        // pass projection matrix to shader (note that in this case it could change every frame)
        glm::mat4 projection = glm::perspective(glm::radians(camera.Zoom), float(SCR_WIDTH) / float(SCR_HEIGHT), 0.1f, 100.0f);
        geom::shader_lowpoly.setMat4("projection", projection);

        // camera/view transformation
        glm::mat4 view = fixed_cam?fixed_transform: camera.GetViewMatrix();
        geom::shader_lowpoly.setMat4("view", view);

        // render boxes
            // glBindVertexArray(geom::mi.VAO);
            // for (unsigned int i = 0; i < 10; i++)
            // {
            //     // calculate the model matrix for each object and pass it to shader before drawing
            //     glm::mat4 model;
            //     model = glm::translate(model, cubePositions[i]);
            //     float angle = 20.0f * i;
            //     model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f));
            //     geom::shader_lowpoly.setMat4("model", model);
            //     glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_INT, 0);
            // }

        glm::mat4 model;// = glm::translate(model, cubePositions[i]);
        // model = glm::translate(model, {-5,-2,-5});
        geom::shader_lowpoly.setMat4("model", model);

        glBindVertexArray(geom::mi2.VAO);
        glDrawElements(GL_TRIANGLES, mi2.triangles, GL_UNSIGNED_INT, 0);

        cb.draw();
        for(auto&cb:cubes){ cb.draw(); }
        draw_mesh(wall);
        // physics::chtr.cb.draw();

        character_control::cb.draw();

        dlines.draw();
        character_control:: lines.draw();
        dpoints.draw();
        debug_spheres.draw();
        // dpoints.make_points(vector<vec3>(1000, { 0,0,0 }));


        }