본문 바로가기

전체 글92

07. RayMarching - Frenel effect 프레넬 효과는 ?Fresnel Effect는 빛의 물체와 수직에 가까울수록 투과하는 비율이 높아지고,수평과 가까울수록 반사되는 비율이 높아지는 현상이다.수평에 가까우면 반사 비율이 커서 좀 밝게 보입니다.  정반사 (스펙큘러)와 의미는 비슷하지만, 정반사의 경우 들어오는 빛의양과 나가는 빛의 양이 일정하다고 가정하는 반면,현실에서는 빛이 물체에 도달했을때, 같은양의 빛이라고 해도 시야각(View Angle)에 따라 일정량은 반사를 하고, 일정량은 굴절하는것을 의미한다. 즉, Fresnel법칙이란, 물체의 매질과 시야각에 따라 반사율과 굴절율이 정해진다라는 것입니다.  원 물체에 점 2개가 있습니다.첫번째 점의 노말은 N1, 두번째 점의 노말을 N2 입니다.N1 부분은 수평에 가깝고, 반사율이 커지고 굴절.. 2024. 8. 10.
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.
10 - 1. Descriptor 추가 이해 디스크립터 세트 레이아웃과 디스크립터 세트는 위의 맞물리는 물체라고 보시면 됩니다.서로 각각 만들어 놓고 나중에 런타임에 바인딩 되죠..코드로만 봐서는 헷갈립니다.그래서 따로 따로 생각하시고, 절차적으로 생각하시는게 정신건강에 좋습니다.  그림 1 > 위 그림에서는 좌측과 우측은 분리 되어있습니다.  좌측의 디스크립터 세트 레이아웃은 3개 있구요 첫번째 디스크립터 세트 레이아웃 내부에는 3개의 디스크립터 세트 레이아웃 바인딩이 있습니다.- 여기선 바인딩이 3개가 너무 많으니 2개로 합니다두번째 디스크립터 세트 레이아웃 내부에는 한개의 디스크립트 세트 레이아웃 바인딩이 있습니다.세번째 디스크립터 세트 레이아웃 내부에는 한개의 디스크립트 세트 레이아웃 바인딩이 있습니다.총 4 개의 디스크립터 세트 레이아웃 .. 2024. 8. 5.
05. RayMarching - Camera move 이전 챕터에서 다룬 Rotation 을 사용하여 카메라의 원점을 이동해보고방향을 회전 시켜보자.  카메라 원점을 값을 변경해보자.계속 증가하는 iTime(시간)을 sin, cos 함수에 넣고 각각 x, y에 넣게 되면 ,원을 그리면서 카메라가 이동을 하게 한다. mouse x, y 좌표를 -0.5 ~ 0.5로 remap 한 뒤, 그 값을 rotation 공식에 theta를 넣어 회전 행렬을 만들자.회전 행렬을 vec3 rd에 곱해주게 되면 카메라 광선 방향이 마우스의 좌표에 따라 회전을 하게 된다. x의 값은 y 회전할 때 사용하게 하고, y 값은 x 회전할때 사용하게 한다.아래 그림처럼 y 회전은 Yaw, x 회전은 Pitch로 정의 된다. 전체 코드 >struct Surface { float d.. 2024. 8. 5.