59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 726
|
||||||
1 | ||||||
О буфер-объекте, glGenBuffers()23.11.2015, 16:57. Показов 5510. Ответов 43
Метки нет (Все метки)
Здравстуйте, в книге по OpenGL о функции glGenBuffers() сказано что:
Функция
По край не мере я так перевел. Мне понятно что buffers хранит массив имен буферов, но я не могу понять что из себя представляет эта n? Может мне кто нибудь растолковать подробнее об n?
0
|
23.11.2015, 16:57 | |
Ответы с готовыми решениями:
43
Exception в glGenBuffers В какой библиотеке функция glGenbuffers? Prototype Объект в объекте в объекте Записать символ в буфер клавиатуры, проверить буфер на наличие в нём символов, и вывести данный символ |
23.11.2015, 19:21 | 2 | ||||||||||
Сообщение было отмечено koker007 как решение
Решение
n - кол-во буферов которые могут тебе потребоваться. Лучше брать с запасом, так как вызов этой ф-ии не очень быстрый. Мне даже манагер пришлось написать, что бы пореже эту ф-ию дёргать.
Например:
1
|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 726
|
|
23.11.2015, 21:36 [ТС] | 3 |
То есть когда заходим в цикл рисования картинки нужно чтобы при рисовании объектов, буфер-объекты уже были сгенерированы и при перерисовке картинки данные в буфер-объекте просто сменялись.
Правильно понял?
0
|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 726
|
|
24.11.2015, 13:58 [ТС] | 5 |
Во всяком случае спасибо на первый вопрос ответ уже получил)
0
|
24.11.2015, 14:11 | 6 |
koker007, в отрисовке не должно быть ничего лишнего кроме отрисовки. Все загрузки/выгрузки, генерации/удаления должны быть вне цикла отрисовки. Иначе цикл отрисовки должен называться как-то по другому и по сути уже не является только циклом отрисовки, что скажется на скорости. Если у вас анимация - подготовьте заранее все её кадры, а в самой отрисоке в зависимоти от номера кадра подставляете те или иные уже загруженные ID.
1
|
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
|
|
24.11.2015, 20:24 | 7 |
0
|
27 / 27 / 3
Регистрация: 03.04.2015
Сообщений: 105
|
|
24.11.2015, 22:33 | 9 |
Скелетная, частицы с коллизией, как вариант.
0
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,117
|
|
09.03.2017, 16:53 | 10 |
Прчему-то у меня при вызове glGenBuffers( 1, @Buffer ); выдаёт ошибку "Проект project1 вызвал класс исключения External: SIGSEGV". Такое впечатление, что в OpenGL32.dll вообще такой процедуры нет. Как можно это исправить?
0
|
09.03.2017, 19:41 | 11 | |||||||||||||||
Скорее всего, вы не выделили место для Buffer.
Добавлено через 1 минуту Нагуглил несколько сетуаций, когда появится ошибка SIGSEGV
1
|
652 / 233 / 46
Регистрация: 24.01.2013
Сообщений: 716
|
|
09.03.2017, 19:44 | 12 |
shyub, https://wiki.delphigl.com/inde... nGL.pas/en
или самому получать адрес функции из драйвера видеокарты через wglGetProcAddress().
1
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,117
|
||||||
10.03.2017, 07:26 | 13 | |||||
Нет, не выделили. Инициализацию делаю по статье http://vbomesh.blogspot.com/20... pengl.html вот так (использую Лазарус и компонент TOpenGLControl):
0
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,117
|
|
10.03.2017, 13:45 | 15 |
Спасибо за помощь, заработало. В самом начале VBOInit добавил проверку версии S:=glGetString(GL_VERSION); и на основании версии запускаю соответствующую процедуру Load_GL_VERSION_x_x();, где версия OpenGL должна быть не ниже 2.0 и не выше установленной на компьютере.
И второе. Запускаю с задержкой после открытия формы.
0
|
11.03.2017, 09:11 | 16 |
Выведите текст версии на экран. Соберите exe и прикрепите в архиве к сообщению. Я попробую у себя на ноуте. Дело в том, что на ноуте две видеокарты: дискретная и интегрированная. Система Optimus запускает exe с интегрированной. Есть способы как из программы сообщить, что нужно запускать с дискретной. Я знаю такой способ если использовать OpenGL на фреймворке .NET. из Visual Studio.
0
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,117
|
|
12.03.2017, 11:03 | 17 |
Посмотрите OpenGLBuffeVBO.rar
1
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,117
|
|
12.03.2017, 11:50 | 19 |
Что запускается с карты - хорошо, но не нравится, что на 4-х ядерном компе загружает одно ядро на 50%, а второе на 75%. Одну проблему решить удалось, появилась вторая.
Добавлено через 28 минут Вообще, может так и должно быть при использовании OpenGL?
0
|
12.03.2017, 16:51 | 20 |
Я сделал точно такую же программу с VBO на C# и WPF. Посмотрите сколько она у вас тратит. И запускается ли вообще.
0
|
12.03.2017, 16:51 | |
12.03.2017, 16:51 | |
Помогаю со студенческими работами здесь
20
Объект в объекте Мусор в объекте Остановка на объекте Поиск в объекте Объект в объекте Thread в объекте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |