Help us understand the problem. What is going on with this article?

BufferGeometry 等でインスタンス化されたオブジェクトを大量に「広範囲に」表示する際の罠

More than 3 years have passed since last update.

GitHubのパーティクルサンプルを、ちょっとだけ修正&公開しました

https://github.com/adrs2002/THREE.JfParticle

動くサンプルはコッチ↓
http://www001.upp.so-net.ne.jp/adrs2002/JenParticle/splashtest.html

前回からの修正は、たった1行。
294行目に、 

 mesh.frustumCulled = false;

を追加しただけです。

こいつが何なのかというと、「視錐台カリングを有効にするかどうか」という設定で、じゃあ視錐台カリングってなんなのさというと、「カメラから見えているかどうかを判断する。カメラから外れていたら、描画対象(DrawMesh)から外す」という、一見して便利なものです。

本来であれば「Meshを作成した後に当たり判定を作成(↓のメソッド)」し、

 geometry.computeBoundingBox();

んで、それが表示範囲の判定にも使われるのが正しいのですが、
ゲームに使うようなパーティクルとか、毎回位置が変わるのが常なわけで、その度にコレすんの?重くない?ということで、そもそもの「表示判断を無効にし、とりあえず表示させる。見えてるか見えてないかは知らん!」ということを行うための設定が、上記の frustumCulled = false になります(デフォルトは true になってる)

これで、原点(0,0,0 = メッシュの中央) が表示対象から外れていても表示されるようになりましたとさ。

めでたしめでたし。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away