LINUX.ORG.RU

История изменений

Исправление robus, (текущая версия) :

Отдельные примитивные блоки это возможно, но могут быть с производительностью проблемы в случае неоптимальной реализации.

Уже начались. При рендеринге всего лишь 2 359 296 блоков (6x1x6 чанков, каждый чанк 64x16x64 блоков) фреймтайм растёт безмерно (60, а то и 70 мс). По этому и затык.

Нужны либо блоки крупного размера (что для ландшафта терпимо)

Блок и так всего в 64 раза (в 4 раза по каждой из осей) меньше, чем в minetest. Если делать совсем кубач, будет грустно.

либо динамически пересчитывать повреждённые меши

Не. Тесселяция и динамическая геометрия у меня на десерт.

У тебя есть преимущество, так как можешь своё двигло как угодно для этого гнуть.

Вот и гну. Поддержку instanced rendering туда затолкал, а оно всё равно тормозит (шевелится уже гораздо бодрее, но всё равно неприемлемо).

Эх! Видимо придётся делать отсечение невидимой геометрии, при разрушении блока обновлять видимость соседних, пересчитывать UBO всех затронутых чанков — так тормозить будет хотя бы не постоянно.

Исходная версия robus, :

Отдельные примитивные блоки это возможно, но могут быть с производительностью проблемы в случае неоптимальной реализации.

Уже начались. При рендеринге всего лишь 2359296 блоков (6x1x6 чанков, каждый чанк 64x16x64 блоков) фреймтайм растёт безмерно (60, а то и 70 мс). По этому и затык.

Нужны либо блоки крупного размера (что для ландшафта терпимо)

Блок и так всего в 64 раза (в 4 раза по каждой из осей) меньше, чем в minetest. Если делать совсем кубач, будет грустно.

либо динамически пересчитывать повреждённые меши

Не. Тесселяция и динамическая геометрия у меня на десерт.

У тебя есть преимущество, так как можешь своё двигло как угодно для этого гнуть.

Вот и гну. Поддержку instanced rendering туда затолкал, а оно всё равно тормозит (шевелится уже гораздо бодрее, но всё равно неприемлемо).

Эх! Видимо придётся делать отсечение невидимой геометрии, при разрушении блока обновлять видимость соседних, пересчитывать UBO всех затронутых чанков — так тормозить будет хотя бы не постоянно.