Shader CG33 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. 3D Scenes With Ray Marching https://inspirnathan.com/posts/52-shadertoy-tutorial-part-6 2024. 6. 27. 2.7 Noise - 영혼이 빠져나감 이번에 만들어볼 이펙트는 말로 설명하기가 어렵습니다. 일본 공포만화에서 볼법한 귀신같은 느낌이라 제목을 영혼이 빠져나감 이라고 적었습니다. ^^ 전 챕터에서 사용한 random 함수, 그리고 새로운 random2 함수 입니다. float random (vec2 st) { return fract(sin(dot(st.xy, vec2(12.9898,78.233))) * 43758.5453123); } vec2 random2(vec2 st){ st = vec2( dot(st,vec2(127.1,311.7)), dot(st,vec2(269.5,183.3)) ); return -1.0 + 2.0*fract(sin(st) * 43758.5453123); } 기존 random 함수는 리턴타입이 float 인 반면, r.. 2023. 8. 28. 이전 1 2 3 4 5 6 7 ··· 9 다음