From 4a67c6f9054329a5bb5dac228f658d65a1874bd9 Mon Sep 17 00:00:00 2001 From: H3XploR Date: Wed, 19 Feb 2025 16:38:36 +0100 Subject: [PATCH] update norm --- miniRT | Bin 350888 -> 355072 bytes miniRT.h | 9 +++++- tags | 9 +++++- trace.c | 94 ++++++++++++++++++++++++++++++------------------------- 4 files changed, 67 insertions(+), 45 deletions(-) diff --git a/miniRT b/miniRT index 88699d4380f541c28dedbc5e084ac90a68c23a94..a4eb0e87817de645545ad67635235f4a46687195 100755 GIT binary patch delta 96870 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 delta 95701 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 z zlH}s*#on@eIqgIZueUlBZ|YDAqC;^)=i}yM7JJtUiP^rRF#roPq9>uxjFnfJ=@V(v8?*_jrDPr(zm-5Gxq<6->^(oeaf!;qu@>a_X$sGJXbv~au zpErj{y=TGRcVwone1!AHKD_|6PJRBHUjS}Q%hZt%I7(R$rTg6gC0^>_EwPiDFispw z_tvXoF-raQSH%S~XUzY^tK!eo#lrmE_r&YcGv5<8D`0b$X3|PQZI=9DR_J0VQjeT| z?+RUiS4{KZzw$oktra@fT|R2Ygx{>t&rbL>@BOz9G5nvI_j;?9r)G95pQb6FrYV0q zO)<~R)Rj-u6bu+Q1d{hrC_p&tK&K&D&+(|Kq7+hd!wWcAWf;xh$?8`k&eqVExg`2mFn)-! z|A`;){&}zRw|?{e+i!&L`xURZ+W2f{AM6-=hNyVU?+r9`!NujDLl-J0ZU-I|1r zPTJO_l9^kR{IE4CnDSECU*WiJ)Uk--tl!QVXx*h$O6*d~Z?DkpoX5EG*6p0vycG}J z&Y50B@l-24kOSUXY2SfBmlD4|Ifhj^vU(ND|x3HYF6_+KQvK5yl zowgO1C7rR=FH4eA)rUW1E~t$9g33lLsCGDL3o5_Ew847vESw3mvY3)BpKNml$5CbO zdT_9=t{lbc$^-tSY>ibq2gJI%!lFvsHH;;db=NS~RQj%Atf}-}!+A1SSFYC8m77>y z9dXQDUD228cUM;ut*#t${_CqN`Qxvy#0QAdv>*H31=fL|#am>tz{>jaJqs**=l3qK z(wxNt3!jsm)p`&Act`#_tE}{rN?sY0oUhb@H~>grWGlK(7==!3^U-wT%|Stbu*kNa z8uXzS*>q^oyJ{d7*~!`dbv2OwNj1>FEWEqOrY{S2?|xZ$k50VywJy5Lsw-d1?!Q@d zmw(TC`*jYX4mc<1Z>R$n-TAn5rL~%cDMcl`VflUK7s=~`Q|B_fg5SJo`CvNWqrGVP zoepH@`nFx|jSG|^m#v;b?Zr#6zy9Jyjj>aloQl+;;w@pVKhV3De?twP@i%I))L!|J zYEZyjc*ZXnkBS^4ET$3;Va17tGB=`OY!A_Jwt;8_yGAsUT_PIA9utjbg^5yG5YZUs z{0e9E&14Jc>Hl_b8qIy*y*Mr7KYwr9pWOI?xzB&>%8#BX%U{0n!#ImKfq)t)v$=@` zh0BE?Hp~gFqSJ3H`LkO?^f>e=5LUWkQsZs3HvRjzriJoJHt)3R?A8H3$2+f2={z{= z0H4!3z~eotb%4j9uMhAT_4NTBgZ^&qhgUAv0X~ly;1}8|KGpu<^=WqZw_CLnI!QO> zH;1wOcQ^9C@j~@YqZThzbE)rX+5fS(s&}#|`K7xtqzk!nTMu4w_%z^ukhkjpMo<6G z4)~ASsgHh;^XSvRPfLQ2^}*%8W=T*4BSzy`gTZFzA@scl#tk+$Y1!$cQMSxO{{HA_ z$h?Xq1`X@!khC0NO;y%X_K@(o>B!-?PUUi?Q@PkpoXQoITdAoZ$W`F21GzltKrW;8 zKrYXB#sK-v&xi)NDTVE|u_W`%NOhZ=k|pyv+9KA^Zi89T-+gO)vl=Y+R@JMmTogC+ zyI-{etTvowBy96J1G&y2O68}YlE z7QbI_?Ispx z2K??aKR>uU$|q48^NzVsio`7%mzYojk~ z(-l32%$o<<3?_q;Xl?#I@Feq{N;!2K&NIxm7>B^~6ua`&M=Gi#4pvbo7EpfwMgCra z_r5Ud<{{n?;Fp5_p?`3o-rMhr-ab&z@$CckL~p^ntNHF`P9Z-1Oyh%0DF4Q);vf8( zM!u4gW5U~Ajcn~|Bx_gme_LP_QcD(6?B4&|oe%a(N&oH6?_McozDaUYJqjy!|LPBT z-uyuMANT>!zp>OvC}Mr76!{@vD@sy%)w7sleaHM)78$v9h4|>78)O=QW)%N_dF{JR=+8!Omej_yxlSwG&C3*3$u%1!(w%S zpW??BTNeA_LSom|ng>~UHW+qD6vWMNb+x5-8N4V|JpvS4$DTo&FMO#Je|6PoWfhn3 zR@`8a3=W3jx^sw~=G;@a|GKIcY?O^=p8+EOpVfLdx=|uJHcik32Ssj8zV_+9`e=a- zEA?0_hijp6oUZtrhy@h+PuJ~n-G}(wsQdp>w=by$Gwje(JFL+;jc#f5OpuyTPRZlS zArofEYv`m)(pHbxL7h`habfNn`D#>Aqna8;Y1Brec#Q^VG)kj+8f9p7N+aZ=JnF_t z^{jvtifU9tO|GE$**CFPEOZ9>Sli!DHFG_9KLS z9z(|BckR<*pA+Jn-Ac2^#WUh>j=jO)0ZlNheAoXx&3{hAs3^?=2g-}T)oNlz#l>|G z+#M0F>Uz!DLl1sVodf59r+RWp?KJzmdT66j%f``8ntfK?zJR);5@g}0GNQI>KrO{3 zCP?=j6rp)8tfx^!xBsP{X3<}dq>*m_RF51QBmU;2j8ygv9AHd;g)}lmtLaG1HBk>X z@2Y0+gJ=3n5_xhRuRAZUtXX?P;plI=`i%1WmF8=;?rWu<^BUr*a=X%x~t8`kLd$u6&M3ZQ3-Scd{IaJhAGQ?=U zdTNxcCWav9>AL5AKWe_>bqUQEzU0+#Rue}uXV=5JM-M$#s}$}FkKwQ2?1-K%LGRhD zoxh#l92&IOa^6OFCOiT-Aw zTcf{by8YGP)Muh@KM^x}`g@`0E=9Mu=$&ap&Dk&x_EbgDzp0`vnt!!#b;Z$jzaDt) zOfA$zz0lqu3os&Hw*&Kjo3-A zZ5wIMxVldKd1%hXb?3r$HR~37Z&+41vrx@fID9!uZkgrM<1jQ9&H){CXWQQlIz9Br z8|Y&7)WeO@Vx6x$Ptv;%{JvKFtrpHP8M^ZzU304G&Ife+tG^j@u3J-UqLtLD3_t1i z{(84uLyyN+y;cM5Ag8*DD8Kd;pixah;jN))B)md(v?!DHps~8Wp}J;KP?uV~Zhy47 z=HEK=8YH3%NP)A%Tk4_5W{A=|=xusQOY06}MKIS%daQi7W}jx%c%GKm?HZlbJm1ni z*Lb3N`c7AeA2eTCwN5X$Mt*|S=vs=gxP!q%??62DcQf4`>WBK5UldPp(T#B z(Wr{%&?Gaike0R)T{Ha!316-?bm!=1nzOEWXfBBe9nf8Oe&nS&kJYtjpl+X}`?tnz#P)i1tQXGe(b|epT_3LGWEV954|V_9^@+|5Esutm!kOhzW9pzp&Kjj@ zVTw6uy?FF*q!yt0s-jVC^%(_isy(&QC|;vfL9Wvg5$R5Y##$L)=!q}YoLA}2SM>p3 zR|Uf!Es~QO-PSzYU^YT=?crKnd-Z}ltJmrx8<;;4l~hCOp=v7Yp5v0V6diTX)r2qC zrD!`jCG-gXdWLjrq&auhL*Hwv*{AD+Wa-3@kb^!1TZdwUdaZ-vmoIY>pf3hq=&6aI>8qU7sbQL@mzor-INIxz8%%OE%ayT;r=4y&ZjpLERtd7x*AV>{t8N|N zJZ3CbThODv^6*%uPNPR_U%pa3Pmj7nL|at1PD&MKQCny<4P>`n%i)2!>h(@aS$m&$ zn$TbRt6p(RSv!x3+H*%WCQb=*9B!*A{C<5_XGovpq;82*+@%Ia^?aNXEGaoux6Vp% pu7&wE#qcPg71#%qqIT=76u0}jvgR~Fozqzfl3GTn=Q}Hf{ttDP;PL +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/13 20:02:36 by yantoine #+# #+# */ -/* Updated: 2025/02/19 16:27:24 by yantoine ### ########.fr */ +/* Updated: 2025/02/19 16:37:07 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */ @@ -95,6 +95,13 @@ typedef struct s_hit t_vec3 color; } t_hit; +typedef struct s_hit_info { + t_vec3 point; + t_vec3 normal; + t_vec3 color; +} t_hit_info; + + typedef struct s_camera { t_vec3 camPos; diff --git a/tags b/tags index 7da3771..e729cf1 100644 --- a/tags +++ b/tags @@ -284,7 +284,8 @@ bpp3 minilibx-linux/test/main.c /^int bpp3;$/;" v typeref:typename:int bpp4 minilibx-linux/test/main.c /^int bpp4;$/;" v typeref:typename:int brightness miniRT.h /^ float brightness;$/;" m struct:s_light typeref:typename:float c miniRT.h /^ float c;$/;" m struct:s_calc typeref:typename:float -calc_lighting trace.c /^t_vec3 calc_lighting(t_vec3 hitPoint, t_vec3 hitNormal, t_vec3 objColor,$/;" f typeref:typename:t_vec3 +calc_light_contribution trace.c /^static t_vec3 calc_light_contribution(t_hit_info hit, t_light light, t_camera camera, t_scene sc/;" f typeref:typename:t_vec3 file: +calc_lighting trace.c /^t_vec3 calc_lighting(t_vec3 hit_point, t_vec3 hit_normal, t_vec3 obj_color, t_scene scene)$/;" f typeref:typename:t_vec3 camDir miniRT.h /^ t_vec3 camDir;$/;" m struct:s_camera typeref:typename:t_vec3 camPos miniRT.h /^ t_vec3 camPos;$/;" m struct:s_camera typeref:typename:t_vec3 camera miniRT.h /^ t_camera camera;$/;" m struct:s_scene typeref:typename:t_camera @@ -297,6 +298,7 @@ check_shadow_plane shadows.c /^static bool check_shadow_plane(const t_ray shadow check_shadow_sphere shadows.c /^static bool check_shadow_sphere(const t_ray shadow_ray, float max_t,$/;" f typeref:typename:bool file: check_sign ft_atof.c /^inline static char *check_sign(char *str, int *sign)$/;" f typeref:typename:char * file: check_tokens check.c /^int check_tokens(char **tokens, int expected)$/;" f typeref:typename:int +clamp_color trace.c /^static t_vec3 clamp_color(t_vec3 color)$/;" f typeref:typename:t_vec3 file: clean libft/Makefile /^clean:$/;" t clean makefile /^clean:$/;" t clean minilibx-linux/Makefile /^clean :$/;" t @@ -312,6 +314,7 @@ color miniRT.h /^ t_vec3 color;$/;" m struct:s_light typeref:typename:t_vec3 color miniRT.h /^ t_vec3 color;$/;" m struct:s_plane typeref:typename:t_vec3 color miniRT.h /^ t_vec3 color;$/;" m struct:s_sphere typeref:typename:t_vec3 color miniRT.h /^ t_vec3 color;$/;" m struct:s_hit typeref:typename:t_vec3 +color miniRT.h /^ t_vec3 color;$/;" m struct:s_hit_info typeref:typename:t_vec3 color minilibx-linux/mlx_int.h /^ int color;$/;" m struct:s_col_name typeref:typename:int color_map_1 minilibx-linux/test/main.c /^int color_map_1(void *win,int w,int h)$/;" f typeref:typename:int color_map_2 minilibx-linux/test/main.c /^int color_map_2(unsigned char *data,int bpp,int sl,int w,int h,int endian, int type)$/;" f typeref:typename:int @@ -568,6 +571,7 @@ ndc_y miniRT.h /^ float ndc_y;$/;" m struct:s_calc typeref:typename:float next minilibx-linux/mlx_int.h /^ struct s_win_list *next;$/;" m struct:s_win_list typeref:struct:s_win_list * normal miniRT.h /^ t_vec3 normal;$/;" m struct:s_plane typeref:typename:t_vec3 normal miniRT.h /^ t_vec3 normal;$/;" m struct:s_hit typeref:typename:t_vec3 +normal miniRT.h /^ t_vec3 normal;$/;" m struct:s_hit_info typeref:typename:t_vec3 numAmbient miniRT.h /^ int numAmbient;$/;" m struct:s_scene typeref:typename:int numCamera miniRT.h /^ int numCamera;$/;" m struct:s_scene typeref:typename:int numCylinders miniRT.h /^ int numCylinders;$/;" m struct:s_scene typeref:typename:int @@ -597,6 +601,7 @@ pix minilibx-linux/mlx_int.h /^ Pixmap pix;$/;" m struct:s_img typeref:typenam pixels miniRT.h /^ int *pixels;$/;" m struct:s_app typeref:typename:int * planes miniRT.h /^ t_plane planes[MAX_PLANES];$/;" m struct:s_scene typeref:typename:t_plane[] point miniRT.h /^ t_vec3 point;$/;" m struct:s_plane typeref:typename:t_vec3 +point miniRT.h /^ t_vec3 point;$/;" m struct:s_hit_info typeref:typename:t_vec3 pos miniRT.h /^ t_vec3 pos;$/;" m struct:s_light typeref:typename:t_vec3 print_cylinder print_next.c /^void print_cylinder(t_cylinder cyl)$/;" f typeref:typename:void print_plane print_next.c /^void print_plane(t_plane plane)$/;" f typeref:typename:void @@ -634,6 +639,7 @@ s_col_name minilibx-linux/mlx_int.h /^struct s_col_name$/;" s s_cylinder miniRT.h /^typedef struct s_cylinder$/;" s s_event_list minilibx-linux/mlx_int.h /^typedef struct s_event_list$/;" s s_hit miniRT.h /^typedef struct s_hit$/;" s +s_hit_info miniRT.h /^typedef struct s_hit_info {$/;" s s_img minilibx-linux/mlx_int.h /^typedef struct s_img$/;" s s_info libft/libft.h /^struct s_info$/;" s s_light miniRT.h /^typedef struct s_light$/;" s @@ -683,6 +689,7 @@ t_cylinder miniRT.h /^} t_cylinder;$/;" t typeref:struct:s_cylinder t_event_list minilibx-linux/mlx_int.h /^} t_event_list;$/;" t typeref:struct:s_event_list t_final miniRT.h /^ float t_final;$/;" m struct:s_calc typeref:typename:float t_hit miniRT.h /^} t_hit;$/;" t typeref:struct:s_hit +t_hit_info miniRT.h /^} t_hit_info;$/;" t typeref:struct:s_hit_info t_img minilibx-linux/mlx_int.h /^} t_img;$/;" t typeref:struct:s_img t_info libft/libft.h /^typedef struct s_info t_info;$/;" t typeref:struct:s_info t_light miniRT.h /^} t_light;$/;" t typeref:struct:s_light diff --git a/trace.c b/trace.c index 649e837..f65fb01 100644 --- a/trace.c +++ b/trace.c @@ -6,63 +6,71 @@ /* By: yantoine +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/17 19:07:07 by yantoine #+# #+# */ -/* Updated: 2025/02/19 16:30:27 by yantoine ### ########.fr */ +/* Updated: 2025/02/19 16:37:40 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */ #include "miniRT.h" -// Calcule l'éclairage (ambiant, diffus et spéculaire) sur un point d'impact -t_vec3 calc_lighting(t_vec3 hitPoint, t_vec3 hitNormal, t_vec3 objColor, - t_scene scene) +static t_vec3 clamp_color(t_vec3 color) { - int i; - t_calc calc; + if (color.x > 1.0f) + color.x = 1.0f; + if (color.y > 1.0f) + color.y = 1.0f; + if (color.z > 1.0f) + color.z = 1.0f; + return color; +} - calc.color = vec3_scale(objColor, scene.ambient.ratio); - i = 0; - while (i < scene.numLights) - { - calc.light = scene.lights[i]; - calc.l = vec3_normalize(vec3_sub(calc.light.pos, hitPoint)); - if (!is_in_shadow(hitPoint, calc.light.pos, scene)) - { - calc.diff = fmaxf(0.0f, vec3_dot(hitNormal, calc.l)); - calc.view_dir = vec3_normalize(vec3_sub(scene.camera.camPos, hitPoint)); - calc.half_dir = vec3_normalize(vec3_add(calc.l, calc.view_dir)); - calc.spec = powf(fmaxf(0.0f, vec3_dot(hitNormal, calc.half_dir)), 32.0f); - calc.color = vec3_add(calc.color, vec3_scale(vec3_mul(objColor, calc.light.color), - calc.diff * calc.light.brightness)); - calc.color = vec3_add(calc.color, vec3_scale((t_vec3){1, 1, 1}, calc.spec - * calc.light.brightness)); - } - i++; - } - if (calc.color.x > 1.0f) - calc.color.x = 1.0f; - if (calc.color.y > 1.0f) - calc.color.y = 1.0f; - if (calc.color.z > 1.0f) - calc.color.z = 1.0f; - return (calc.color); +static t_vec3 calc_light_contribution(t_hit_info hit, t_light light, t_camera camera, t_scene scene) +{ + t_vec3 l = vec3_normalize(vec3_sub(light.pos, hit.point)); // Variable 1 + if (is_in_shadow(hit.point, light.pos, scene)) + return (t_vec3){0, 0, 0}; + float diff = fmaxf(0.0f, vec3_dot(hit.normal, l)); // Variable 2 + t_vec3 view_dir = vec3_normalize(vec3_sub(camera.camPos, hit.point)); // Variable 3 + t_vec3 half_dir = vec3_normalize(vec3_add(l, view_dir)); // Variable 4 + float spec = powf(fmaxf(0.0f, vec3_dot(hit.normal, half_dir)), 32.0f); // Variable 5 + return vec3_add( + vec3_scale(vec3_mul(hit.color, light.color), diff * light.brightness), + vec3_scale((t_vec3){1, 1, 1}, spec * light.brightness)); +} + +t_vec3 calc_lighting(t_vec3 hit_point, t_vec3 hit_normal, t_vec3 obj_color, t_scene scene) +{ + t_vec3 color = vec3_scale(obj_color, scene.ambient.ratio); // Variable 1 + t_hit_info hit; // Variable 2 + hit.point = hit_point; + hit.normal = hit_normal; + hit.color = obj_color; + int i = 0; // Variable 3 + while (i < scene.numLights) + { + color = vec3_add(color, + calc_light_contribution(hit, scene.lights[i], scene.camera, scene)); + i++; + } + return clamp_color(color); } // Fonction principale de lancer de rayon (trace) t_vec3 trace(t_ray ray, t_scene scene) { - float tMin; - t_vec3 hitNormal; - t_vec3 objColor; - t_vec3 hitPoint; + float t_min; + t_vec3 hit_normal; + t_vec3 obj_color; + t_vec3 hit_point; - tMin = 1e9; - hitNormal = (t_vec3){0, 0, 0}; - objColor = (t_vec3){0, 0, 0}; + t_min = 1e9; + hit_normal = (t_vec3){0, 0, 0}; + obj_color = (t_vec3){0, 0, 0}; scene.ray = ray; - if (intersect_objects(&tMin, &hitNormal, &objColor, scene)) + if (intersect_objects(&t_min, &hit_normal, &obj_color, scene)) { - hitPoint = vec3_add(scene.ray.origin, vec3_scale(scene.ray.dir, tMin)); - return (calc_lighting(hitPoint, hitNormal, objColor, scene)); + hit_point = vec3_add(scene.ray.origin, \ + vec3_scale(scene.ray.dir, t_min)); + return (calc_lighting(hit_point, hit_normal, obj_color, scene)); } - return ((t_vec3){0, 0, 0}); // Couleur de fond (ciel) + return ((t_vec3){0, 0, 0}); }