diff --git a/res/shaders/simple.frag b/res/shaders/simple.frag index 3ab4d53..c87f400 100644 --- a/res/shaders/simple.frag +++ b/res/shaders/simple.frag @@ -44,7 +44,7 @@ struct Light { // point lights, coordinates in MV space float spot_cuttof_cos; }; -#define N_LIGHTS 1 +#define N_LIGHTS 2 uniform Light light[N_LIGHTS]; @@ -99,8 +99,6 @@ vec3 phong(vec3 basecolor) { vec3 diffuse_component = vec3(0.0); vec3 specular_component = vec3(0.0); - float diffuse_i_sum = 0.0; - //vec3 emissive_component = vec3(0.0); for (int i = 0; i0) diffuse_component += diffuse_color * light[i].color * diffuse_i * attenuation; - //emissive_component += emissive_color*light[i].color*attenuation; } basecolor *= (emissive_color + diffuse_component); diff --git a/src/gamelogic.cpp b/src/gamelogic.cpp index 78431b0..2aa4aca 100644 --- a/src/gamelogic.cpp +++ b/src/gamelogic.cpp @@ -36,12 +36,13 @@ uint previousKeyFrame = 0; SceneNode* rootNode; SceneNode* plainNode; SceneNode* carNode; +SceneNode* treeNode; SceneNode* boxNode; SceneNode* sphereNode; SceneNode* hudNode; SceneNode* textNode; -const uint N_LIGHTS = 1; +const uint N_LIGHTS = 2; SceneNode* lightNode[N_LIGHTS]; // These are heap allocated, because they should not be initialised at the start of the program @@ -134,6 +135,10 @@ void initGame(GLFWwindow* window, CommandLineOptions gameOptions) { } + //treeNode = loadModelScene("../res/models/fur_tree/scene.gltf"); + //treeNode->position = {300, 800, 10}; + //rootNode->children.push_back(treeNode); + carNode = loadModelScene("../res/models/beetle/scene.gltf", { { 0, Material().diffuse({0.0, 0.0, 1.0}).diffuse_only().reflection_mapped(&t_reflection, 0.15)},// Blue_Metal { 1, Material().diffuse(vec3(0.85)).emissive(vec3(0.1)).reflection_mapped(&t_reflection, -1.0)},// Metal (decals) @@ -190,6 +195,12 @@ void initGame(GLFWwindow* window, CommandLineOptions gameOptions) { lightNode[0]->position = {-600, 1400, 800}; lightNode[0]->attenuation = vec3(1.8, 0.0, 0.0); + lightNode[1]->position = {500, 0, 80}; + lightNode[1]->referencePoint = {0, 500, 0}; + lightNode[1]->scale *= 0.8; + lightNode[1]->light_color = vec3(0.0); + lightNode[1]->attenuation = vec3(1.0, 0.0, 0.000005); + textNode = createSceneNode(); textNode->setTexture(&t_charmap);