Search

족보

course
last review
mastery
none
progress
not started
date
2023/04/27
4 more properties
Global Illumination을 위해 사용되는 방법에는 Ray casting이 있다. 다음은 Ray Casting의 Trace함수이다. 이 코드에는 그림자를 만드는 부분이 빠져있다. 이때 그림자를 만들기 위해 추가하여야 할 코드를 명시하시오. Intersect함수는 light_source, no_intersection, intersection중 하나의 값만 반환한다.
color trace(point p, vector d) { point p; normal n; //Camera to Object q = intersect(p,d,status); if(status == light_source) return(light_source_color); //Emission if(status == no_intersection) return(background_color); //Background Ambient n = normalize(q); //Light to Object l = intersect (light_source_position, q - light_source_position, status);//shadow map if(status == intersection) return(0,0,0);//shadow l = direction(q,light_source_position); direct = lighting_model(d,q,l,n); return direct; }
GLSL
복사
color trace(point p, vector d) { point p; normal n; //Camera to Object q = intersect(p,d,status); if(status == light_source) return(light_source_color); //Emission if(status == no_intersection) return(background_color); //Background Ambient n = normalize(q); for(i=0; i<num_light_source; i++){ //Light to Object l = intersect (light_source_position, q - light_source_position, status);//shadow map if(status == intersection) direct += shadow_color; else{ l = direction(q,light_source_position); direct += lighting_model(d,q,l,n); } } return direct; }
GLSL
복사