From 3a0553f8f8950fa8469f77862fd7aeb893e624bb Mon Sep 17 00:00:00 2001 From: Lenaic <lenaic.durand@ensiie.fr> Date: Thu, 9 Jan 2020 18:14:11 +0100 Subject: [PATCH] ombres++ --- main | Bin 52360 -> 0 bytes scene.cpp | 11 +++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) delete mode 100755 main diff --git a/main b/main deleted file mode 100755 index 6ad67cf004206bccd23ad8c37507d2b455d5b442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52360 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 UJD4B?1H-bz5RNRG1~e`M0222EcmMzZ diff --git a/scene.cpp b/scene.cpp index f10504c..f87bfbf 100644 --- a/scene.cpp +++ b/scene.cpp @@ -50,6 +50,7 @@ Ray3f Scene::source() const void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, int nb_shapes, char* filename) { + /*--------------------------------Copié de la doc de libpng-------------------------------------*/ FILE *f = fopen(filename, "wb"); if (!f) throw "Echec de la création du fichier"; @@ -69,6 +70,8 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in } png_init_io(png_ptr, f); + /*----------------------------------------------------------------------------------------------*/ + //Set header png_set_IHDR(png_ptr, info_ptr, nb_pixel_row, nb_pixel_col, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); @@ -81,17 +84,17 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in png_write_info(png_ptr, info_ptr); + //Mémoire allouée pour une ligne de pixels (rgb => 3 bytes par pixel) png_bytep row = (png_bytep) png_malloc(png_ptr, 3*nb_pixel_row*sizeof(png_byte)); - float pw = (float) width / (float) nb_pixel_col; - float ph = (float) height / (float) nb_pixel_row; + float pw = (float) width / (float) nb_pixel_col; //largeur d'un pixel + float ph = (float) height / (float) nb_pixel_row; //hauteur d'un pixel float min_dist; float hit_dist; - for (int i=nb_pixel_col-1; i>=0; i--) - //for (int i=0; i<nb_pixel_col; i++) + for (int i=nb_pixel_col-1; i>=0; i--) //on remplit l'image par le bas à droite { for (int j=0; j<nb_pixel_row; j++) { -- GitLab