The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск PortableGL 0.100, реализации OpenGL 3 на языке Си

05.03.2026 18:14 (MSK)

Доступен выпуск проекта PortableGL 0.100, развивающего программную реализацию графического API OpenGL 3.x, написанную целиком на языке Си. Теоретически PortableGL может быть использован в любых приложениях, принимающих текстуру или фреймбуфер в качестве входных данных. Код оформлен в виде одного заголовочного файла и распространяется под лицензией MIT.

Проектом определены такие цели, как переносимость, соответствие API OpenGL, простота использования, простой код и высокая производительность. Из областей применения упоминаются обучение концепциям построения графических API, использование для работы с 3D-графикой на системах без GPU и интеграция поддержи OpenGL в специфичные операционные системы, для которых не перенесён пакет Mesa3D. Из готовых проектов, использующих PortableGL, отмечается порт Minecraft-подобной игры Craft.

В новой версии продолжено наращивание функций и возможностей OpenGL: Реализованы OpenGL-функции для работы с параметрами текстур, а также GLSL-функции texelFetch[1-3]D(). Добавлена поддержка выбора пиксельного формата на этапе компиляции и использования любых 32- и 16-разрядных форматов цветовых буферов. Реализованы форматы PGL_D24S8 и PGL_D16. Добавлена возможность задания предопределённой конфигурации памяти.

  1. Главная ссылка к новости (https://github.com/rswinkle/Po...)
  2. OpenNews: Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си
  3. OpenNews: Проект Mesa заменил OpenGL-драйвер Nouveau на Zink для новых GPU NVIDIA
  4. OpenNews: Релиз Mesa 26.0, свободной реализации OpenGL и Vulkan
  5. OpenNews: Релиз PoCL 6.0 с независимой реализацией стандарта OpenCL
  6. OpenNews: Для Mesa предложен драйвер cluda, позволяющий реализовать OpenCL поверх NVIDIA CUDA
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64925-portablegl
Ключевые слова: portablegl, opengl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:30, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    ИИ разобрал все видео карты, но пека-бояре не сдавались.
     
  • 1.2, Аноним (2), 18:39, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    > Теоретически...

    В теории, между практикой и теорией разницы нет, на практике - есть

     
     
  • 2.5, Аноним (5), 19:38, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Практически, с учетом того, что это программная реализация - там будет 1-3 FPS от силы.
     
     
  • 3.18, Аноним (18), 22:04, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что случилось с современными компьютерами, если в прошлом веке 3D-квака на порядки слабом железе была куда быстрее заявленных тобой 1-3 FPS?
     
     
  • 4.24, Аноним (24), 23:37, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Что случилось с современными компьютерами, если в прошлом веке 3D-квака на порядки слабом железе была куда быстрее заявленных тобой 1-3 FPS?

    Случилось 32-бит на пиксель, шейдеры, тени в реальном времени, десятки тысяч полигонов и тьма прочих вещей, которых в твоей Кваке в середине 90х не было и в помине.

     
     
  • 5.28, Аноним (28), 01:08, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В кваку до сих пор все играют, а в твои "тьма прочих вещей" 1-3 FPS - только ты и твой
     
     
  • 6.37, Аноним (37), 07:27, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >В кваку до сих пор все играют

    Как и во вторых героев.

     
     
  • 7.46, Аноним (46), 09:46, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А в третью не играют, ибо она требует богомерзкий DirectX 6. Только software, только хардкор!
     
  • 6.43, Аноним (46), 09:39, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В кваку до сих пор все играют

    Ага, прямо все. И причем в софтверную реализацию под DOS, а не OpenGL порты. 😂 Господи, ну и копиум.

    Как вообще это все относится к техническому обсуждению?

     
     
  • 7.56, Аноним (-), 11:35, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Играют и в софтверную, но какова сложность тех движов? Уже Quake III сказал софту «адью» по понятным причинам. Да даже вторую кваку взять, где software и hardware по сути два разных движка.
     
  • 4.36, Смузихлеб забывший пароль (?), 04:08, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там и разрешение другое было и целая куча разных нюансов
     
  • 4.47, Аноним (47), 10:04, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Что случилось с современными компьютерами, если в прошлом веке 3D-квака

    А ты можешь это сам проверить в своей 3D-кваке "что случилось". Запускаешь ванильный Quake под DOS(box), выбираешь в настройках разрешение, близкое к твоему FullHD (да, в оригинальной кваке так можно прямо не выходя из игры) и наслаждаешься теми самым "куда более быстрым чем 1-3 FPS" фреймрейтом.

    Расскажешь потом, какой там был фреймрейт и температура в квартире от надрывающегося CPU, лол.

     
     
  • 5.50, premium user (?), 10:26, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В крузис играли уже на серверном многоядернике, так что мимо)
     
  • 4.48, Аноним (-), 10:05, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Можно было и в прошлом веке запустить кваку с софотвым OpenGL и преисполниться.
     

  • 1.3, Аноним (3), 19:37, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    для экрана оригинального Nokia 3310 - норм
     
     
  • 2.16, Аноним (16), 21:51, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Это каких, например?

    эльбрус например

     

  • 1.4, Аноним (5), 19:37, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > программную реализацию
    > высокая производительность

    Абсолютно ваимоисключающие понятия.

    > Из областей применения упоминаются обучение концепциям построения графических API,

    А на нормальном OpenGL это типа делать нельзя?

    > использование для работы с 3D-графикой на системах без GPU

    Это каких, например?

     
     
  • 2.6, Аноним (6), 20:07, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Это каких, например?

    это для запуска doom на кофеварках

     
  • 2.7, Аноним (7), 20:14, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Абсолютно ваимоисключающие понятия.

    а чтоб было не ваимоисключающие понятия, то как надо? Чтоб OpenGL был прям на кристале процессора выжжен? А непрограммная реализация это тогда как? Все что выполняется процессором/чипом - это всё программные реализации потому что это программы. Даже FPGA и ASIC выполняют внезапно программы, хоть часто и одну единственную.

     
     
  • 3.9, Аноним (24), 20:49, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а чтоб было не ваимоисключающие понятия, то как надо?

    Надо не совмещать "программная реализация" и "производительность".

    > Чтоб OpenGL был прям на кристале процессора выжжен?

    Ты вообще в курсе, что OpenGL - это только API?

    > А непрограммная реализация это тогда как?

    Аппаратная.

    > Все что выполняется процессором/чипом - это всё программные реализации потому что это программы

    Хватить чушь собачью нести. Термин "апаратная реализация" и не подразумевает вынос 100% кода на сторону железа. Ну или иди покажи мне, с помощью какой "программы" GPU, например, перемножает матрицы.

     
     
  • 4.23, Аноним (18), 22:33, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > покажи мне, с помощью какой "программы" GPU, например, перемножает матрицы.

    Пункты для первичного ознакомления:
    - шейдеры GPU;
    - команда сложения векторов;
    - команда скалярного произведения векторов;
    ...

     
     
  • 5.25, Аноним (24), 23:39, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> покажи мне, с помощью какой "программы" GPU, например, перемножает матрицы.
    > команда сложения векторов;
    > команда скалярного произведения векторов;

    Чувак, ты в курсе, что сложение и произведение не внутри шейдеров происходит, а на железе?

     
     
  • 6.34, Аноним (28), 01:23, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чувих, ты в курсе, что внутри CPU - тоже железо?
     
  • 6.35, Аноним (28), 01:25, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > сложение и произведение не внутри шейдеров происходит, а на железе?

    Осознай, что в CPU тоже есть железо, выполняющее сложение и произведение. Никто по битам софтово алгоритм умножения не делает уже где-то со времён первых калькуляторов.

     
     
  • 7.44, Аноним (46), 09:43, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Осознай, что в CPU тоже есть железо, выполняющее сложение и произведение

    Покажи мне, с помощью какой инструкции железо CPU выполняет билинейную интерполяцию (которая в GPU используется для сглаживания текстур).

    > Никто по битам софтово алгоритм умножения не делает уже где-то со времён первых калькуляторов.

    Oh my sween summer child... Ну да, не побитово, а группками по 4-8 float. И то - если ситуация/алгоритм позволяют.

     
  • 3.10, Аноним (10), 21:01, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Все что выполняется процессором/чипом - это всё программные реализации потому что это программы

    Нет, потому что операции (вроде преобразования матриц на том же GPU или операций аппаратныз тензоров) выполняются именно отдельными блоками железки и никак не программируются. В этом как бы вся суть отличия CPU от тех же ASICов.

    Если бы все было "программой", то это был бы обычный CPU общего назначения и никакого ускорения ты бы не получил.

     
     
  • 4.12, Аноним (7), 21:18, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь понял, спасибо
     
     
  • 5.21, Аноним (18), 22:26, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь понял, спасибо

    Как любят спрашивать преподаватели: "Что ты понял?". Если понял, то объясни, чем отличается dp4 (GPU) от dpps (CPU).

     
     
  • 6.27, Аноним (24), 23:46, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если понял, то объясни, чем отличается dp4 (GPU) от dpps (CPU).

    Тем, что на CPU они выполняются последовательно, а на GPU - параллально для тысяч пикселей за шаг.

    Или ты сейчас начнешь срывать покровы с GPU?

     
     
  • 7.29, Аноним (28), 01:13, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты, наверно, не заметил, что чуть выше чел заявил "и никак не программируются". Так что - да, придётся для тебя сорвать покровы: GPU - программируются. И ещё -ядер в CPU и юнитов внутри каждого ядра сейчас - далеко не по 1 шт.
     
     
  • 8.45, Аноним (46), 09:45, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, и он при этом прямо говорил, что речь идет о вещах, вынесенных на сторону же... текст свёрнут, показать
     
  • 7.30, Аноним (28), 01:15, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > на CPU они выполняются последовательно

    Заявление сильное, но устарело где-то чуть после 80386.

     
  • 4.19, Аноним (18), 22:10, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > на том же GPU ... выполняются именно отдельными блоками железки и никак не программируются

    Чем отличается, например, скалярное произведение векторов на CPU и GPU? Ну, кроме опкода? Ты же понимаешь, что никакого аппаратного входа для векторов на видюхе нету, а с некоторых давних пор фикс-конвейера на видюхах уже нету?

     
     
  • 5.20, Аноним (18), 22:24, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    P.S. Дам хинто: посмотри на команды dp4 и dpps
     
  • 5.26, Аноним (24), 23:43, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> на том же GPU ... выполняются именно отдельными блоками железки и никак не программируются
    > Чем отличается, например, скалярное произведение векторов на CPU и GPU? Ну, кроме опкода?

    Я не совсем понимаю, к чему твой вопрос в контексте обсуждаемой темы.

     
     
  • 6.31, Аноним (28), 01:18, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не совсем понимаю

    Как любили спрашивать в Бабилон-5: "Кто ты? Чего ты хочешь?". После ответа на эти вопросы ты начнёшь понимать.

     
  • 6.33, Аноним (28), 01:21, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я не совсем понимаю

    Это сразу понятно, что надо подтянуть базу, чтобы понимать.

     
     
  • 7.42, Аноним (46), 09:37, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Чем отличается, например, скалярное произведение векторов на CPU и GPU?
    > Это сразу понятно, что надо подтянуть базу, чтобы понимать.

    Когда подтянешь, расскажи мне, как там на CPU выглядит железный аналог clamp/mad_sat (загнать вектор в диапазон 0-1) или банальный lerp(x, y) (используется для билинейной интерполяции текстур).

     
     
  • 8.62, premium user (?), 20:35, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В simd есть, ты не знал Самый маленький армовый 128 битный simd 16 x 8бит пиксе... текст свёрнут, показать
     

  • 1.8, Аноним (8), 20:24, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Непонятно, кому это нужно. Для реального обучения 3д графики есть вулкан, на который похож и Metal и DirectX 12, и есть разные обвязки для упрощения экспериментов с вулканом - например, screen13. Для шейдеров есть shadertoy. Для познания архитектуры рендерилок есть ИИ, который любые концепции тебе расскажет и ответит на все вопросы.
     
     
  • 2.13, funny.falcon (?), 21:22, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Надо Тем, кто хочет посмотреть, как это СДЕЛАНО, а не как использовать.
     
     
  • 3.17, Аноним (24), 22:03, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Надо Тем, кто хочет посмотреть, как это СДЕЛАНО

    Реализация сабжа не имеет мало общего с тем, как это сделано на реальных GPU.

     
     
  • 4.53, funny.falcon (?), 11:20, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вряд ли математика отличается. Математика будет одинаковой и в софтваре, и в GPU. Могут быть по другому организован порядок вычислений и распараллеливание, но формулы те же самые.
     
  • 3.39, Аноним (39), 07:46, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что сделано? OpenGL? Если кому-то хочется понять как огл работает под капотом, я б рекомендовал взять vulkan и научиться использовать его. Как работает ogl станет очевидно до уровня, что даже в код будет лень заглядывать, чтобы узнать детали. А если тебе интересно как GPU работает, то лучше поискать статеек описывающих как работают GPU, чем читать код реализации ogl.

    А, или ты про алгоритмы прячущиеся за "векторной 3d графикой"? Тут я могу порекомендовать "The Black Book" Michael Abrash, она и алгоритмы объясняет и в исторический контекст укладывает, и заодно снабжает анекдотами о том, как Кармак квейк выпиливал.

     
     
  • 4.55, funny.falcon (?), 11:23, 06/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я про алгоритмы, а не про использование.
     

  • 1.14, Аноним (14), 21:27, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С наращиванием функционала библиотека превратится в самй обычный движ опенгл.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру