Size: a a a

pro.graphon (and gamedev)

2020 October 22

TG

Timur Gagiev in pro.graphon (and gamedev)
я не понимаю это аргумент какой-то или что?
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
так легче мешить
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
что тебе мешает сделать его не фиксированным?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
пффф
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
Timur Gagiev
что тебе мешает сделать его не фиксированным?
тогда дай мне алгорим мешинга с нефиксированными тайлами
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
чанк 16x16x16 вокселей, должен быть по факту одним мешем в простом случае
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
- размеры тайлов кратны друг другу, т.е. например минимальный 16, далее 32, 48, 64 и т.д.
- собираем атлас со всеми тайлами
- собираем 1D текстуру с скейлами и позицией тайлов в атласе
- в вершинах храним номер тайла
- при отрисовке геометрии, по номеру тайла вычитываем его скейл
- по скейлу получаем реальный размер тайла в текселях, делим на размер атласа
- полученные текстурные координаты передаём в фрагментный шейдер, где всё благополучно накладывается
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
в итоге рисуешь весь мир за один draw call
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
а если воксели в скриптах?)
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
и мне надо как-то потом слать чанки через интернеты от сервера к клиенту
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
сформулируй задачу нормально )
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
а то щас начнётся, а что если у меня гоночный симулятор про гусей в космосе
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
Timur Gagiev
а то щас начнётся, а что если у меня гоночный симулятор про гусей в космосе
К этому всё и шло))
источник

K

Kirill in pro.graphon (and gamedev)
disba1ancer
давно могли бы в винду из коробки завезти фичу с автопереключением по словарю
Мешаться будет
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Timur Gagiev
а то щас начнётся, а что если у меня гоночный симулятор про гусей в космосе
Мешить асинхронно, хранить куски мира в больших кубах
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
Timur Gagiev
сформулируй задачу нормально )
Есть чанк 16х16х16, состоящий из восьмиразрядных целых чисел (Для простоты передачи через сеть).
Каждое значение является индексом в некоем массиве, содержащем инфу о вокселе (текстуры сторон, имя и так далее).
Каждый чанк по факту это отдельный меш, в который мы пробрасываем текстуру атласа.
Текстура атласа генерится из тех текстур, которые указаны в массиве информации о вокселях, индексы идут в него же для последующего мешинга.
Каждый воксель может иметь шесть разных текстур любого, но квадратного и кратного 16 размера. Основная проблема заключается в том, что нужен способ как-то подружить эти текстуры и натягивать их при помощи одних и тех же текстурных координат на воксель.
Я предложил решение, в котором этот атлас мы генерим при помощи кадрового буфера и VAO: биндим текстуру, бросаем матрицу в шейдер и рисуем один и тот же квад с разными текстурами по разным координатам, в конце концов получая адекватный атлас, в котором все тайлы одинакового размера. Копирование попиксельно здесь тоже может сработать, но нужен интерполятор, а его я тащить в код не хочу.
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
источник

uユ

und ユビキタス in pro.graphon (and gamedev)
размеры тайла определяются исходя из максимального размера текстуры из входного массива
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
интерполятор встроен же везде
источник