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

GPU 없이 3D를? 1993년 방식으로 그래픽 엔진 직접 만들어보기

Hacker News 원문 보기
GPU 없이 3D를? 1993년 방식으로 그래픽 엔진 직접 만들어보기

요즘 같은 시대에 왜 옛날 방식으로 그래픽을?

혹시 "둠(Doom)"이나 "퀘이크(Quake)" 같은 90년대 게임을 아세요? 지금이야 GPU(그래픽 카드)가 알아서 3D를 그려주지만, 1993년에는 그런 게 없었거든요. 그때 개발자들은 CPU만으로 화면의 픽셀 하나하나를 직접 계산해서 3D 화면을 만들어냈어요. 이걸 "소프트웨어 렌더링(software rendering)"이라고 불러요. 그래픽 카드한테 일을 맡기지 않고 프로그래머가 직접 다 계산한다는 뜻이에요.

이번에 소개할 글은 바로 그 1993년 감성으로, GPU를 전혀 쓰지 않고 3D 엔진을 처음부터 만들어가는 과정을 다룬 시리즈예요. "Catlantean"이라는 이름의 엔진인데요, 요즘처럼 OpenGL이나 Vulkan 같은 그래픽 API를 부르는 게 아니라, 화면 버퍼에 픽셀을 직접 찍는 방식이에요. 왜 굳이 이렇게 하느냐면, 사실 3D 그래픽이 "내부적으로 어떻게 동작하는지"를 가장 잘 배우는 방법이거든요.

핵심: 화면은 그냥 숫자 배열이에요

이게 뭐냐면, 우리가 보는 화면은 사실 거대한 숫자 배열일 뿐이에요. 가로 320, 세로 200짜리 화면이라면 64,000개의 픽셀이 있고, 각 픽셀은 색깔 값을 가져요. 소프트웨어 렌더링은 이 배열(프레임버퍼라고 불러요)을 매 프레임마다 우리가 직접 채우는 일이에요.

3D 물체를 그리려면 보통 이런 단계를 거쳐요. 먼저 3D 공간의 점(정점, vertex)들을 화면의 2D 좌표로 바꿔요. 이걸 "투영(projection)"이라고 하는데, 멀리 있는 건 작게, 가까운 건 크게 보이도록 원근감을 계산하는 거예요. 그다음엔 세 점으로 이루어진 삼각형 내부를 색으로 채우는 "래스터화(rasterization)"를 해요. 3D 모델은 전부 삼각형 수천 개로 쪼개져 있거든요. 마지막으로 어떤 면이 앞에 있고 뒤에 있는지를 판단해서 가려진 부분은 안 그리는 "깊이 테스트(depth test)"를 해요.

흥미로운 점은 옛날 방식에서는 소수점 연산(부동소수점)이 너무 느려서, 고정소수점(fixed-point) 연산을 많이 썼다는 거예요. 이게 뭐냐면, 3.14 같은 소수를 그냥 정수 314로 다루고 "나중에 100으로 나눈 셈 친다"는 식의 트릭이에요. 정수 연산이 훨씬 빨랐던 시절의 지혜죠. 또 매 픽셀마다 곱셈을 다시 하지 않고, 한 줄을 그릴 때 값을 조금씩 더해가는 "증분 계산" 같은 최적화도 등장해요.

업계 맥락에서 보면

요즘은 Unity나 Unreal Engine을 쓰면 이런 걸 전혀 몰라도 멋진 3D 게임을 만들 수 있어요. 그런데 그 엔진들도 결국 내부에서는 이 똑같은 원리로 동작하거든요. 다만 그 계산을 GPU가 병렬로 수백만 번 동시에 처리할 뿐이에요. 비슷한 결의 학습 프로젝트로는 "tiny renderer"나 "raytracing in one weekend" 같은 유명한 시리즈가 있어요. 이번 Catlantean 시리즈는 거기서 한발 더 나아가 "실제 게임처럼 동작하는 엔진"을 목표로 한다는 점이 특징이에요.

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

실무에서 소프트웨어 렌더러를 직접 만들 일은 거의 없어요. 하지만 게임 클라이언트 개발자나 그래픽 관련 직무를 노린다면, 이 원리를 이해하는 사람과 그냥 엔진 버튼만 누르는 사람의 실력 차이는 꽤 커요. 렌더링 파이프라인이 머릿속에 그려져 있으면 성능 문제가 생겼을 때 "아 여기서 정점이 너무 많아서 느린 거구나" 하고 바로 감이 오거든요. 주말 사이드 프로젝트로 작은 래스터라이저를 만들어보는 걸 강력 추천해요. C나 Rust로 시작하면 메모리와 성능 감각도 같이 길러져요.

마무리

결국 핵심은 이거예요. 3D 그래픽은 마법이 아니라, 화면이라는 숫자 배열을 똑똑하게 채우는 수학이라는 거죠. 옛날 방식을 따라 만들어보면 그 본질이 손에 잡혀요.

여러분은 어떠세요? 추상화된 엔진만 쓰는 게 편할까요, 아니면 한 번쯤은 바닥부터 만들어봐야 진짜 실력이 늘까요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

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

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

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

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

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

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

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

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