42Tokyo1の課題の一つ。レイキャスティング2を利用した3D空間レンダリング。
以下のような2次元のマップから3次元空間をレンダリングする。
R 1920 1080
NO ./path_to_the_north_texture
SO ./path_to_the_sorth_texture
WE ./path_to_the_west_texture
EA ./path_to_the_east_texture
S ./path_to_the_sprite_texture
F 220,100,0
C 225,30,0
111111
100101
102001
1100N1
111111
- R :レンダリングサイズ
- NO:北側の壁のテクスチャ
- SO:南側の壁のテクスチャ
- WE:西側の壁のテクスチャ
- EA:東側の壁のテクスチャ
- S :マップ内のオブジェクトのテクスチャ
- F :床の色(RGB)
- C :天井の色(RGB)
- マップ
- 0:何もない空間
- 1:壁
- 2:オブジェクト
- N,S,E,W:プレイヤーのスタート位置とスポーンの際の方向(それぞれNorth,South,East, Westのこと)
※上記のフォーマットに従っていない場合はError\n
を出力。
- 左右の矢印キーで、迷路を左右に見ることができる。
- W、A、S、および D キーを使用して、迷路内で視点を移動できる。
- ESCでウィンドウを閉じる。
- 実行時に--saveオプションを付けると最初のレンダリングイメージを bmp フォーマットで保存できる。
$ git clone https://github.com/RIshimoto/cub3D
$ cd cub3D
$ make
$ ./cub3D Correct/(任意のcubファイル).cub
xubuntu.-.Oracle.VM.VirtualBox.2021-08-19.20-40-07.mp4
cub3D_demo_2.mp4
※このデモではオブジェクトとして、かわいいイルカ(友人提供)の画像を用いています。
Ubuntu 18.04.4 LTS
https://github.com/RIshimoto/cub3D-input_file_tester