처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.24 33

TI-89 공학용 계산기에서 3D 레이캐스팅 엔진을 돌려버린 프로젝트

Hacker News 원문 보기
TI-89 공학용 계산기에서 3D 레이캐스팅 엔진을 돌려버린 프로젝트

계산기에서 둠(DOOM)을 돌린다고요?

"이 기기에서 둠이 돌아가나요?"라는 밈이 개발자 커뮤니티에서 오래된 농담이잖아요. 그런데 진짜로 1990년대 후반에 나온 TI-89 공학용 계산기에서 높이맵(Height Map) 기반 3D 레이캐스팅 엔진을 구현한 프로젝트가 공개됐어요. 단순한 2D 레이캐스팅이 아니라, 지형의 높낮이까지 표현하는 진짜 3D 느낌의 렌더링이라서 더 놀라운 결과물이에요.

레이캐스팅이 뭔지부터 알아볼게요

레이캐스팅(Raycasting)은 3D 그래픽을 렌더링하는 기법 중 하나인데요, 우리가 아는 최신 게임처럼 수백만 개의 폴리곤을 그리는 방식이 아니에요. 대신 화면의 각 세로줄(column)마다 "빛의 선(ray)"을 하나씩 쏴서, 그 선이 벽이나 장애물에 부딪히는 지점을 계산하고, 거리에 따라 높이를 다르게 그리는 방식이에요. 1992년에 나온 울펜슈타인 3D(Wolfenstein 3D)가 이 기법으로 만들어졌고, 둠(DOOM)도 비슷한 원리를 확장해서 사용했죠.

이게 영리한 이유는, 진짜 3D 연산을 하는 게 아니라 2D 맵 데이터를 기반으로 3D처럼 보이게 "속이는" 거라서 연산량이 훨씬 적거든요. 1990년대 초반 PC에서도 부드럽게 돌릴 수 있었던 비결이 바로 이거예요.

높이맵까지 더하면 어떻게 되나요?

일반적인 레이캐스팅은 모든 벽의 높이가 같아요. 울펜슈타인 3D를 보면 바닥은 평평하고 벽은 다 같은 높이죠. 그런데 이 프로젝트는 여기에 높이맵(Height Map)을 추가했어요. 높이맵이 뭐냐면, 2D 격자(grid)의 각 칸에 "이 지점의 높이는 얼마"라는 정보를 저장한 데이터예요. 이걸 레이캐스팅과 결합하면, 산이나 계곡 같은 지형의 굴곡을 표현할 수 있게 돼요. 1990년대 후반 게임인 코만치(Comanche)가 이 기법으로 유명했는데, 당시 기준으로 놀라울 정도로 사실적인 지형을 보여줬어요.

이 프로젝트에서는 각 레이(ray)가 앞으로 전진하면서 높이맵 값을 샘플링하고, 해당 높이를 화면의 세로 픽셀로 변환해서 그리는 방식을 써요. 레이가 더 멀리 갈수록 화면에서 더 위쪽에 그려지는 원리인데, 이렇게 하면 앞쪽이 가까이 보이고 뒤쪽이 멀어지면서 자연스러운 원근감이 생겨요.

TI-89에서 이걸 어떻게 돌리죠?

TI-89의 스펙을 보면 좀 아득해져요. 12MHz의 모토로라 68000 프로세서, 256KB RAM, 160×100 픽셀의 흑백 화면이에요. 참고로 모토로라 68000은 1979년에 나온 프로세서로, 초기 매킨토시와 세가 메가드라이브에 사용됐던 칩이에요. 현대 스마트폰 프로세서와 비교하면 클럭 속도만 해도 수천 배 차이가 나죠.

이런 극한의 제약 속에서 3D 렌더링을 돌리려면 정말 영리한 최적화가 필요해요. 이 프로젝트는 C로 작성됐고, TI-89 전용 개발 도구인 TIGCC를 사용했어요. 부동소수점 연산은 너무 느리니까 모든 수학 연산을 고정소수점(fixed-point) 연산으로 처리하고 있고요. 고정소수점이 뭐냐면, 소수점 위치를 미리 정해놓고 정수 연산만으로 소수를 다루는 트릭이에요. 실수 연산보다 정밀도는 떨어지지만 속도가 훨씬 빠르거든요.

또한 160×100이라는 극도로 작은 해상도 덕분에 쏴야 하는 레이의 수도 160개뿐이라, 한 프레임의 연산량이 현실적인 범위 안에 들어올 수 있었어요. 흑백 디스플레이라서 색상 처리도 필요 없고, 대신 거리에 따른 밝기 차이로 깊이감을 표현하는 방식을 쓴 것으로 보여요.

이런 프로젝트가 왜 의미가 있을까?

"계산기에서 3D를 돌려서 뭐 하나?"라고 생각할 수 있는데, 이런 프로젝트의 진짜 가치는 극한의 제약 속에서의 문제 해결 능력에 있어요. 현대 개발 환경에서는 메모리와 CPU를 넉넉하게 쓸 수 있지만, 임베디드 시스템, IoT 디바이스, 게임 엔진 최적화 같은 분야에서는 리소스 제한이 여전히 중요한 화두거든요.

고정소수점 연산, 룩업 테이블을 활용한 삼각함수 계산, 메모리 최소화를 위한 데이터 구조 설계 같은 기법들은 게임 개발이나 임베디드 프로그래밍에서 지금도 쓰이는 핵심 기술이에요. 특히 한국에서 반도체와 IoT 산업이 성장하면서, 저사양 환경에서의 최적화 역량이 점점 더 가치 있어지고 있죠.

레트로 컴퓨팅 프로젝트를 통해 이런 로우레벨 기법을 재미있게 배울 수 있다는 것도 큰 장점이에요. 추상화 계층에 가려져서 평소에는 생각하지 않는 "컴퓨터가 실제로 어떻게 그림을 그리는지"를 직접 체험할 수 있으니까요.

한줄 정리

12MHz 프로세서와 160×100 흑백 화면이라는 극한의 환경에서 높이맵 3D 렌더링을 구현한 이 프로젝트는, 제약이 창의성을 만든다는 걸 보여주는 멋진 사례예요.

여러분은 리소스 제약이 극심한 환경에서 개발해본 경험이 있으신가요? 혹시 계산기 프로그래밍을 해보신 분이 계시다면 경험을 공유해주세요!


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.