コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
りょうたんぽ ◆GoCg6EMf7SSc
2020/8/18 15:07
情報交換
[SB4] 手前に表示するスプライトを選別する 3D
複雑でいいタイトルが思い浮かばないので本文で説明します

現在 Minecraft っぽいものを作ってます。
Finitiという3Dライブラリを利用していますが、レンダリング方法としてはP3Dのような三角形テクスチャのスプライトを表示するものです。昨日まではこの方法を使っていました。

別に思いついたのが、レイヤーを立方体状に配置し、ブロックの6面をそれぞれのレイヤー上に位置を計算して表示する方法です。こちらの方が粗いテクスチャを使わないでいいし、速いだろうということで試してみた結果が上記のスクリーショットです。レンガブロックのそれぞれの面が1つのスプライトとなっています。

位置計算には成功しましたが、それぞれのレイヤーのZ座標は独立しているため、面ごとに固定の順番で表示されてしまい、隠面消去ができていません。つまり、手前にあるのに、奥にあるオブジェクトに隠れてしまう現象が起こります。

そこで、かならず手前に表示させるスプライトをより上層のレイヤーに表示するようにしたいです。

レイヤーは8つしか使えないため、同じプログラムをサブプログラムとしても実行し、上のように手前にあるのに意図せず隠れるスプライトのみをサブプログラム側で表示させたいと思います。つまり「メイン側で表示するか、サブ側で表示するかを選択したい」というのが目的です。

ここで、サブ側で表示しないと隠れてしまうスプライトを判定する方法がなかなか出てこず、アイデアや方法がもしあれば教えていただきたいです。

ゲームの開始時にサブプログラムも自動起動する処理と、メイン・サブ間でのカメラ位置、ワールドの同期はすでにできています。

コメント

アバター
りょうたんぽ 2020/8/18 18:51 ◆GoCg6EMf7SSc
やはりサブはラグがあるなぁー

何かアイデアがあったらお願いします。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -