TECH 으로 돌아가기
TECH HACKER NEWS 오늘 5분 읽기 32 READS

내 방에 블랙홀 띄우기 — 브라우저에서 실시간으로 돌아가는 상대성이론

영화 '인터스텔라'의 블랙홀 가르강튀아 기억하시나요? 그 장면 하나를 만들기 위해 시각효과 팀이 물리학자 킵 손과 함께 전용 렌더러를 개발했고, 프레임 하나 뽑는 데 수십 시간씩 걸렸다는 이야기는 유명한데요. 그로부터 10년 남짓 지난 지금, 물리적으로 정확한 블랙홀을 스마트폰 브라우저에서 실시간으로 돌리고, 심지어 AR로 내 방 한가운데에 띄워놓고 빙 돌면서 구경할 수 있는 시대가 됐어요. 이번에 공개된 웹 프로젝트가 딱 그걸 해냈거든요. 앱 설치도 필요 없이 브라우저에서 주소만 열면 됩니다.

블랙홀 렌더링이 왜 어렵냐면

보통 3D 그래픽은 빛이 직선으로 나아간다는 가정 위에 서 있어요. 게임 엔진의 레이 트레이싱도 결국 카메라에서 직선 광선을 쏘아 물체와 만나는 지점을 찾는 방식이거든요. 그런데 블랙홀 근처에서는 이 가정이 깨져요. 일반상대성이론에 따르면 무거운 천체는 주변의 시공간 자체를 휘어놓고, 빛은 그 휘어진 공간을 따라 곡선으로 나아가요. 이게 바로 중력 렌즈 효과인데요, 쉽게 말하면 블랙홀이 거대한 돋보기처럼 작동해서 뒤에 있는 배경 별빛이 일그러지고, 같은 별이 여러 개로 보이기도 하는 현상이에요. 심지어 빛이 블랙홀 주위를 한 바퀴, 두 바퀴 돌다가 빠져나오는 경우도 있어서, 블랙홀 가장자리에는 광자 고리(photon ring)라는 밝은 테두리까지 생겨요.

그래서 이런 장면을 그리려면 광선 하나하나에 대해 '휘어진 시공간에서 빛이 지나가는 경로'를 계산해야 해요. 이 경로를 측지선이라고 부르는데, 미분방정식을 수치적으로 조금씩 적분해가며 풀어야 하거든요. 픽셀마다 광선을 쏘고, 광선마다 수십에서 수백 번의 계산 스텝을 밟아야 하니 연산량이 어마어마하죠. 예전엔 그래서 렌더 팜에서 몇 시간씩 돌리는 오프라인 작업이었어요. 이걸 실시간으로 만들 수 있게 된 비결은 GPU 셰이더예요. 화면의 모든 픽셀 계산이 서로 독립적이라 병렬 처리에 딱 맞는 문제거든요. 셰이더에 이 물리 계산을 올려서 수백만 픽셀을 동시에 계산하고, WebXR(브라우저에서 AR과 VR을 띄우게 해주는 웹 표준이에요)로 카메라 화면 위에 얹으면, 내 방 안에 진짜 블랙홀이 떠 있는 것처럼 보이는 거죠.

렌더 팜에서 브라우저 탭까지

업계 맥락에서 보면 이 프로젝트는 두 흐름이 만난 지점이에요. 하나는 과학 시각화의 대중화예요. 인터스텔라 팀의 렌더러는 결과가 논문으로 출판될 만큼 진지한 물리 시뮬레이션이었지만 일반인이 직접 만져볼 수는 없었고, NASA가 공개해온 블랙홀 시각화도 완성된 영상이었죠. 다른 하나는 웹 그래픽 성능의 비약이에요. WebGL을 거쳐 WebGPU까지 오면서, 예전 같으면 네이티브 앱에서나 가능했던 GPU 연산을 브라우저에서 그대로 돌릴 수 있게 됐거든요. '설치 없이 링크 하나로 공유되는 실시간 물리 시뮬레이션'은 이 두 흐름이 겹쳐야만 나올 수 있는 물건이에요.

한국 개발자에게 주는 시사점

그래픽스나 셰이더 프로그래밍에 관심 있는 분들에게는 이만한 학습 소재가 없어요. 레이 트레이싱, 수치 적분, GPU 병렬화 같은 기법이 한 프로젝트에 다 들어 있거든요. 특히 '물리 법칙을 셰이더 코드로 옮기는' 경험은 게임 이펙트나 데이터 시각화에도 그대로 응용돼요. WebXR 쪽도 눈여겨볼 만해요. 국내에선 아직 AR 하면 네이티브 앱을 먼저 떠올리는데, 설치 장벽 없이 브라우저로 바로 열리는 AR은 이벤트 페이지나 교육 콘텐츠 같은 곳에서 실무 활용도가 꽤 높거든요. 사이드 프로젝트로 '웹에서 돌아가는 과학 시각화' 하나 만들어보면 포트폴리오로도 확실히 눈에 띌 거예요.

정리하면, 10년 전 영화 스튜디오가 렌더 팜으로 만들던 장면을 이제 브라우저 탭 하나가 실시간으로 그려내는 시대가 됐다는 거예요. 여러분이라면 이 웹 GPU 성능으로 어떤 시뮬레이션을 만들어보고 싶으신가요? 브라우저에서 실시간 물리를 돌려본 경험이 있다면 댓글로 이야기 나눠요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://blackhole.plav.in
SHARE
처리 중...