みなつ@プチコン

BASICでゲームが作れるWiiU/3DS用ソフト「プチコン」のブログです(*´▽`*)

3Dまっぷ v1.31

f:id:tksm372:20180206010718p:plain

公開キー【N34444J3】(2017年2月5日公開)

  • 幅1ドットのスプライトをスクリーンの横幅(400ドット)分だけ用意して、カメラから壁までの距離を計算して壁の高さを割れば、3D表示できちゃうんじゃない!?と思って、おもむろにつくり始めたのがコレでした。
  • 後から調べたら、Ray Caster(視点から光を投げて、壁に当たるまでの距離を計算して描画する)という、すでに存在する手法でした(´・ω・`)
  • カメラから壁までの距離を、いかに少ない計算量で求めるかがポイントでした。
  • 「視線と壁の交点を1点計算したら、壁の横幅分は視線を再走査せずにスキップする」という改良を行ったところ、かなり速くなったのですが、これだと「見つけた壁より手前に覆いかぶさって壁」もスキップしてしまう場合があるという問題があり、結局「一旦左から右へ走査し、その後右から左にも走査しなおす」という2パスにすることで、解決しました。
  • 地面は、前回の「地面を表示するプログラム」の手法でやっていますが、ここが負荷のかなりの部分を占めるため、次のバージョン(未公開のv1.40)で
    1.ミップマップのように遠景ほど解像度を荒くする
    2.壁に隠れている部分は描画しない
    という改良を行った結果、なんとかゲームに使える速度になり、後のつるつるバルーンを作るきっかけになりました(*´▽`*)

 


3DS/WiiU プチコン3号/BIG 用デモ「3DMAP v1.31」