Skip to content
Snippets Groups Projects
sapin.cpp 1.24 KiB
Newer Older
Marie AUDOUARD's avatar
Marie AUDOUARD committed
#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");
}