Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Графический движок (render master) (3 стр)

Графический движок (render master) (3 стр)

Advanced: Тема повышенной сложности или важная.
Страницы: 1 2 3 4 Следующая »
g-contПостоялецwww13 июня 201814:58#30
Чтобы код на асме был всегда быстрее любого другого кода, он должен начинаться с комментария
;дух машины, мой бубен сильнее твоей тупости
DelfigamerПостоялецwww13 июня 201816:03#31
g-cont
Компиляторы тем и хороши, что бубен уже встроен в оптимизатор.

Правка: 13 июня 2018 16:04

foxesПостоялецwww15 июня 201813:14#32
этот процесс чередуемости ручного и автоматического оптимизирования имеет некоторую N цикличность.

Правка: 15 июня 2018 13:19

k-paylПостоялецwww2 сен. 201820:56#33
Всем привет. За два месяца запилил базовые реализации низкоуровневых рендеров OpenGL 4.5 и DirectX 11. Было бы прикольно уметь переключать их в рантайме. В случае OpenGL отказался от uniform-ов и перешел на Uniform Buffer Object. Сейчас в планах заняться манипуляторами (перемещение, вращение), и сохранением/загрузкой сцены. Манипулятор перемещения уже просто рендится, но подвигать с помошью него объекты пока нельзя:) Было бы неплохо собрать под линукс, но за не именеем последнего пока не могу этого сделать. Ссылка на движок: https://github.com/fra-zz-mer/RenderMaster, Редактор: https://github.com/fra-zz-mer/RenderMasterEditor. Редактор сейчас выглядит вот так: ung | Графический движок (render master)
foxesПостоялецwww2 сен. 201821:01#34
k-payl
А как у тебя с языком шейдеров дела обстоят? они же между GL и DX не пробрасываются. Ручками?
Вижу, подмена через дефайны.

Правка: 2 сен. 2018 21:05

k-paylПостоялецwww2 сен. 201821:09#35
foxes
Пишу на неком среднем языке между glsl, hlsl. Дальше в файл инклудится файл с языком language_dx.h либо language_gl.h, движок выставляет некоторые внутренние дефайны и с помощью моего препроцессора все равзворачивается в нативный код (glsl, hlsl). Но сейчас мой перпроцессор довольно примитивный поэтому он до конца не разворачивает (в идеале должно быть так), поэтому окончательное препроцессирование происходит внутри компиляторов dx, opengl. Сейчас у меня есть один универсальный шедер которые умеет рендить все (геомтерию, стрелки, сетку): src\shaders\mesh_vertex.shader и src\shaders\mesh_fragment.shader

Правка: 2 сен. 2018 21:20

/A\Постоялецwww2 сен. 201821:37#36
foxes
> они же между GL и DX не пробрасываются.
доработав glslang можно конвертировать HLSL в GLSL и наоборот.
k-paylПостоялецwww2 сен. 201821:38#37
/A\
> glslang
не хочу зависеть от левых библиотек
foxesПостоялецwww2 сен. 201821:40#38
/A\
я бы маленький парсер написал с заменой ключевых слов на платформенные. По моему даже стандартный regexp с этим бы справился.

Правка: 2 сен. 2018 21:44

TheLightWayПостоялецwww2 сен. 201821:40#39
k-payl
> не хочу зависеть от левых библиотек
Она такая же левая как и сам OpenGL с Vulkan'ом.
Ghost DragonПостоялецwww2 сен. 201821:55#40
foxes
> я бы маленький парсер написал с заменой ключевых слов на платформенные. По
> моему даже стандартный regexp с этим бы справился.

Не очень бы справился — у HLSL/GLSL/CG есть мелкие но коварные различия в синтаксисе.
Самый рабочий вариант = выбираем HLSL в качестве базы, парсим и дальше из AST генерим что нужно (GLSL / MSL или ещё что).
На макросах можно жить какое-то время, но читать/писать такой "код" не очень приятно.

AndreyПостоялецwww2 сен. 201822:18#41
Ghost Dragon
> Самый рабочий вариант = выбираем HLSL в качестве базы, парсим и дальше из AST
> генерим что нужно (GLSL / MSL или ещё что).
> На макросах можно жить какое-то время, но читать/писать такой "код" не очень
> приятно.
Если есть поддержка SPIR-V  то генерить GLSL нету смысла.
innuendoПостоялецwww2 сен. 201822:35#42
действительно зачем нужен этот glsl :)
g-contПостоялецwww2 сен. 201822:56#43
k-payl
> Было бы прикольно уметь переключать их в рантайме
Почему люди упорно пишут что-то прикольное и никому не нужное. Видимо полезные вещи писать неприкольно совсем.
innuendoПостоялецwww2 сен. 201822:57#44
g-cont
> Почему люди упорно пишут что-то прикольное и никому не нужное. Видимо полезные
> вещи писать неприкольно совсем.

+100, зачем переключать в рантайме?

Страницы: 1 2 3 4 Следующая »

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

2001—2018 © GameDev.ru — Разработка игр