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

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

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 Следующая »
#30
14:58, 13 июня 2018

Чтобы код на асме был всегда быстрее любого другого кода, он должен начинаться с комментария
;дух машины, мой бубен сильнее твоей тупости


#31
(Правка: 16:04) 16:03, 13 июня 2018

g-cont
Компиляторы тем и хороши, что бубен уже встроен в оптимизатор.

#32
(Правка: 13:19) 13:14, 15 июня 2018

этот процесс чередуемости ручного и автоматического оптимизирования имеет некоторую N цикличность.

#33
20:56, 2 сен. 2018

Всем привет. За два месяца запилил базовые реализации низкоуровневых рендеров 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)

#34
(Правка: 21:05) 21:01, 2 сен. 2018

k-payl
А как у тебя с языком шейдеров дела обстоят? они же между GL и DX не пробрасываются. Ручками?
Вижу, подмена через дефайны.

#35
(Правка: 21:20) 21:09, 2 сен. 2018

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

#36
21:37, 2 сен. 2018

foxes
> они же между GL и DX не пробрасываются.
доработав glslang можно конвертировать HLSL в GLSL и наоборот.

#37
21:38, 2 сен. 2018

/A\
> glslang
не хочу зависеть от левых библиотек

#38
(Правка: 21:44) 21:40, 2 сен. 2018

/A\
я бы маленький парсер написал с заменой ключевых слов на платформенные. По моему даже стандартный regexp с этим бы справился.

#39
21:40, 2 сен. 2018

k-payl
> не хочу зависеть от левых библиотек
Она такая же левая как и сам OpenGL с Vulkan'ом.

#40
21:55, 2 сен. 2018

foxes
> я бы маленький парсер написал с заменой ключевых слов на платформенные. По
> моему даже стандартный regexp с этим бы справился.

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

#41
22:18, 2 сен. 2018

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

#42
22:35, 2 сен. 2018

действительно зачем нужен этот glsl :)

#43
22:56, 2 сен. 2018

k-payl
> Было бы прикольно уметь переключать их в рантайме
Почему люди упорно пишут что-то прикольное и никому не нужное. Видимо полезные вещи писать неприкольно совсем.

#44
22:57, 2 сен. 2018

g-cont
> Почему люди упорно пишут что-то прикольное и никому не нужное. Видимо полезные
> вещи писать неприкольно совсем.

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

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