ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블랙홀 렌더링
    블랙홀 렌더링 2023. 3. 27. 12:04

     

     

     

     

    이런 그림들은 어떻게 그리는 걸까?

    만약 물리학에 근거해서 그린거라면 어떻게 그린걸까?

     

    원리는 정말 간단하다.

     

    원근법을 도시한 이 그림에 우리 눈이 보는 방식이 들어 있다.

    여기서 블랙홀 주위에서 빛의 경로가 우리 예상을 기준으로 휘어지는 것을 고려하면

    ray-tracing (광원 역 추적)을 통해서 강착원반을 그릴 수 있을 것이다.

     

    역 추적이 키 포인트 인데, 위 그림에서 광선들은 물체에서 눈으로 들어가지만

    역 발상으로 눈에서 나가는 광선이 강착원반에 닿는지 check하면 된다.

    여기서 픽셀 수 만큼 광선을 만들어 내야 한다.
    다음 그림은 특정 픽셀에서 나간 광산이 강착원반과 닿으면 흰색 안 닿으면 검정색으로 렌더링한 결과이다.

    방법은 알았으니 이제 빛이 블랙홀 주위에서 어떻게 휘는 지만 알면 된다.

    이건 일반상대성이론을 공부해야 하는데, 그건 알아서 공부해야 되고,

    뭘 목표로 공부해야 그릴 수 있는가?

     

    바로 측지선 방정식이다.

     

    일반상대성이론으로 최종적으로는 빛의 경로에 대한 미분 방정식을 구하고 풀면 빛의 경로를 특정 좌표계에서의 좌표 값(혹은 함수)로 구할 수 있다.

    강착 원반은 면이니 면과 선이 크로스 하는 지 check 하는 것이다.

     

    여기서 빛의 측지선 미분 방정식은 비선형 방정식이라 나는 수치적으로 풀었다.

     

    혹시 미방을 풀 수 있는 방법이 있다면 좀 알려 주시라.

    수치미분으로 하니 너무 느려서 qhd 사진 하나 그리는데 50분 걸렸다.

     

    동영상이나 시뮬레이터 만들기에는 역부족이다.

    찾아보니 다른 사람들은 사진을 미리 만들어 놓고

    바라보는 위치나 각도에 따라 보간을 해서 렌더링 속도를 확보하는 거 같다.

     

     

     

     

     

     

     

    블랙홀 렌더링 코드: https://github.com/akswnd98/schwarzschild-raytracing-python/

     

    GitHub - akswnd98/schwarzschild-raytracing-python

    Contribute to akswnd98/schwarzschild-raytracing-python development by creating an account on GitHub.

    github.com

     

     

     

    댓글

Designed by Tistory.