Size: a a a

2020 March 08

L

Lain-dono in ГОРИ
Aleksey Muravev
Код чище и проще будет
Мой псевдокод на этой задаче будет не слишком сильно отличаться от реальности.
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Да и быстрее это
Правда заметить это можно будет только в бенчах.
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Код чище и проще будет
Алсо можно сделать чтоб Context::draw_vbo занимался чем-то вроде батчинга. Так что это просто другая архитектура получается.
источник

L

Lain-dono in ГОРИ
Но пф, в случае современного API (не OpenGL) это практически тем же самым будет. Ибо draw_vbo по факту заполняет буфер команд.
источник

AM

Aleksey Muravev in ГОРИ
Lain-dono
Правда заметить это можно будет только в бенчах.
Ты как ecs адепт, должен топить за это)
источник

AM

Aleksey Muravev in ГОРИ
Lain-dono
Но пф, в случае современного API (не OpenGL) это практически тем же самым будет. Ибо draw_vbo по факту заполняет буфер команд.
Смотря, что в драйвере понаписали
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Ты как ecs адепт, должен топить за это)
Тот код, который я показал - это dod в конце концов.
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Ты как ecs адепт, должен топить за это)
Каждой задаче свой инструмент
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Смотря, что в драйвере понаписали
Это тоже верно.
источник

AM

Aleksey Muravev in ГОРИ
Lain-dono
Тот код, который я показал - это dod в конце концов.
Не совсем. За
if(drawable.Intersect(blabla)
{
drawable->draw();
}
DOD адепты бьют
источник

AM

Aleksey Muravev in ГОРИ
Строим список прошедших проверку, потом рисуем. Стандартный и проверенный временем подход.
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Не совсем. За
if(drawable.Intersect(blabla)
{
drawable->draw();
}
DOD адепты бьют
Ну я могу заменить имя draw_vbo на push_vbo, если тебя название смущает.
источник

AM

Aleksey Muravev in ГОРИ
Да и Drawable не должен ничего знать о каллинге
источник

AM

Aleksey Muravev in ГОРИ
Lain-dono
Ну я могу заменить имя draw_vbo на push_vbo, если тебя название смущает.
Не в этом дело
источник

L

Lain-dono in ГОРИ
Aleksey Muravev
Да и Drawable не должен ничего знать о каллинге
В моём варианте вообще нет Drawable или подобного. Это именно что тупой ручной код. Так не всегда правильно делать, но тупой код - тоже не всегда плохо.
источник

L

Lain-dono in ГОРИ
Во
источник

L

Lain-dono in ГОРИ
VBO - это тупо id на видимокарте или типа того
источник

AM

Aleksey Muravev in ГОРИ
Lain-dono
В моём варианте вообще нет Drawable или подобного. Это именно что тупой ручной код. Так не всегда правильно делать, но тупой код - тоже не всегда плохо.
if viewport.contains(bounds)
Вот в этом месте ботлнек
источник

AM

Aleksey Muravev in ГОРИ
составляем список vbo, затем проходим по нему и просто context.draw_vbo
источник

AM

Aleksey Muravev in ГОРИ
И обязанности разделили и бранчинг оптимизировали
источник