09. RayMarching - SD Operation
도형들의 여러가지 연산 방법들의 대해서 정의 한다. 필요할때 마다 찾아서 사용하면 좋을 듯 하다 1) 도형 1, 도형 2를 합쳐서 출력.float opUnion(float d1, float d2) { return min(d1, d2);} 2) 도형 1, 도형 2를 부드럽게 합쳐서 출력.float opSmoothUnion(float d1, float d2, float k) { float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 ); return mix( d2, d1, h ) - k*h*(1.0-h);} 3) 도형 1, 도형 2의 공통 부분만 출력float opIntersection(float d1, float d2) { return max(d1, d2);} 4) 도형..
2024. 8. 12.
06. RayMarching - 퐁 라이팅 모델
퐁 라이팅 모델을 구현한다. 라이트 소스를 2개를 적용 결과.빛의 방향 좌측 상단 (-10, 10, 0);vec3 lightDirection = normalize(vec3(-10,10,0) - p); col += phong(lightDirection, normal, rd, s.mat) * 0.6; 빛의 방향 우측 상단 (50, 10, 0); vec3 lightDirectionA = normalize(vec3(50,10,0) - p); col += phong(lightDirectionA, normal, rd, s.mat) * 0.6; 2개의 광원의 방향에 따라서 반사하는 라이팅이 적용된 모습을 볼 수 있다. 퐁 라이팅 모델은 ambient + diffuse + specular + emissive 컬러 값..
2024. 8. 8.