# Most efficient way to place many points in a BufferGeometry – all at once or staggered?

**URL:** <https://discourse.threejs.org/t/most-efficient-way-to-place-many-points-in-a-buffergeometry-all-at-once-or-staggered/2159>\
**Category:** Questions\
**Tags:** buffergeometry\
**Created:** [March 17, 2018, 10:35pm UTC](https://discourse.threejs.org/t/most-efficient-way-to-place-many-points-in-a-buffergeometry-all-at-once-or-staggered/2159 "2018-03-17T22:35:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Acccent](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/acccent/32/1267_2.png) [@Acccent](https://discourse.threejs.org/u/Acccent)\
**Post date:** [March 17, 2018, 10:35pm UTC](https://discourse.threejs.org/t/most-efficient-way-to-place-many-points-in-a-buffergeometry-all-at-once-or-staggered/2159/1 "2018-03-17T22:35:24Z")

</div>

Hi everyone 🙂

So, I realised thanks to the answers in my previous thread that I need to create a BufferGeometry with a lot of points and then just increase the draw range if I want to make points appear progressively. That’s all good.

Now I’m wondering, should I place all of them initially or should I position them progressively as I need more?

To give you some context, the geometry is a large star field that takes up the whole screen, and doesn’t scale with the window (so if you have a tiny window you’ll only see a tiny portion of it).  
I’m wondering if I should create all of it on initialisation or use a window resize event to know when more of the stars become visible and position them at that moment.

I guess you should also phrase it this way: is a geometry with 10,000 vertices equivalent to one that’s only 100 vertices, performance-wise, if only 100 are visible in both cases?

This is probably a noobish question and I might have misunderstood some core concepts, sorry about that – bear with me as I understand more of how three.js works 😊

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [March 18, 2018, 11:22am UTC](https://discourse.threejs.org/t/most-efficient-way-to-place-many-points-in-a-buffergeometry-all-at-once-or-staggered/2159/2 "2018-03-18T11:22:27Z")

</div>

> [@Acccent](#):
>
> Now I’m wondering, should I place all of them initially or should I position them progressively as I need more?

It does not matter what kind of data are in your buffer. The same amount of memory is allocated either way. You can easily check this by creating a typed array with a particular size. The respective buffer is completely initialized with default values (e.g. zeros). The `drawRange` determines how much of this data are actually processed by the WebGL graphics pipeline.

---

<div class="post-metadata">

**Author:** ![Acccent](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/acccent/32/1267_2.png) [@Acccent](https://discourse.threejs.org/u/Acccent)\
**Post date:** [March 18, 2018, 3:55pm UTC](https://discourse.threejs.org/t/most-efficient-way-to-place-many-points-in-a-buffergeometry-all-at-once-or-staggered/2159/3 "2018-03-18T15:55:50Z")

</div>

Ah, right. I guess that means I’ll have to rewrite stuff… 😭

Oh well – I’ll probably end up with a leaner solution. Thanks!
