From c4ee5c479ce603f3d2b8219887a04f5432e8840e Mon Sep 17 00:00:00 2001 From: Kushal Shrestha Date: Thu, 29 Jul 2021 00:02:22 +0545 Subject: [PATCH] Lighting 2 --- headers/Shape3D.h | 34 +++++++------------ ourBetterGraphics_eyy_/Assets/CubeTingie.bmp | Bin 2522934 -> 0 bytes 2 files changed, 12 insertions(+), 22 deletions(-) delete mode 100644 ourBetterGraphics_eyy_/Assets/CubeTingie.bmp diff --git a/headers/Shape3D.h b/headers/Shape3D.h index 460acf8..ff612f5 100644 --- a/headers/Shape3D.h +++ b/headers/Shape3D.h @@ -377,11 +377,13 @@ class Shape3D { Mat4x4 matProj; Texture* texture; - Vec3 camera{ 0.0f, 0.0f, 0.0f }; + //Vec3 camera{ 0.0f, 0.0f, 0.0f }; + Vec3 camera{ 0.0f, 10.0f, 30.0f }; //Lighting Parameters Vec3 lightDirection = { 1.0f, 1.0f, 1.0f }; - Vec3 lightPosition = { 5.0f, 5.0f,5.0f }; + //Vec3 lightPosition = { 5.0f, 5.0f,5.0f }; + Vec3 lightPosition = { 5.0f, 20.0f, 40.0f }; float Ka = 0.75f, Kd = 0.75f, Ks = 0.5f, Ia = 5.0f, Il = 7.0f; int n = 10; @@ -427,10 +429,10 @@ class Shape3D { //Loading obj //mesh.LoadFromObjectFile("../Assets/Church.obj"); - //mesh.LoadFromObjectFile("../Assets/Cube2.obj"); + mesh.LoadFromObjectFile("../Assets/Cube2.obj"); //mesh.LoadFromObjectFile("../Assets/Teapot.obj"); //mesh.LoadFromObjectFile("../Assets/Axis.obj"); - mesh.LoadFromObjectFile("../Assets/Mountain2.obj"); + //mesh.LoadFromObjectFile("../Assets/Mountain2.obj"); //mesh.LoadFromObjectFile("../Assets/Sample.obj"); //For Release @@ -497,16 +499,7 @@ class Shape3D { } void draw() { Mesh toRaster; - - // Rotation Z - //Mat4x4 matRotZ; - //matRotZ = Mat4x4::MakeRotationZ(fTheta*0.5f); - // Rotation Y - //Mat4x4 matRotY; - //matRotY = Mat4x4::MakeRotationY(fTheta); - // Rotation X - //Mat4x4 matRotX; - //matRotX = Mat4x4::MakeRotationX(0); + //Tranlation Mat4x4 matTrans; matTrans = Mat4x4::MakeTranslate(0.0f, 0.0f, 3.0f); @@ -514,14 +507,12 @@ class Shape3D { matLightTrans = Mat4x4::MakeTranslate(lightPosition); //World Transformations Mat4x4 matWorld; - Mat4x4 matWorld2; + Mat4x4 matLighting; matWorld = Mat4x4::MakeIdentity(); - matWorld2 = Mat4x4::MakeIdentity(); - //matWorld.MultiplyMatrix(matRotZ); - //matWorld.MultiplyMatrix(matRotY); + matLighting = Mat4x4::MakeIdentity(); matWorld.MultiplyMatrix(matTrans); - matWorld2.MultiplyMatrix(matLightTrans); - matWorld2.MultiplyMatrix(matTrans); + matLighting.MultiplyMatrix(matLightTrans); + matLighting.MultiplyMatrix(matTrans); //camera Vec3 up = { 0,1,0 }; @@ -539,13 +530,12 @@ class Shape3D { //Draw Triangles for (int index=0; index < sizee; index++) { - //for (auto tri : mesh.triangles) { Triangle tri = mesh.triangles[index]; Triangle triProjected, triTransformed, triViewed; //Apply Transformations if(index<12) - matWorld2.MultiplyTriangle(triTransformed, tri); + matLighting.MultiplyTriangle(triTransformed, tri); else matWorld.MultiplyTriangle(triTransformed, tri); diff --git a/ourBetterGraphics_eyy_/Assets/CubeTingie.bmp b/ourBetterGraphics_eyy_/Assets/CubeTingie.bmp deleted file mode 100644 index 38d413f6f61d98051d2ec32a99230de667c10c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2522934 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

aFhn$m!QJ7V@P0EXUc? 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 MAV7csfsF+I17twaCjbBd