107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||||||||||||
1 | ||||||||||||||||
WebGL перемещение объекта, изменение вершин в VAO26.03.2019, 23:12. Показов 1877. Ответов 15
Метки нет (Все метки)
Всем добрый вечер. Можете подсказать, постараюсь как можно яснее описать свой вопрос.
Я рисую кубик, перемещаю его, например по оси z верх. Тут у меня сложностей нет, использую матрицу модели, передаю ее в шейдер как иниформу. Весь кубик перемещается вверх. Я захотел сделать перемещение не всего кубика, а поднять только одно его ребро, или изменить только 1 вершину. И не понимаю как это сделать.
Вот как мне сделать, что при клике на кнопку менялась только одна верщина.
Я пробовал при отрисовке кажого кадра заново создавать vao и vbo, работает, но производительность в таком случае падает просто ниже плинтуса. Можно ли как-то изменить vao? Пробовал смотреть через консоль, но все что получаю.
Заранее всем спасибо за помощь.
0
|
26.03.2019, 23:12 | |
Ответы с готовыми решениями:
15
WebGl 2.0 Vertex Array Object (VAO) Отрисовать 2й объект с другими индексами(2 объекта в одном VAO) Несколько vao в один vao Перемещение вершин на плоскости |
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 719
|
|
27.03.2019, 01:54 | 2 |
С bufferSubData() можно изменить только часть буфера, VAO при этом менять не надо.
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||
27.03.2019, 07:47 [ТС] | 3 | |||||
Спасибо, на днях почитаю что такое bufferSubData.
Добавлено через 5 часов 3 минуты Почитал про bufferSubData, вообще не понял как он работает. Пример кода:
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
27.03.2019, 08:30 | 4 |
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||
27.03.2019, 08:54 [ТС] | 5 | |||||
Верно ли я понимаю логику?
Чтобы во время отрисовки изменить аттрибуты (вершины), мне нужно:
0
|
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 719
|
|
27.03.2019, 10:50 | 6 |
0
|
27.03.2019, 15:51 | 8 |
SkyWeb,
https://www.khronos.org/regist... ubData.xml Там всего 4 параметра, два из них offset и size как раз задают смещение и размер в байтах. Как это правильно сделать на javaScript не знаю
0
|
27.03.2019, 16:02 | 9 | ||||||||||
WebGLRenderingContext.bufferSubData()
https://developer.mozilla.org/... ferSubData
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||
27.03.2019, 18:45 [ТС] | 10 | |||||
8Observer8, А Вас не затруднит пояснить что такое dstByteOffset, srcOffset, length.
И если возможно пару примеров этой строк, для замены только 1ого значения и например значений с 5 по 10. Сейчас я просто делаю
0
|
27.03.2019, 20:22 | 11 |
My Original Message in English
I do not understand what do you use: WebGL 1 or WebGL 2? It is WebGL 2. Did you read the documentation? https://developer.mozilla.org/... ferSubData WebGL 2 is analog of OpenGL 3 ES. You can read here in addition: http://docs.gl/es3/glBufferSubData It is WebGL 1. Translate Google Result: Я не понимаю, что вы используете: WebGL 1 или WebGL 2? Это WebGL 2. Вы читали документацию? https://developer.mozilla.org/... ferSubData WebGL 2 является аналогом OpenGL 3 ES. Вы можете прочитать здесь дополнительно: http://docs.gl/es3/glBufferSubData Это WebGL 1.
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||
27.03.2019, 20:27 [ТС] | 12 | |||||
WEBGL2 у меня. Я переводил страницу через ХРОМ, ни особо понятно что передавать, что за параметры.
offset Задает смещение в хранилище данных объекта буфера, где начнется замена данных, измеренное в байтах. size Определяет размер в байтах области хранилища данных, подлежащей замене. Мне нужно делать как-то так?
0
|
27.03.2019, 21:01 | 13 | |||||
TypedArray.BYTES_PER_ELEMENT
https://developer.mozilla.org/... ER_ELEMENT
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
||||||
27.03.2019, 21:49 [ТС] | 14 | |||||
8Observer8, Верно ли я понимаю.
Float32Array.BYTES_PER_ELEMENT - это размер байтов 1 ого элемента. И как мне это указать? Если нужно заменять с первого байта я так и указываю Float32Array.BYTES_PER_ELEMENT, если с 2 умножаю на 2, если с 3 умножаю на 3 и т.д.
0
|
28.03.2019, 11:07 | 15 | ||||||||||
Только я не уверен что
Как я понял это создаст новый массив из всех элементов, а нужно только 3 элемента 5,6 и 7
0
|
107 / 4 / 1
Регистрация: 04.04.2015
Сообщений: 119
|
|
28.03.2019, 11:09 [ТС] | 16 |
snake32, спасибо. Теперь вроде все понятно. Проверю на практике.
0
|
28.03.2019, 11:09 | |
28.03.2019, 11:09 | |
Помогаю со студенческими работами здесь
16
Перемещение прямоугольника с изменением положения его вершин Перемещение объекта Перемещение объекта Перемещение объекта Перемещение объекта Перемещение 2 d объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |