#include "sapin.hpp" #include "environment.hpp" void sapin::initialize_sapin() { cgp::mesh_drawable trunk; cgp::mesh_drawable branches; cgp::mesh_drawable foliage; trunk.initialize_data_on_gpu(mesh_load_file_obj(project::path + "assets/trunk.obj")); trunk.texture.load_and_initialize_texture_2d_on_gpu(project::path + "assets/trunk.png"); branches.initialize_data_on_gpu(mesh_load_file_obj(project::path + "assets/branches.obj")); branches.material.color = { 0.45f, 0.41f, 0.34f }; // no textures on branches foliage.initialize_data_on_gpu(mesh_load_file_obj(project::path + "assets/foliage.obj")); foliage.texture.load_and_initialize_texture_2d_on_gpu(project::path + "assets/pine.png"); foliage.shader.load(project::path + "shaders/mesh_transparency/vert.glsl", project::path + "shaders/mesh_transparency/frag.glsl"); // set the shader handling transparency for the foliage foliage.material.phong = { 0.4f, 0.6f, 0, 1 }; // remove specular effect for the billboard //scale the model trunk.model.scaling = 0.5f; branches.model.scaling = 0.5f; foliage.model.scaling = 0.5f; sapin.add(trunk, "Trunk"); sapin.add(branches, "Branches", "Trunk"); sapin.add(foliage, "Foliage", "Trunk"); }