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 обязательно


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

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

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

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

     

  • 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 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а чтоб было не ваимоисключающие понятия, то как надо?

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

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

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

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

    Аппаратная.

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

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

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

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

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

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

     
  • 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?

     
  • 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? Ну, кроме опкода?

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

     

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

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

     

  • 1.11, Аноним (11), 21:13, 05/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Переписыватели на Раст, вам работёнку подкинули.
     
     
  • 2.15, Аноним (15), 21:28, 05/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нейросети подкинь работёнку, чего как маленький?
     
     
  • 3.22, Аноним (18), 22:29, 05/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

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

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



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

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