Добрый день!
Я хочу попробовать MDI + gpu culling через compute shader, но все примеры довольно простые (opengl superbible 6th). Я пока не нашел примеров, когда используется геометрия как с SHORT, так и с INT типами EBO одновременно.
Как правильно делать - использовать INT всегда, или делать 2 вызова glMultiDrawElementsIndirect для short и для int?
Simi4
ну бей геометрию по шортам
Simi4
Юзай инты и не парься.
Вот тут пишут https://community.khronos.org/t/unsigned-short-int-performance/58451
старое конечно, но я думаю в этом плане ничего не меняется. Другое дело когда тебе надо экономить память (на смартфоне например).
А так для шорт и инт надо делать отдельные вызовы MDI
RmzVoid
Да, с интами в принципе нормально, спасибо.
Simi4
ну да, сейчас же не время GeForce3 :)
Еще такой вопрос появился: будет ли прирост скорости от использования инстанцирования в glMultiDrawElementsIndirectCountARB?
struct DrawElementsIndirectCommand
{
uint count;
uint instanceCount; // <---
...
};
И работает ли вообще инстанцирование в glMultiDrawElementsIndirectCountARB?
У меня не получилось заставить работать/отладить это.
Для glMultiDrawElementsIndirect оно работало, gl_BaseInstanceARB в шейдере был корректный,
а для glMultiDrawElementsIndirectCountARB gl_BaseInstanceARB как будто не инкрементится.
Simi4
> Я хочу попробовать MDI + gpu culling через compute shader
ну и как результат ?
innuendo
> ну и как результат ?
На RTX2060 меня устраивает, а на GTX 660Ti, конечно, не так круто.
Думаю после добавления LOD'ов должно стать получше.
На AMD(Vega 3) столкнулся с данным багом: https://community.amd.com/thread/248051 - при использовании ~460 резидентных текстур крашится контекст.
Simi4
> На RTX2060 меня устраивает, а на GTX 660Ti, конечно, не так круто
в цифрах плиз
innuendo
> в цифрах плиз
frustum culling 7666 матриц: 0.03ms
drawing after culling(8203 drawcommands): 6.44ms
Simi4
> frustum culling
ааааа, я думал про occlusion culling :)