Example #1
0
	void Mesh::build() {
		GLuint points_vbo = create_vbo(vp, point_count * 3);
		GLuint normals_vbo = create_vbo(vn, point_count * 3);
		GLuint text_coord_vbo = create_vbo(vt, point_count * 2);
		vao = create_vao({ points_vbo, normals_vbo, text_coord_vbo });

		model_uniform = Uniform::createUniformMatrix4fv("model", model.m);
	}
Example #2
0
void startup(int argc, char* argv[]) {
	GLenum glew_init_result;
	create_window(argc, argv);
	glewExperimental = GL_TRUE;
	glew_init_result = glewInit();

	check_gl_error(glew_init_result, "");

	fprintf(stdout, "INFO: OpenGL Version: %s\n", glGetString(GL_VERSION));

    rendering_program = create_shaders();
    create_vao();

    // glEnable(GL_CULL_FACE);
    // glCullFace(GL_BACK);
}
Example #3
0
void House::init(GLuint shader)
{
	if (initialised) return; // init once

	shader_programme = shader;

	// Load objects
	std::vector<glm::vec3> vertices;
	std::vector<glm::vec2> uvs;
	std::vector<glm::vec3> normals;
	bool res;

	// body
	res = loadOBJ("assets/house.obj", vertices, uvs, normals);
	point_count = vertices.size();
	assert(res);
	std::cout << "loaded assets/house.obj. point count: " << point_count << std::endl;
	vao = create_vao(vertices, uvs, normals);


	// Get uniforms locations
	M_loc = glGetUniformLocation (shader_programme, "M");
	assert (M_loc > -1);
	V_loc = glGetUniformLocation (shader_programme, "V");
	assert (V_loc > -1);
	P_loc = glGetUniformLocation (shader_programme, "P");
	assert (P_loc > -1);
	light_pos_loc = glGetUniformLocation (shader_programme, "light_pos");
	assert (light_pos_loc > -1);


	// Load textures
	texture = load_texture("assets/house_texture.png");

	initialised = true;
}