Войти
ПрограммированиеФорумВеб

WebGL2 Рисование точки при клике мыши

#0
13:10, 19 окт 2019

Всем привет.
Помогите пожалуйста.
Мне нужно нарисовать точку при клике мышки.

Пример: https://jsfiddle.net/g7jt6c3a/
Тут все работает как нужно, точка рисуется. Я создаю новый буфер на каждый кадр.

Как мне не создавать новый буфер каждый кадр, а при клике добавить в него новые вершины. Как я понимаю мне нужно это делать с помощью bufferSubData ?!
Пытался сделать так: https://jsfiddle.net/yt0dx6gb/4/

Помогите пожалуйста мне добавить новую точку в буфер.
Большое всем спасибо!

#1
6:16, 20 окт 2019

Ты добавляешь в массив vertices ещё три значения к тем 9-ти, в итоге переполнение vbo.
Вот так работает:

  //vertices.push(x,y,0);
  vertices[0] = x;
  vertices[1] = y;
  vertices[2] = 0;
#2
6:21, 20 окт 2019

Так мне и нужно добавлять новые точки, чтобы рисовались новые точки.
А так получается я перезаписываю первую точку.

#3
6:23, 20 окт 2019

Значит создавай массив большей длины заранее.

#4
6:25, 20 окт 2019

А увеличить его ни как нельзя? Изначально если не известно сколько будет точек, то рано или поздно будет опять ошибка.

#5
6:31, 20 окт 2019

Ну сколько этих точек будет? Буфера, например, на мегабайт не хватит? Может проще вообще в текстуру рисовать?

ПрограммированиеФорумВеб

Тема в архиве.