ПрограммированиеФорумГрафика

SGLib - графическая библиотека C/C++

Страницы: 1 2 3 4 Следующая »
#0
16:47, 4 ноя 2023

Хочу поделиться программной прослойкой SGLib.
Это графическая библиотека на базе D3D12 (пока что), предоставляющая интерфейс, похожий на D3D11, избавляет программиста от рутинного микроменеджмента и позволяет сфокусироваться на алгоритмах и применяемых технологиях.

Ссылка на github

Ключевые возможности:

  • Встроенный трекинг состояний ресурсов;
  • Встроенное распределение ресурсов и синхронизация кадров;
  • Поддержка сторонних инструментов (маркеры PIX, отчеты NVidia Aftermath);
  • Асинхронное планирование команд;
  • Поддержка мульти-очередей ГПУ (Асинк компьют/выделенная трансфер очередь и т.д.);
  • Поддержка возможностей современного оборудования (Трассировка лучей, мешлет шейдинг, VRS)
  • Текущая версия 0.0.8.0 (Альфа)

  • Возможность переопределения InputLayout непосредственно перед вызовами отрисовки (ISGCommandList::SetInputLayout);
  • Оптимизация и стабильность;
  • + Показать
    #1
    20:24, 4 ноя 2023

    А смысл прятать исходники? Таких оберток сотни.

    #2
    21:50, 4 ноя 2023

    Используй unique_ptr хотя бы, тебе не надоедает руками писать SG_RELEASE?
    Ну и обёртка далека от современного C++, InputLayout можно здорово завернуть используя шаблоны и специализацию, у а тебя обычный C с классами.

    #3
    23:57, 4 ноя 2023

    v1c
    > у а тебя обычный C с классами
    что в этом плохого?

    #4
    8:06, 5 ноя 2023

    luckyleo769
    Это либа только для с++ компиляции ?
    Или как dll ?
    И сколько весит метров dll ?

    #5
    13:10, 5 ноя 2023

    /A\
    > А смысл прятать исходники?
    А какой смысл их выкладывать?

    v1c
    > Используй unique_ptr хотя бы, тебе не надоедает руками писать SG_RELEASE?
    Умные указатели не помогут при освобождении, оно должно происходит в OnDestroy, а не в деструкторе. К тому же, в примерах показывается последовательность освобождения ресурсов.
    В примере MeshletRender есть ресурсы, обернутые в ComPtr.

    v1c
    > обёртка далека от современного C++
    > обычный C с классами
    Так и есть, это задел на универсальность. Библиотеку можно использовать и в C, и обернуть для других языков. Она не требует масштабной переделки проекта, если до этого использовался, например DX11/DX12.

    ronniko
    > Это либа только для с++ компиляции
    Это DLL. Плюс библиотеки импорта для удобства, можно и руками подключать.

    ronniko
    > И сколько весит метров dll ?
    Килобайты, это важно? :)

    #6
    13:28, 5 ноя 2023

    luckyleo769
    > А какой смысл их выкладывать?
    Чтоб доказать что у тебя лучше написано чем у сотни других реализаций

    #7
    13:51, 5 ноя 2023

    Я бы не стал пользоватся библиотекой без исходников от не пойми кого. Это же просто опасно.

    #8
    14:34, 5 ноя 2023

    /A\
    > Чтоб доказать что у тебя лучше написано
    В этом нет цели, цель в том, чтобы дать движкописателям удобный инструмент. Если у тебя есть потребность в таком инструменте и он подходит под задачи, ты просто пользуешься. Если не подходит, скорее всего, ты будешь искать что-то другое.

    MikeNew
    > от не пойми кого
    Ну тогда, будем знакомы LinkedIn

    MikeNew
    > Это же просто опасно
    Странно читать это в мире, где большинство пользуется пиратским софтом с торрентов. Fingercross и Windows Defender - наш выбор.

    atomic
    > Чтобы устранять фатальный недостаток.
    Какой?

    #9
    14:41, 5 ноя 2023

    luckyleo769
    > Если не подходит, скорее всего, ты будешь искать что-то другое.
    Ну я то могу и сам написать)
    А вот как проверить это "(thread-safe work with command lists, resource usage etc)" без исходников?

    #10
    16:33, 5 ноя 2023

    /A\
    > А вот как проверить
    Как и любую фичу из спецификации к любому ПО. Как проверить трассировку лучей в DX или Vulkan? Заюзать ее, в данном случае, распараллелить рендер.

    Еще чуть позже будет пример на эту тему.

    + Показать
    #11
    16:50, 5 ноя 2023

    luckyleo769
    Я все это спрашиваю не потому что хочу увидеть секретные исходники, а потому что в 99.9% таких либ есть куча ошибок и без исходников это очень сложно проверить и тем более исправить.
    К тому же сами валидации для API написаны не идеально, что-то не проверяют, а на что-то дают ложные срабатывания.
    Еще есть баги в драйверах, которые надо обходить, поэтому в популярных либах встречаются такие штуки, одиночному разработчику будет сложно искать такие баги, особенно если это проявляется у пользователей.

    Вот и вопрос как ты убедишь других пользоваться именно твоей либой.

    > в данном случае, распараллелить рендер.
    Я как-то нашел дедлок в проекте который 5 лет использовался, так что многопоточку таким способом не проверить.

    #12
    17:57, 5 ноя 2023

    luckyleo769
    > цель в том, чтобы дать движкописателям удобный инструмент
    движкописателям это вовсе не нужно. Как движкописатель вам сообщаю, что мне как инструмент нужны конвертеры мешей, картинок итп. Ещё движкописателям нужны туториалы - это образцы минимального кода без шаблонов, наследования, заумных показателей и прочей ++ ереси, реализующие какую-то технику, например зеркало, тень, вода, солнце, облака итп.

    #13
    19:24, 5 ноя 2023

    /A\
    > Я как-то нашел дедлок в проекте который 5 лет использовался, так что многопоточку таким способом не проверить.
    ... на баги - согласен, но открытые исходники здесь не помогут и миллиард юзеров просто читающих код тоже.
    Половина успеха борьбы с багами - репорты от пользователей, в данном случае от разрабов, вторая - разработчик с полным видением и пониманием проекта.
    Привлечение пользователей в разработку - это совершенно другого рода проекты, типа GNU.

    Открытость не влияет на качество, а закрытость не влияет на популярность.
    У меня встречный вопрос, ты смотрел примеры?

    iw4nna.rock
    > мне как инструмент нужны конвертеры мешей, картинок
    Это тулзы, никто не может знать лучше разработчика движка, что ему нужно.
    > реализующие какую-то технику, например зеркало, тень, вода, солнце, облака
    Если все это буду делать я, то и движкописателем буду я, а не вы. :)

    #14
    20:05, 5 ноя 2023

    luckyleo769
    > Открытость не влияет на качество, а закрытость не влияет на популярность.
    Для мелких проектов - влияет, вот UE мало кто весь расковыряет)

    > У меня встречный вопрос, ты смотрел примеры?
    Да. Они не показывают реальное использование. Где стриминг данных без блокировок и нестабильности фпс? Где многопоточка?
    Почему часто используется upload буфер, непонятно что там внутри: RAM или VRAM, если VRAM то ее всего 256Мб у меня на NV и ее легко переполнить, если RAM, то это нехорошо для производительности.

    Страницы: 1 2 3 4 Следующая »
    ПрограммированиеФорумГрафика

    Тема в архиве.