Страница 1 из 2

pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 01:04:54
TehnikHarlan
Доброго времени суток. Установил из Сетевого диспетчер пакетов "pl_OpenGL".

Пошлите меня куда то где можна почитать про работу с компонентами OpenGLPanel, OpenGLCanvas, OpenGL2DCanvas.
Раньше я работал с компонентом OpenGLControl что аналогичный OpenGLPanel, но есть маленькие нюансы.
Кроме того появились компоненты OpenGLCanvas, OpenGL2DCanvas. Наверно полезные и стоило бы про них узнать.
В examples котторые в папке с установленим Лазарусом примеры только о том же OpenGLControl.
На домашней странице https://bitbucket.org/saschawillems/dgl ... rc/master/ нету никакой информации или я ее не вижу.
Гугление ничего абсолютно не дает.

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 02:14:57
Alex2013
Без паники! Все есть !
[путь куда скачен пакет]\ct4laz\pl_examples

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 08:39:40
zub
pl это пилот логик?
Советую поискать оригинальный компонент с которого эти "красавчики" перебили шильдики на pl_ и использовать его

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 09:15:22
TehnikHarlan
Спасибо большое) Уже не пропаду)

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 09:32:33
Снег Север
zub писал(а):Советую поискать оригинальный компонент с которого эти "красавчики" перебили шильдики на pl_ и использовать его

Вам надо - вы и ищите. А у нас уже есть! :D

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 11:46:33
TehnikHarlan
Снег Север писал(а):
zub писал(а):Советую поискать оригинальный компонент с которого эти "красавчики" перебили шильдики на pl_ и использовать его

Вам надо - вы и ищите. А у нас уже есть! :D


Ну почему же, если есть чтото лучше почему бы и не пользоваться этим.

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 12:32:59
zub
TehnikHarlan
Тебе пудрят голову и впаривают суррогат. забей на pl
>>Ну почему же, если есть чтото лучше почему бы и не пользоваться этим.
надо пользоваться оригиналом. pl_OpenGL - это лазаревский OpenGL с перебитым копирайтом, рефакторингом и какимито рюшками, как впрочем большинство (всё?) от пилотлоджик

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 15:04:08
Снег Север
TehnikHarlan писал(а):Ну почему же, если есть чтото лучше почему бы и не пользоваться этим.

Оно не лучше, оно требует обработки напильником или вообще "ломом и какой-то матерью". А pl_компоненты работают немедленно. В Тифоне, разумеется.

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 15:07:24
TehnikHarlan
Извините, я собственно електронщик и пользуюсь в основном Лазарусом для визуализации показаний датчиков, комуникации по Ethernrt, USB, Com Port. Я не професионал в деле програмирования) Стараюсь упрощать себе работу с используя компонетти чтоб сильно не углублятся , посколько боюсь не осилю. Но есть ситуации когда надо понимать детально что как происходит. О pl и их работе я ниче не вкурсе. Когда вы говорите о оригинале, что вы собственно имеете ввиду?

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 16:03:35
Seenkao
TehnikHarlan, вам нужно определиться, что вы хотите от OpenGL. Если вы для общего пользования и/или для обучения. То большинство компонентов вам не нужно. Используйте напрямую lazOpenGLContext. И не заморачивайтесь дополнительными компонентами. Изучите OpenGL после этого уже смотрите, нужно вам что-то из компонентов или нет.

Есть много "готовых" библиотек и компонентов, которые не обязуют знать сам OpenGL и позволяют работать с 2D/3D графикой, не вдаваясь в OpenGL, но заставляя изучать именно эти библиотеки.

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 16:34:06
Снег Север
TehnikHarlan, если вам надо сделать визуализацию, то под лазарь есть порт знаменитой графической библиотеки GlScene -
http://glscene.sourceforge.net/wikka/
Идет кучей примеров на все случаи жизни. У вас там есть viewport - собственно показ изображения и компонент сцена, к которому вы цепляете всё, что хотите показать. Дополнительно - источник освещения сцены и камера, которая смотрит на сцену. Всё это нужно, в основном, если показывать трёхмерную картинку. Если только двумерную, то можно и попроще - например graphics32 -
https://github.com/graphics32/graphics32

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 17:44:09
TehnikHarlan
Огромное спасибо за ответы и советы!
Первый же ответ от Alex2013 мне сразу решил вопрос. Но если уж тут зашла такая дискуссия, то моя задача такая:
Получить от КМОП видеосенсора информацию о изображении в виде двухмерного масива байт, который несет данные о состояние субпикселей. Из этих субпикселей которые построены по схеме Байера собрать нормальное изображение и вывести на монитор. Видеосенсор может выдавать больше сотни кадров в секунду. Я же ограничен и могу выводить 50 кадров/с при разрешении 640х480, и 20 кадров/с при разрешении 1200х960. Это естественно зависит еще от процесора и видеокарти. Кроме того есть ограничение по каналу передачи но в него я еще не уперся.
Изображение
Вывожу изображение на OpenGLControl вот так:
Код: Выделить всё
            for j:= 0 to 959 do
             begin
              for i:= 0 to 1279 do
                begin
                 glColor3f((BYTE_FRAME[j-1,i-1])/255,
                           (BYTE_FRAME[j-1,i-1])/255,
                           (BYTE_FRAME[j-1,i-1])/255);
                 glVertex2f(-1+i/640,+1-j/480);
                end;
             end;
FormCam.OpenGLBox.SwapBuffers;

Если есть способ выводить изображение быстрее, и достичь частоты кадров приятной глазу на большых разрешениях можете подсказать какие библиотеки, компоненты использовать. Может стоить использовать другие среди, язики програмирования. Возможно заметный эффект даст использование видеокарт Quadro?

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 19:01:11
Seenkao
Данный способ вывода особенно медленный.
В данном случае проще перевести изображение в массив и массивом скинуть. А я так понимаю, что массив уже готов?

Если массив выложен чисто из кодов цвета, то надо задать ещё массив координат.

Рост "Суперкнига" стр. 567.

Есть вариант выкладывать как текстуру, но для этого надо перевести массив в текстуру. Думаю в данном варианте будет сложнее для понимания.

А тот код который вы привели, можно ускорить, развернув циклы. Хотя бы внутренние. Кода будет больше, но и работать на порядок быстрее будет.

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 16.02.2021 22:55:08
TehnikHarlan
Seenkao писал(а):Данный способ вывода особенно медленный.
В данном случае проще перевести изображение в массив и массивом скинуть. А я так понимаю, что массив уже готов?

Если массив выложен чисто из кодов цвета, то надо задать ещё массив координат.

Рост "Суперкнига" стр. 567.

Есть вариант выкладывать как текстуру, но для этого надо перевести массив в текстуру. Думаю в данном варианте будет сложнее для понимания.

А тот код который вы привели, можно ускорить, развернув циклы. Хотя бы внутренние. Кода будет больше, но и работать на порядок быстрее будет.

Спасибо, попробую!

Re: pl_OpenGL, OpenGLpanel... и.т.д

СообщениеДобавлено: 17.02.2021 02:56:58
Alex2013
Посмотри мой долгоиграющий проект "Цифровая оптика" (Одна из главных целей сделать софт для " народного ХолЛинза" )
http://www.freepascal.ru/forum/viewtopi ... =9&t=25002
Если заинтересует, можно будет объединить услиля .


+ Еще собираюсь сделать свой "ВиАр-Экран" а там как-раз нужно видео-поток на текстуру пускать ... Честно говоря пока что не очень себе представляю сам механизм повторной перезагрузки текстуры.