Kugelblitz

いつ何時誰の挑戦でも受ける!

今週の進捗

WebGLアプリですが、今週はつかれているのでメモです。

進捗

  • 影を出すようにした
  • 地図の表示
  • 地形の拡大(LOD)
  • 地形をPlaneBufferGeometryに変更してパフォーマンスアップ

影は結構苦労しましたね。ネット上のサンプルは、平行光源の位置が固定のものばかりなのですが、キャラクターの移動に合わせて、光源の位置を移動しなければならないのに、時間によって光源の角度が変わる仕様にしているので、単純にはいかなかったです。

PlaneBufferGeometryは結構効果大です。他のGeometryも、BufferGeometry化していきたいです。

今後の予定

  • マップに現在位置を表示
  • THREE.Raycasterでキャラクターのy座標を算出しているが、パフォーマンスが悪いので、別の方法に置き換える
  • 水面がちらつく問題の修正
  • 星空がちらつく問題の修正
  • キャラクターの初期表示位置を、水面じゃない場所にする
  • iOSデバイスで、しばらくするとキャラクターのモデル座標がおかしくなってしまう問題の修正

マップのイメージは左上が原点なのに対し、3D座標空間は左下(なんか変ないいかただな)が原点なので、そのあたりをきちんと考えてあげる必要があります。

水面がちらつく問題は、水面と地面の距離が近いので、ある程度距離があると、水面と地面のどちらが視点から近いのか、うまく判定できないからだと感がています。うーん。普通どうやってクリアしてるんだろ。

星空がちらつく問題ですが、地形のサイズを拡大したことに対して、単純に星空のスカイドームのサイズを拡大したら、ちらつくようになりました。これってなんでなんだろ。単純な解決策として、スカイドームのサイズをもとに戻して、スカイドーム位置を、キャラクターの位置に合わせて移動するようにすれば解決するのではないかと思います。

まぁあとは、そもそもどんなゲームにするか決めなきゃいけないですね。現状、3D空間をただウロウロするだけなので。

Pocket

他の記事