From 0ec0022d6af8c091b6c03649ada510aa35e3b8f3 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Tue, 11 Mar 2014 09:18:51 +0100 Subject: [PATCH] WIP Lights --- Escape-the-Dawn/CODMapShipment.mtl | 1773 +++++++++++++++++ Escape-the-Dawn/Components/PointLight.h | 7 +- Escape-the-Dawn/Escape-the-Dawn.vcxproj | 1 + .../Escape-the-Dawn.vcxproj.filters | 3 + .../Federation_Interceptor_HN48_flying.mtl | 97 + Escape-the-Dawn/Fragment2.glsl | 71 + Escape-the-Dawn/GameWorld.h | 44 +- Escape-the-Dawn/HQ_Movie cycle.mtl | 150 ++ Escape-the-Dawn/Renderer.cpp | 38 +- Escape-the-Dawn/Renderer.h | 17 + Escape-the-Dawn/Sci-fi_Tropical_city.mtl | 40 + Escape-the-Dawn/Shaders/Fragment.glsl | 84 +- Escape-the-Dawn/Systems/RenderSystem.cpp | 13 + Escape-the-Dawn/tower bridge.mtl | 115 ++ 14 files changed, 2405 insertions(+), 48 deletions(-) create mode 100644 Escape-the-Dawn/CODMapShipment.mtl create mode 100644 Escape-the-Dawn/Federation_Interceptor_HN48_flying.mtl create mode 100644 Escape-the-Dawn/Fragment2.glsl create mode 100644 Escape-the-Dawn/HQ_Movie cycle.mtl create mode 100644 Escape-the-Dawn/Sci-fi_Tropical_city.mtl create mode 100644 Escape-the-Dawn/tower bridge.mtl diff --git a/Escape-the-Dawn/CODMapShipment.mtl b/Escape-the-Dawn/CODMapShipment.mtl new file mode 100644 index 0000000..2d812d8 --- /dev/null +++ b/Escape-the-Dawn/CODMapShipment.mtl @@ -0,0 +1,1773 @@ +# Blender MTL File: 'CODMapShipment.blend' +# Material Count: 161 +newmtl material_0_00000000.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\00000000.dds + + +newmtl material_104_0eaee8e3.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0eaee8e3.dds + + +newmtl material_111_f42d5e76.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f42d5e76.dds + + +newmtl material_112_4107969c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4107969c.dds + + +newmtl material_115_825aeb0c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\825aeb0c.dds + + +newmtl material_120_bd2da1c7.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\bd2da1c7.dds + + +newmtl material_121_71649b40.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\71649b40.dds + + +newmtl material_122_60ae9929.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\60ae9929.dds + + +newmtl material_123_d0dcc44d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d0dcc44d.dds + + +newmtl material_124_cc28a7e7.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\cc28a7e7.dds + + +newmtl material_125_e75e6bcc.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e75e6bcc.dds + + +newmtl material_126_c3216ea0.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c3216ea0.dds + + +newmtl material_127_52ba8dbf.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\52ba8dbf.dds + + +newmtl material_128_0afe848a.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0afe848a.dds + + +newmtl material_129_82d72a68.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\82d72a68.dds + + +newmtl material_141_8243bc54.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\8243bc54.dds + + +newmtl material_148_d86a82e7.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d86a82e7.dds + + +newmtl material_14_a1705a02.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\a1705a02.dds + + +newmtl material_152_4ab02788.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4ab02788.dds + + +newmtl material_153_6a66de37.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6a66de37.dds + + +newmtl material_158_fcb6b3c2.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\fcb6b3c2.dds + + +newmtl material_162_6c0e4e28.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6c0e4e28.dds + + +newmtl material_163_e78c3e39.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e78c3e39.dds + + +newmtl material_164_2397e717.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2397e717.dds + + +newmtl material_167_b0dfc42f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b0dfc42f.dds + + +newmtl material_16_6ba8769b.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6ba8769b.dds + + +newmtl material_170_7cc451fe.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\7cc451fe.dds + + +newmtl material_174_515423bb.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\515423bb.dds + + +newmtl material_175_e05a50aa.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e05a50aa.dds + + +newmtl material_178_3ad94d53.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\3ad94d53.dds + + +newmtl material_179_61856e4a.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\61856e4a.dds + + +newmtl material_17_e6f4928c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e6f4928c.dds + + +newmtl material_180_657b2078.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\657b2078.dds + + +newmtl material_181_c7db970e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c7db970e.dds + + +newmtl material_183_187ed957.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\187ed957.dds + + +newmtl material_185_3b1cf6ce.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\3b1cf6ce.dds + + +newmtl material_189_4fa52203.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4fa52203.dds + + +newmtl material_190_934256ef.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\934256ef.dds + + +newmtl material_191_e1a27f9d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e1a27f9d.dds + + +newmtl material_193_07b087a4.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\07b087a4.dds + + +newmtl material_194_4a377fa4.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4a377fa4.dds + + +newmtl material_195_bf46b7f8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\bf46b7f8.dds + + +newmtl material_198_fb7efc03.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\fb7efc03.dds + + +newmtl material_199_89bbb4af.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\89bbb4af.dds + + +newmtl material_19_1343fc2f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\1343fc2f.dds + + +newmtl material_200_0d6e0646.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0d6e0646.dds + + +newmtl material_201_d8c8ef76.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d8c8ef76.dds + + +newmtl material_207_c2f94610.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c2f94610.dds + + +newmtl material_209_3df9eef9.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\3df9eef9.dds + + +newmtl material_210_4c33f265.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4c33f265.dds + + +newmtl material_211_c353bf43.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c353bf43.dds + + +newmtl material_212_b992e947.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b992e947.dds + + +newmtl material_217_33481142.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\33481142.dds + + +newmtl material_218_12abe8fd.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\12abe8fd.dds + + +newmtl material_219_000c9d3e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\000c9d3e.dds + + +newmtl material_222_54db5e4c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\54db5e4c.dds + + +newmtl material_223_54c70238.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\54c70238.dds + + +newmtl material_224_c69e90f3.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c69e90f3.dds + + +newmtl material_225_b96bc8eb.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b96bc8eb.dds + + +newmtl material_227_2a87060c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2a87060c.dds + + +newmtl material_22_5d458942.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\5d458942.dds + + +newmtl material_234_149ca095.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\149ca095.dds + + +newmtl material_242_60822a18.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\60822a18.dds + + +newmtl material_243_c8a228a8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c8a228a8.dds + + +newmtl material_244_b1959683.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b1959683.dds + + +newmtl material_246_31f1830a.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\31f1830a.dds + + +newmtl material_248_6c981e0c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6c981e0c.dds + + +newmtl material_249_c857689f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c857689f.dds + + +newmtl material_24_c4897d2a.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c4897d2a.dds + + +newmtl material_250_13e3cdba.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\13e3cdba.dds + + +newmtl material_252_affc3ec0.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\affc3ec0.dds + + +newmtl material_254_e8be7acc.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e8be7acc.dds + + +newmtl material_257_8cc88c3f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\8cc88c3f.dds + + +newmtl material_25_46552b1f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\46552b1f.dds + + +newmtl material_265_8e8a22e5.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\8e8a22e5.dds + + +newmtl material_267_ea4991b1.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ea4991b1.dds + + +newmtl material_269_4e5fd66d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4e5fd66d.dds + + +newmtl material_271_d6ac112e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d6ac112e.dds + + +newmtl material_272_75587289.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\75587289.dds + + +newmtl material_273_5dcd1960.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\5dcd1960.dds + + +newmtl material_274_6ddd2fbf.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6ddd2fbf.dds + + +newmtl material_276_0dbac2ec.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0dbac2ec.dds + + +newmtl material_282_f0356be7.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f0356be7.dds + + +newmtl material_284_60edfc3d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\60edfc3d.dds + + +newmtl material_289_c36e19f3.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\c36e19f3.dds + + +newmtl material_291_e6428f60.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e6428f60.dds + + +newmtl material_295_84bc52a5.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\84bc52a5.dds + + +newmtl material_299_8c4bf203.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\8c4bf203.dds + + +newmtl material_309_fd91aedf.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\fd91aedf.dds + + +newmtl material_310_73f12a71.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\73f12a71.dds + + +newmtl material_319_f45ff684.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f45ff684.dds + + +newmtl material_320_6a4a9f3f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6a4a9f3f.dds + + +newmtl material_325_ba75b37c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ba75b37c.dds + + +newmtl material_326_ea0be77e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ea0be77e.dds + + +newmtl material_331_9f43ce5f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\9f43ce5f.dds + + +newmtl material_337_744d79f5.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\744d79f5.dds + + +newmtl material_342_a2d779ea.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\a2d779ea.dds + + +newmtl material_349_fd901c18.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\fd901c18.dds + + +newmtl material_355_2699beb6.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2699beb6.dds + + +newmtl material_356_ef8daeb3.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ef8daeb3.dds + + +newmtl material_359_d3a60e1e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d3a60e1e.dds + + +newmtl material_362_5216bd6c.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\5216bd6c.dds + + +newmtl material_363_a65c0ca8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\a65c0ca8.dds + + +newmtl material_364_f989f724.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f989f724.dds + + +newmtl material_366_6247fad0.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6247fad0.dds + + +newmtl material_367_952e0790.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\952e0790.dds + + +newmtl material_368_aeec2685.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\aeec2685.dds + + +newmtl material_370_55ebb587.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\55ebb587.dds + + +newmtl material_385_b059fe85.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b059fe85.dds + + +newmtl material_386_471846e6.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\471846e6.dds + + +newmtl material_389_0e076761.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0e076761.dds + + +newmtl material_390_2a2a0045.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2a2a0045.dds + + +newmtl material_392_2298817f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2298817f.dds + + +newmtl material_394_f6868a9d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f6868a9d.dds + + +newmtl material_405_f6b1acb2.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f6b1acb2.dds + + +newmtl material_416_ba15f3a0.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ba15f3a0.dds + + +newmtl material_418_d9b6f6be.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\d9b6f6be.dds + + +newmtl material_420_e5bf030b.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e5bf030b.dds + + +newmtl material_427_f10778ed.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f10778ed.dds + + +newmtl material_429_799fd149.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\799fd149.dds + + +newmtl material_430_487a77d4.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\487a77d4.dds + + +newmtl material_435_e87cccb4.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e87cccb4.dds + + +newmtl material_439_a1f54c5d.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\a1f54c5d.dds + + +newmtl material_442_9f640a6e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\9f640a6e.dds + + +newmtl material_443_533ba322.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\533ba322.dds + + +newmtl material_446_e034fd38.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e034fd38.dds + + +newmtl material_447_41db654a.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\41db654a.dds + + +newmtl material_448_20bb5d36.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\20bb5d36.dds + + +newmtl material_449_5bcb5b66.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\5bcb5b66.dds + + +newmtl material_44_dffb7be4.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\dffb7be4.dds + + +newmtl material_451_1a981f80.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\1a981f80.dds + + +newmtl material_456_b9ecc2be.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b9ecc2be.dds + + +newmtl material_458_055ebee8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\055ebee8.dds + + +newmtl material_45_8f98883e.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\8f98883e.dds + + +newmtl material_464_010e4cde.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\010e4cde.dds + + +newmtl material_466_e928c590.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e928c590.dds + + +newmtl material_473_604b666f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\604b666f.dds + + +newmtl material_474_0c34d418.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0c34d418.dds + + +newmtl material_475_ea7c427f.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ea7c427f.dds + + +newmtl material_478_ba14d74b.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ba14d74b.dds + + +newmtl material_480_41c2d01b.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\41c2d01b.dds + + +newmtl material_485_f4a24136.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f4a24136.dds + + +newmtl material_486_2d0437d1.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\2d0437d1.dds + + +newmtl material_487_bf3b39ec.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\bf3b39ec.dds + + +newmtl material_488_424b46e8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\424b46e8.dds + + +newmtl material_53_ee1f2cc9.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\ee1f2cc9.dds + + +newmtl material_58_e4000086.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\e4000086.dds + + +newmtl material_5_9d2c82ba.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\9d2c82ba.dds + + +newmtl material_61_88095fd2.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\88095fd2.dds + + +newmtl material_73_60dbb6bf.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\60dbb6bf.dds + + +newmtl material_74_b94e06c9.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\b94e06c9.dds + + +newmtl material_77_6b492a73.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\6b492a73.dds + + +newmtl material_79_1215969b.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\1215969b.dds + + +newmtl material_7_a75f1def.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\a75f1def.dds + + +newmtl material_84_f8a61039.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\f8a61039.dds + + +newmtl material_89_21cb1f00.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\21cb1f00.dds + + +newmtl material_90_61143ced.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\61143ced.dds + + +newmtl material_91_4d27abc8.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\4d27abc8.dds + + +newmtl material_93_0b1f2496.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\0b1f2496.dds + + +newmtl material_95_59382d55.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\59382d55.dds + + +newmtl material_9_1844db10.dds +Ns 0.000000 +Ka 0.000000 0.000000 0.000000 +Kd 0.480000 0.480000 0.480000 +Ks 0.900000 0.900000 0.900000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd C:\1844db10.dds + + diff --git a/Escape-the-Dawn/Components/PointLight.h b/Escape-the-Dawn/Components/PointLight.h index daf3aa9..a7a5d4a 100644 --- a/Escape-the-Dawn/Components/PointLight.h +++ b/Escape-the-Dawn/Components/PointLight.h @@ -11,8 +11,11 @@ struct PointLight : Component { float Intensity; float MaxRange; - float SpecularIntensity; - Color Color; + glm::vec3 Specular; + glm::vec3 Diffuse; + float constantAttenuation, linearAttenuation, quadraticAttenuation; + float spotExponent; + Color color; }; } diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj b/Escape-the-Dawn/Escape-the-Dawn.vcxproj index 5ba9649..1e7f637 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj @@ -160,6 +160,7 @@ + diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters index 80dae46..f603064 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters @@ -150,6 +150,9 @@ Shaders + + Shaders + diff --git a/Escape-the-Dawn/Federation_Interceptor_HN48_flying.mtl b/Escape-the-Dawn/Federation_Interceptor_HN48_flying.mtl new file mode 100644 index 0000000..1ccb4f8 --- /dev/null +++ b/Escape-the-Dawn/Federation_Interceptor_HN48_flying.mtl @@ -0,0 +1,97 @@ +newmtl default_body2 +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/as2.jpg + +newmtl default +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 0.27451 0.27451 0.27451 +Ks 1 1 1 +Km 0 + +newmtl default_cockpits_1_cushions +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/yx1_02_01_01_02.jpg + +newmtl default_cockpits_1_display +d 1 +Ns 0.75 +Ni 0 +Ka 1 1 1 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/ggt1.jpg + +newmtl default_cockpits_joysticks +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 0 0 0 +Ks 1 1 1 +Km 0 + +newmtl default_skin +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/ahm1_01_01.jpg + +newmtl default_cabins1glass +d 0.65 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 0.501961 1 0 +Ks 1 1 1 +Km 0 + +newmtl default_ship_door +d 1 +Ns 1 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/as1_02.jpg + +newmtl default_door +d 1 +Ns 0.75 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/as1_02.jpg + +newmtl default_steps +d 1 +Ns 1 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/rmp1.jpg + diff --git a/Escape-the-Dawn/Fragment2.glsl b/Escape-the-Dawn/Fragment2.glsl new file mode 100644 index 0000000..e0f4160 --- /dev/null +++ b/Escape-the-Dawn/Fragment2.glsl @@ -0,0 +1,71 @@ +uniform mat4 model; +uniform mat4 view; + +layout(binding=0) uniform sampler2D texture; + +const int numberOfLights = 2; +lightSource lights[numberOfLights]; + +uniform vec4 position[numberOfLights]; +uniform vec4 specular[numberOfLights]; +uniform vec4 diffuse[numberOfLights]; +uniform float constantAttenuation[numberOfLights]; +uniform float linearAttenuation[numberOfLights]; +uniform float quadraticAttenuation[numberOfLights]; +uniform float spotExponent[numberOfLights]; + + in VertexData { + vec3 Position; + vec3 Normal; + vec2 TextureCoord; +} Input; + +vec4 scene_ambient = vec4(0.2, 0.2, 0.2, 1.0); + +out vec4 fragmentColor; + +void main() +{ + + vec4 texel = texture2D(texture, Input.TextureCoord); + + vec3 normalDirection = normalize(Normal); + vec3 viewDirection = normalize(vec3(v_inv * vec4(0.0, 0.0, 0.0, 1.0) - Position)); + vec3 lightDirection; + float attenuation; + + // initialize total lighting with ambient lighting + vec3 totalLighting = vec3(scene_ambient) * vec3(frontMaterial.ambient); + + for (int index = 0; index < numberOfLights; index++) // for all light sources + { + vec3 positionToLightSource = vec3(position[index] - Position); + float distance = length(positionToLightSource); + lightDirection = normalize(positionToLightSource); + + attenuation = 1.0 / (constantAttenuation[index] + + linearAttenuation[index] * distance + + quadraticAttenuation[index] * distance * distance); + + attenuation = attenuation * pow(clampedCosine, spotExponent[index]); + + vec3 diffuseReflection = attenuation + * vec3(diffuse[index]) * vec3(frontMaterial.diffuse) + * max(0.0, dot(normalDirection, lightDirection)); + + vec3 specularReflection; + if (dot(normalDirection, lightDirection) < 0.0) // light source on the wrong side? + { + specularReflection = vec3(0.0, 0.0, 0.0); // no specular reflection + } + else // light source on the right side + { + specularReflection = attenuation * vec3(specular[index]) * vec3(frontMaterial.specular) + * pow(max(0.0, dot(reflect(-lightDirection, normalDirection), viewDirection)), frontMaterial.shininess); + } + + totalLighting = totalLighting + diffuseReflection + specularReflection; + } + + fragmentColor = vec4(totalLighting, 1.0) * texel; +} \ No newline at end of file diff --git a/Escape-the-Dawn/GameWorld.h b/Escape-the-Dawn/GameWorld.h index c6a6140..7d51816 100644 --- a/Escape-the-Dawn/GameWorld.h +++ b/Escape-the-Dawn/GameWorld.h @@ -62,23 +62,51 @@ void GameWorld::Initialize() std::shared_ptr transform; std::shared_ptr model; + std::shared_ptr pointLight; std::shared_ptr camera; EntityID ent; + ent = CreateEntity(); + transform = AddComponent(ent, "Transform"); + transform->Position = glm::vec3(0.f, 4.f, 0.f); + pointLight = AddComponent(ent, "PointLight"); + pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); + pointLight->Diffuse = glm::vec3(1.0, 1.0, 1.0); + pointLight->constantAttenuation = 0.f; + pointLight->linearAttenuation = 1.f; + pointLight->quadraticAttenuation = 0.f; + pointLight->spotExponent = 0.0f; + + ent = CreateEntity(); + transform = AddComponent(ent, "Transform"); + transform->Position = glm::vec3(10.f, 4.f, 0.f); + pointLight = AddComponent(ent, "PointLight"); + pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); + pointLight->Diffuse = glm::vec3(1.0, 1.0, 1.0); + pointLight->constantAttenuation = 0.f; + pointLight->linearAttenuation = 1.f; + pointLight->quadraticAttenuation = 0.f; + pointLight->spotExponent = 0.0f; + + ent = CreateEntity(); + transform = AddComponent(ent, "Transform"); + transform->Position = glm::vec3(10.f, 0.f, 0.f); + model = AddComponent(ent, "Model"); + model->ModelFile = "ship.obj"; + ent = CreateEntity(); transform = AddComponent(ent, "Transform"); transform->Position = glm::vec3(0.f, 0.f, 0.f); model = AddComponent(ent, "Model"); model->ModelFile = "ship.obj"; - auto soundEmitter = AddComponent(ent, "SoundEmitter"); - soundEmitter->Gain = 1; - soundEmitter->MaxDistance = 10; - soundEmitter->Loop = true; - soundEmitter->ReferenceDistance = 0.1; - soundEmitter->Pitch = 1; - GetSystem("SoundSystem")->PlaySound(soundEmitter, "Sounds/hallelujah.wav"); +// auto soundEmitter = AddComponent(ent, "SoundEmitter"); +// soundEmitter->Gain = 1; +// soundEmitter->MaxDistance = 10; +// soundEmitter->Loop = true; +// soundEmitter->ReferenceDistance = 0.1; +// soundEmitter->Pitch = 1; +// GetSystem("SoundSystem")->PlaySound(soundEmitter, "Sounds/hallelujah.wav"); - ent = CreateEntity(); SetProperty(ent, "Name", std::string("Camera")); transform = AddComponent(ent, "Transform"); diff --git a/Escape-the-Dawn/HQ_Movie cycle.mtl b/Escape-the-Dawn/HQ_Movie cycle.mtl new file mode 100644 index 0000000..b788407 --- /dev/null +++ b/Escape-the-Dawn/HQ_Movie cycle.mtl @@ -0,0 +1,150 @@ +# +# Wavefront material file +# Converted by the DEEP Exploration Deep Exploration 6.5 x64 6.5.0.9182 +# Right Hemisphere, LTD +# http://www.righthemisphere.com/ +# + +newmtl MG_MovieCycle_Body_MI +Ka 0 0 0 +Kd 0 0 0 +Ks 1 1 1 +illum 2 +Ns 32 +map_Kd MG_MovieCycle_BodyHeadLight_EMSS.tga +map_bump MG_MovieCycle_Body_NORM.tga +bump MG_MovieCycle_Body_NORM.tga +map_opacity +map_d +refl +map_kS MG_MovieCycle_Body_SPEC.tga +map_kA +map_Ns + +newmtl MG_MovieCycle_Glass_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 0.84 0.84 0.84 +illum 2 +Ns 33.6359 +map_Kd Glass.tga +map_bump +bump +map_opacity Glass.tga +map_d Glass.tga +refl +map_kS +map_kA +map_Ns + +newmtl MG_MovieCycle_Tire_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 0 0 0 +illum 2 +Ns 10 +map_Kd MG_MovieCycle_Tire_EMSS.tga +map_bump MG_MovieCycle_Tire_NORM.tga +bump MG_MovieCycle_Tire_NORM.tga +map_opacity +map_d +refl +map_kS +map_kA +map_Ns + +newmtl MG_MovieCycle_Engine_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 0 0 0 +illum 2 +Ns 10 +map_Kd MG_MovieCycle_Engine_EMSS.tga +map_bump MG_MovieCycle_Engine_NORM.tga +bump MG_MovieCycle_Engine_NORM.tga +map_opacity +map_d +refl +map_kS +map_kA +map_Ns + +newmtl MG_MovieCycle_PlayerBody_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +illum 2 +Ns 10 +map_Kd MG_Player_Body_EMSS.tga +map_bump MG_Player_Body_NORM.tga +bump MG_Player_Body_NORM.tga +map_opacity +map_d +refl +map_kS MG_Player_Body_SPEC.tga +map_kA +map_Ns + +newmtl MG_MovieCycle_PlayerHelmet_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +illum 2 +Ns 6.27667 +map_Kd MG_Player_Helmet_EMSS.tga +map_bump MG_Player_Helmet_NORM.tga +bump MG_Player_Helmet_NORM.tga +map_opacity +map_d +refl +map_kS MG_Player_Helmet_SPEC.tga +map_kA +map_Ns + +newmtl MG_MovieCycle_PlayerDisc_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +illum 2 +Ns 10 +map_Kd MG_Player_Disc_EMSS.tga +map_bump MG_Player_Disc_NORM.tga +bump MG_Player_Disc_NORM.tga +map_opacity +map_d +refl +map_kS MG_Player_Disc_SPEC.tga +map_kA +map_Ns + +newmtl MG_MovieCycle_PlayerBaton_MI +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +illum 2 +Ns 10 +map_Kd MG_Player_Baton_EMSS.tga +map_bump MG_Player_Baton_NORM.tga +bump MG_Player_Baton_NORM.tga +map_opacity +map_d +refl +map_kS MG_Player_Baton_SPEC.tga +map_kA +map_Ns + +newmtl Explorer_Default +Ka 0.117647 0.117647 0.117647 +Kd 0.752941 0.752941 0.752941 +Ks 0.752941 0.752941 0.752941 +illum 2 +Ns 8 +map_Kd +map_bump +bump +map_opacity +map_d +refl +map_kS +map_kA +map_Ns diff --git a/Escape-the-Dawn/Renderer.cpp b/Escape-the-Dawn/Renderer.cpp index 3268949..7253a7c 100644 --- a/Escape-the-Dawn/Renderer.cpp +++ b/Escape-the-Dawn/Renderer.cpp @@ -67,10 +67,13 @@ void Renderer::Draw(double _dt) glUniformMatrix4fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); glUniformMatrix4fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "model"), 1, GL_FALSE, glm::value_ptr(ModelsToRender[i]->ModelMatrix)); glUniformMatrix4fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "view"), 1, GL_FALSE, glm::value_ptr(m_Camera->ViewMatrix())); - glUniform3fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "lightPosition"), 1, glm::value_ptr(glm::vec3(2.0f, 4.0f, 1.0f))); - glUniform1f(glGetUniformLocation(m_ShaderProgram.GetHandle(), "constantAttenuation"), 1.5f); - glUniform1f(glGetUniformLocation(m_ShaderProgram.GetHandle(), "linearAttenuation"), 0.0f); - glUniform1f(glGetUniformLocation(m_ShaderProgram.GetHandle(), "quadraticAttenuation"), 0.0f); + glUniform3fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "position"), 2, Light_position.data()); + glUniform3fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "specular"), 2, Light_specular.data()); + glUniform3fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "diffuse"), 2, Light_diffuse.data()); + glUniform1fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "constantAttenuation"), 2, Light_constantAttenuation.data()); + glUniform1fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "linearAttenuation"), 2, Light_linearAttenuation.data()); + glUniform1fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "quadraticAttenuation"), 2, Light_quadraticAttenuation.data()); + glUniform1fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "spotExponent"), 2, Light_spotExponent.data()); glBindVertexArray(ModelsToRender[i]->model->VAO); glDrawArrays(GL_TRIANGLES, 0, ModelsToRender[i]->model->Vertices.size()); @@ -98,7 +101,32 @@ void Renderer::AddModelToDraw(Model* _model, glm::vec3 _position, glm::quat _ori ModelsToRender.push_back(new ModelData(_model, ModelMatrix)); } -//Fixa med shaders, lägga in alla verts osv. +void Renderer::AddPointLightToDraw( + glm::vec3 _position, + glm::vec3 _specular, + glm::vec3 _diffuse, + float _constantAttenuation, + float _linearAttenuation, + float _quadraticAttenuation, + float _spotExponent + ) +{ + Light_position.push_back(_position.x); + Light_position.push_back(_position.y); + Light_position.push_back(_position.z); + Light_specular.push_back(_specular.x); + Light_specular.push_back(_specular.y); + Light_specular.push_back(_specular.z); + Light_diffuse.push_back(_diffuse.x); + Light_diffuse.push_back(_diffuse.y); + Light_diffuse.push_back(_diffuse.z); + Light_constantAttenuation.push_back(_constantAttenuation); + Light_linearAttenuation.push_back(_linearAttenuation); + Light_quadraticAttenuation.push_back(_quadraticAttenuation); + Light_spotExponent.push_back(_spotExponent); + +} + void Renderer::LoadContent() { diff --git a/Escape-the-Dawn/Renderer.h b/Escape-the-Dawn/Renderer.h index cfeaa9f..9cc28a4 100644 --- a/Escape-the-Dawn/Renderer.h +++ b/Escape-the-Dawn/Renderer.h @@ -24,6 +24,7 @@ #include "Camera.h" #include "ShaderProgram.h" #include "Model.h" +#include "Components/PointLight.h" class Renderer { @@ -43,6 +44,13 @@ public: }; std::vector ModelsToRender; + std::vector Light_position; + std::vector Light_specular; + std::vector Light_diffuse; + std::vector Light_constantAttenuation; + std::vector Light_linearAttenuation; + std::vector Light_quadraticAttenuation; + std::vector Light_spotExponent; Renderer(); @@ -52,6 +60,15 @@ public: void AddModelToDraw(Model*, glm::vec3, glm::quat); void AddTextToDraw(); + void AddPointLightToDraw( + glm::vec3 _position, + glm::vec3 _specular, + glm::vec3 _diffuse, + float _constantAttenuation, + float _linearAttenuation, + float _quadraticAttenuation, + float _spotExponent + ); void LoadContent(); diff --git a/Escape-the-Dawn/Sci-fi_Tropical_city.mtl b/Escape-the-Dawn/Sci-fi_Tropical_city.mtl new file mode 100644 index 0000000..2d206fc --- /dev/null +++ b/Escape-the-Dawn/Sci-fi_Tropical_city.mtl @@ -0,0 +1,40 @@ +newmtl material_1 +d 1 +Ns 1 +Ni 0 +Ka 0.121569 0.121569 0.121569 +Kd 1 1 1 +Ks 0 0 0 +Km 0 +map_Kd /Maps/snd2_01.jpg + +newmtl material_1_mountain +d 1 +Ns 1 +Ni 0 +Ka 0 0 0 +Kd 0.501961 0.501961 0.501961 +Ks 0 0 0 +Km 0 +map_Kd /Maps/mtlm1.jpg + +newmtl default +d 1 +Ns 1 +Ni 0 +Ka 0 0 0 +Kd 0.290196 0.282353 0.254902 +Ks 1 1 1 +Km 0 +map_Kd /Maps/1thr.jpg + +newmtl default_bldgs2 +d 1 +Ns 1 +Ni 0 +Ka 0 0 0 +Kd 1 1 1 +Ks 1 1 1 +Km 0 +map_Kd /Maps/axq2.jpg + diff --git a/Escape-the-Dawn/Shaders/Fragment.glsl b/Escape-the-Dawn/Shaders/Fragment.glsl index 52c1792..5740114 100644 --- a/Escape-the-Dawn/Shaders/Fragment.glsl +++ b/Escape-the-Dawn/Shaders/Fragment.glsl @@ -2,74 +2,92 @@ uniform mat4 model; uniform mat4 view; - + layout(binding=0) uniform sampler2D texture; -uniform vec3 lightPosition; -uniform float constantAttenuation; -uniform float linearAttenuation; -uniform float quadraticAttenuation; +const int numberOfLights = 2; -in VertexData { +uniform vec4 position[numberOfLights]; +uniform vec4 specular[numberOfLights]; +uniform vec4 diffuse[numberOfLights]; +uniform float constantAttenuation[numberOfLights]; +uniform float linearAttenuation[numberOfLights]; +uniform float quadraticAttenuation[numberOfLights]; +uniform float spotExponent[numberOfLights]; + + in VertexData { vec3 Position; vec3 Normal; vec2 TextureCoord; } Input; +vec3 scene_ambient = vec3(0.2, 0.2, 0.2); + out vec4 fragmentColor; void main() { + // Texture vec4 texel = texture2D(texture, Input.TextureCoord); - //vec4 texel1 = texture2D(texture1, Input.TextureCoord * 32.0); - //vec4 texel2 = texture2D(texture2, Input.TextureCoord * 100.0); - //vec4 blend = texture2D(blendmap, Input.TextureCoord); - //vec4 texel = (blend.x * texel0) + (blend.y * texel1) + (blend.z * texel2); // // Phong shading // - // Light - //vec3 lightPosition = vec3(0, 0, 2); - vec3 Ls = vec3(1.0, 1.0, 0.9); // Specular light - vec3 Ld = vec3(1.0, 1.0, 0.9); // Diffuse light - vec3 La = vec3(0.6, 0.6, 0.6); // Ambient light - - // Object + // Ambient light + vec3 La = scene_ambient; // Ambient light vec3 Ks = vec3(0.3, 0.3, 0.3); // Specular reflectance vec3 Kd = vec3(1.0, 1.0, 1.0); // Diffuse reflectance vec3 Ka = vec3(1.0, 1.0, 1.0); // Ambient reflectance - vec3 lightPosView = vec3(view * vec4(lightPosition, 1.0)); + vec3 totalLighting = La * Ka; + + float attenuation; + + for(int i = 0; i < numberOfLights; i++) + { + // Light + //vec3 lightPosition = vec3(0, 0, 2); + vec3 Ls = specular[i]; // Specular light + vec3 Ld = diffuse[i]; // Diffuse light + + + // Object + + vec3 lightPosView = vec3(view * vec4(LightPos[i], 1.0)); vec3 surfacePosition = vec3(model * vec4(Input.Position, 1.0)); vec3 surfacePosView = vec3(view * vec4(surfacePosition, 1.0)); vec3 surfaceToLight = normalize(lightPosView - surfacePosView); mat3 normalMatrix = transpose(inverse(mat3(view * model))); vec3 surfaceNormal = normalize(normalMatrix * Input.Normal); + + float dist = length(LightPos[i] - surfacePosition); + attenuation = 1.0 / (constantAttenuation + + linearAttenuation * dist + + quadraticAttenuation * pow(dist, 2.0)); + + attenuation = attenuation * pow(clampedCosine, spotExponent[i]); + + // Diffuse light + float dotProd = dot(surfaceToLight, surfaceNormal); + dotProd = max(dotProd, 0.0); + + Id = Ld * Kd * abs(dotProd) * attenuation; + // Specular light vec3 reflection = reflect(-surfaceToLight, surfaceNormal); float dotSpecular = dot(reflection, normalize(-surfacePosView)); dotSpecular = max(dotSpecular, 0.0); float specularFactor = pow(dotSpecular, 30.0); // Specular factor - vec3 Is = Ls * Ks * specularFactor; + + Is = attenuation * Ls * Ks * specularFactor; - // Diffuse light - float dotProd = dot(surfaceToLight, surfaceNormal); - dotProd = max(dotProd, 0.0); - vec3 Id = Ld * Kd * abs(dotProd); - - // Ambient light - vec3 Ia = La * Ka; - - float dist = length(lightPosition - surfacePosition); - float attenuation = 1.0 / (constantAttenuation - + linearAttenuation * dist - + quadraticAttenuation * pow(dist, 2.0)); - - fragmentColor = vec4((Is + Id) * attenuation + Ia, 1.0) * texel; + totalLighting = totalLighting + Id + Is; + } + fragmentColor = vec4(totalLighting, 1.0) * texel; + //fragmentColor = vec4(Id, 1.0) * texel; diff --git a/Escape-the-Dawn/Systems/RenderSystem.cpp b/Escape-the-Dawn/Systems/RenderSystem.cpp index 1db226c..66961d6 100644 --- a/Escape-the-Dawn/Systems/RenderSystem.cpp +++ b/Escape-the-Dawn/Systems/RenderSystem.cpp @@ -25,6 +25,19 @@ void Systems::RenderSystem::UpdateEntity( double dt, EntityID entity, EntityID p Model* model = m_CachedModels[modelComponent->ModelFile]; m_Renderer->AddModelToDraw(model, transformComponent->Position, transformComponent->Orientation); } + auto pointLightComponent = m_World->GetComponent(entity, "PointLight"); + if (pointLightComponent != nullptr) + { + + m_Renderer->AddPointLightToDraw( + transformComponent->Position, + pointLightComponent->Specular, + pointLightComponent->Diffuse, + pointLightComponent->constantAttenuation, + pointLightComponent->linearAttenuation, + pointLightComponent->quadraticAttenuation, + pointLightComponent->spotExponent); + } auto cameraComponent = m_World->GetComponent(entity, "Camera"); if (cameraComponent != nullptr) { diff --git a/Escape-the-Dawn/tower bridge.mtl b/Escape-the-Dawn/tower bridge.mtl new file mode 100644 index 0000000..24f260d --- /dev/null +++ b/Escape-the-Dawn/tower bridge.mtl @@ -0,0 +1,115 @@ +# Max2Mtl Version 4.0 Mar 10th, 2001 +# +# Multi/Sub Material__10791 (9) to come +# +newmtl Material__46 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__47 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__48 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__49 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__50 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__51 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__52 +Ka 0.1 0.1 0.1 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.5 +illum 2 +# +newmtl Material__10657 +Ka 0.6 0.6 0.6 +Kd 0.6 0.6 0.6 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +newmtl Material__10658 +Ka 0.6 0.6 0.6 +Kd 0.6 0.6 0.6 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +# Multi/Sub Material__10791 done +# +# Multi/Sub Material__10737 (3) to come +# +newmtl Material__10678 +Ka 1.0 1.0 1.0 +Kd 1.0 1.0 1.0 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +newmtl Material__69 +Ka 0.6 0.6 0.6 +Kd 0.6 0.6 0.6 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +newmtl Material__10677 +Ka 0.6 0.6 0.6 +Kd 0.6 0.6 0.6 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +# Multi/Sub Material__10737 done +# +newmtl 03_-_Default +Ka 0.5 0.5 0.5 +Kd 0.5 0.5 0.5 +Ks 0.9 0.9 0.9 +d 1.0 +Ns 0.0 +illum 2 +# +# EOF