
terminal-3d-graphics는 Haskell로 만든 3D 엔진으로, 터미널에 장면을 그린다. 키보드로 세계를 돌아다닐 수 있으며 Linux와 Windows에서 작동한다. 제작자는 이 엔진을 라이브러리로도 제공해 사용자가 직접 3D 세계를 만들 수 있다고 설명한다.
ANSI 트루컬러와 반 블록 문자(▀)를 사용해 문자 칸 하나에 위아래로 픽셀 두 개를 표시한다. 포털을 통한 재귀 시점, 후처리 선택, 슈퍼샘플링 안티앨리어싱을 지원하며 여러 데모 세계와 화면 크기 조절 기능도 제공한다. 이동은 키를 입력한 뒤 엔터를 눌러 조작한다. 프로그램에서 번역을 선택할 수 있고, 자동 빌드 파이프라인은 x64 Linux와 Windows용 버전을 만든다.
포털 데모 이미지, 체스 데모 이미지, 무지개 데모 이미지를 확인할 수 있다.
Cabal로 데모를 빌드하고 실행하려면 다음 명령을 사용한다.
cabal build all
cabal run t3d
인터프리터로 실행하는 방법은 다음과 같다.
ghci -isrc -iapp -package parallel -package bytestring -package transformers -package array -package deepseq -package comonad -package process app/Main.hs
:main
라이브러리로 사용하려면 프로젝트의 your-project.cabal에 의존성을 추가한다.
build-depends: terminal-3d-graphics
Haskell 소스에서 가져오기와 간단한 사용 예시는 다음과 같다.
import Terminal3D
import Control.Monad.Trans.State (evalStateT)
main :: IO ()
main = do
tex <- readBMP "myTexture.bmp"
let tris = cubeFormer (texWallFormer tex)
lights = [Ray (Vec3 0.5 1 0.5), Ambient 0.3]
world = World (map (bakeLight lights) tris) Nothing
evalStateT (loop world) def
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요