분류 전체보기92 04. RayMarching - Rotation 오늘은 도형을 몇가지 추가하고 도형의 움직임의 대해서 알아본다.아래 참조 사이트에 들어가면 SDF 함수로 도형의 코드가 잘 나와있다. 구 렌더링에 이어서 사각형 렌더링의 함수는 sdBox 이다.오리지널 사각형 렌더링 코드에서 offset 파라메터와, color 파라메터만 추가했다. 사각형의 sdBox 코드를 구현했으면, sdBox를 sdScene에 적용해보자.여러 개의 도형의 거리를 구해서 그중 가장 가까운 픽셀의 색과 거리를 리턴하는 함수 closer() 부분을 잘 보면된다. 회전 함수는 회전 행렬을 구해서 정점과 곱해주면 된다.Move, Roatation, Scale 3가지가 있지만 여기서는 회전 행렬만 구한다.회전 행렬은 잘 나와있으니, 다른 사이트에서도 참고하면 된다. 회전 행렬 >// Rota.. 2024. 8. 4. 03. RayMarhcing - Rendering Many Object 생성한 원을 여러개 구성하고 땅도 추가해본다.각 물체의 색도 각각 적용해보자. sdSphere 함수의 리턴되는 값은 point와 원형의 표면까지 거리였다.구를 그릴때는 원점 기준으로 반지름 만큼 떨어진 지점이 표면임을 알수 있었다.그 표면의 지점과 카메라의 거리만큼을 ray에서 더해 주었는데, 여러개 원을 구성할때는 표면까지 거리 중 가장 최소의 값만 취하면 된다.우리 눈에 더 앞에있는 물체가 보이는 것과 같은 의미이다. uv 값의 범위는 가로세로 동일 비율을 적용하고 원점 기준으로 좌표계를 옮겨서 다음과 같다.-0.5 sdFloor가 음수가 되면 더 이상 ray를 증가시키지 않기 때문에, 구를 찾을수가 없다.그렇기 때문에 y 값을 + 1 증가시켜 것 같은데,구의표면과 카메라의 거리대상으로 한 sdS.. 2024. 8. 2. 02. RayMarhcing - Shading Sphere 이전 포스팅https://graphicsimon.tistory.com/68?category=1119246 01. RayMarhcing - Rendering Sphere위 그림은 2차원이 아닙니다. ^ ~ ^ 3차원임 vec2 uv = ( fragCoord - 0.5 * iResolution.xy ) / iResolution.y;fragCoord 값은 해상도 값 기준 좌표이다. ( 0 화면 중심이 원점이고 가로 세로 종횡비를 맞춰주는 코드graphicsimon.tistory.com 퐁라이팅 모델을 적용해서 구에 음영 입히기 노말을 계산하는 함수는 calcNormal 이다.두점 사이의 기울기를 법선 벡터 노멀로 사용할 수 가 있다.아주 작은 두점 사이의 기울기는 : x증가량 / y 증가량 이다.- (x.. 2024. 8. 1. 01. RayMarhcing - Rendering Sphere 위 그림은 2차원이 아닙니다. ^ ~ ^ 3차원임 vec2 uv = ( fragCoord - 0.5 * iResolution.xy ) / iResolution.y;fragCoord 값은 해상도 값 기준 좌표이다. ( 0 화면 중심이 원점이고 가로 세로 종횡비를 맞춰주는 코드를 먼저 적용한다. RayMarhcing 기법으로 스피어를 렌더링 한다.RayMarching 에 대해서 모르시면 아래 Reference를 참고하자.RayMarching 특징은1) 각 픽셀마다 ray를 생성해서 해당 ray의 길이를 줄이거나 늘려서 렌더링 할 물체의 표면의 위치를 찾는 것이다.2) 카메라가 보이지 않는 부분은 그리지 않는다. 카메라 좌표 = ro, 픽셀의 광선 = rdvec3 rd = normalize(vec3(uv.. 2024. 7. 31. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음