Loading...

ray marching 3

기존 글 목록https://mgun.tistory.com/5441 ray marching 1이전에 ray casting에 대해 다루어 보았다.https://mgun.tistory.com/4342 ray casting을 이해해 보자..목표 ray를 이해하고 구현해보자. ray(광선) casting(투사)는 무었인가? 레이캐스팅에 대해 알기 위해서는 이mgun.tistory.comhttps://mgun.tistory.com/5462 ray marching 2ray marching 1.https://mgun.tistory.com/5441 ray marching 1이전에 ray casting에 대해 다루어 보았다.https://mgun.tistory.com/4342 ray casting을 이해해 보자..목표 r..

2025. 3. 23. 07:39

ray marching 2

ray marching 1.https://mgun.tistory.com/5441 ray marching 1이전에 ray casting에 대해 다루어 보았다.https://mgun.tistory.com/4342 ray casting을 이해해 보자..목표 ray를 이해하고 구현해보자. ray(광선) casting(투사)는 무었인가? 레이캐스팅에 대해 알기 위해서는 이mgun.tistory.com 본격적으로 ray marching 알고리즘 및 구현에 대해 자세히 이야기 해 보자. RayMarching의 핵심 알고리즘은 광선(Ray)를 전진시키면서 표면에 도달했는지를 반복 체크하는것이다.이를 위해 사용하는 함수가 SDF다.SDF (Signed Distance Functions)을 활용 하는데 이 함수는 공간상의..

2025. 3. 9. 12:29

ray marching 1

이전에 ray casting에 대해 다루어 보았다.https://mgun.tistory.com/4342 ray casting을 이해해 보자..목표 ray를 이해하고 구현해보자. ray(광선) casting(투사)는 무었인가? 레이캐스팅에 대해 알기 위해서는 이 기술의 탄생 배경을 좀 살펴봐야 한다. GI(전역 조명모델)와 LI(지역 조명모델)을 보면 GImgun.tistory.com 사실 ray casting, ray tracing, ray marching 이라는 용어에서 볼 수 있듯이 전부3d 공간에서 ray를 투사하여 픽셀을 계산하는 방법인데 어디까지 어떻게 계산하냐에 따라이름만 다른거라 생각하면 된다. 쉽게 정리해 보면 아래와 같다.1. Ray Casting- 광선을 scene으로 투사하여 첫번째 ..

2023. 1. 10. 23:21

ray casting을 이해해 보자..

목표 ray를 이해하고 구현해보자. ray(광선) casting(투사)는 무었인가? 레이캐스팅에 대해 알기 위해서는 이 기술의 탄생 배경을 좀 살펴봐야 한다. GI(전역 조명모델)와 LI(지역 조명모델)을 보면 GI의 경우 다른 물체면에서 반사되어 입사하는 빛까지 고려한 조명모델이며 LI는 광원으로부터 직접 물체면으로 입사되는 빛만을 고려한 모델이다. 보다 사실적인 화면을 얻기 위해서는 전역조명 모델을 적용하고자 하였으며 그 시도중 하나가 레이캐스팅이다. 단순히 카메라(관찰자)로부터 광선이 출발한다고 하고, 결과적으로 이 빛의 진행 경로를 막고 있는 가장 가까운 물체를 찾는 것이다. 레이캐스팅은 정확하게 말하자면 전역조명을 위한 것은 아니고 가시면 검출을 위한 것이다. 카메라 시점에서 광선을 한번 던진 ..

(OpenGL) 도넛,큐브,원,사각형 그리기

2006.09.20 자료 옮김 #include /* includes gl.h glu.h */ void drawScene( ); int main ( int argc, char **arg ) { //초기화 함수들 glutInit함수는 GLUT라이브러리를 초기화하고 윈도우 운영체제와 연결하여 하나의 세션을 //형성한다. glutInitDisplayMode( GLUT_RGBA ); // 디스플레이 모드 설정, 윈도우의 기본 컬러모드를 RGB로 생성. glutInitWindowPosition( 50,50 ); // 윈도우의 위치지정, gl 실행화면 창의 위치. glutInitWindowSize ( 500,500 ); // 윈도우의 크기 지정,윈도우 폭, 윈도우 넓이. glutCreateWindow( "Exampl..

2020. 12. 31. 08:14

Chromatic Aberration 4 (색수차)

이전 글- Chromatic Aberration 1 (색수차)- Chromatic Aberration 2 (색수차)- Chromatic Aberration 3 (색수차) 이전 글들에서 Chromatic Aberration(CA)에 대해서 알아보았다.CA의 기본 개념은 간단했고 응용방법들도 여럿 있었다.실제로 게임에서 사용되고 있는 곳이 많은 효과다. 게임에서 많이사용 하는건 크게 두가지 정도인듯 하다.단순 uv 차이로 인한 CA, 그리고 방사형 블러를 이용한 CA.단순 uv차이로 인한 CA는 화면의 임펙트를 더해주고 방사형 블러를 이용한 CA는시작점에 집중하게 하는 느낌이 난다. 실제로 구글에서 Chromatic Aberration으로 검색하면 수많은 이미지를 볼 수 있다.실제로 CA는 사진에서는 카메라..

2020. 12. 29. 17:29

Chromatic Aberration 3 (색수차)

이전 글- Chromatic Aberration 1 (색수차)- Chromatic Aberration 2 (색수차) 색수차 활용에 대해서 다룬다.코사인 함수를 적극적으로 이용해 보자. 색수차의 기본 개념은 결국 r,g,b 채널에 대한 uv를 따로 쓰는 것인데 cos 그래프를 활용해서 r, g, b 채널을 균형있게 쓸 수 있다.그림 1 (코사인 그래프) 위 이미지가 코사인 함수값이다.이는 0(0도)에서 1, 3.14(180도)에서 -1을 가지는 대칭형 그래프이다.r채널 b채널 b채널 그림 2 (코사인 그래프 일부) 그림 3 (코사인 그래프 일부) 그림 4 (코사인 그래프 일부) 위 그림과 같이 r,g,b 채널을 각각 그림 2,3,4의 값으로 사용한다. 그리고 위 코사인 그래프의 변화값을 부드럽게 사용하기위..

2020. 12. 28. 16:47

Chromatic Aberration 2 (색수차)

이전 글- Chromatic Aberration 1 (색수차) 이전 글에서 Chromatic Aberration(색수차)를 간단히 구현하는 방법을 알아 보았다.추가로 좀 더 그럴듯하게 보이도록 몇가지 응용을 해 보자.rgb를 다른 uv로 사용한다는 기본 개념으로 하면 여러가지 응용이 가능하다 uv의 x축. 왼쪽 0 에서 오른쪽 1 ( 이값은 사용하는 환경에 따라 다르며 shader toy 기준)그림1 uv의 y축. 아래쪽 0 에서 위쪽 1 ( 이값은 사용하는 환경에 따라 다르며 shader toy 기준)그림2 위 두가지를 조합해서 0~1 사이의 uv값을 -1~1사이로 변경vec2 coords = (uv - 0.5) * 2.0; 이 값을 제곱하면 1~0~1의 값이 된다.그러면 중앙으로 갈수록 0에 가깝고 ..