Size: a a a

Rust GameDev — русскоговорящее сообщество

2021 January 02

A

Adevald in Rust GameDev — русскоговорящее сообщество
Приведу пример: в майнкрафте есть меши блоков из шести полигонов. Но когда они ставятся рядом друг с другом, они превращаются в многоуголтную фигуру. Тобишь весь чанк, или даже вся карта, точно не помню, это один огромный меш
источник

A

Adevald in Rust GameDev — русскоговорящее сообщество
Дроуколл оптимизэйшон
источник

A

Adevald in Rust GameDev — русскоговорящее сообщество
As I understand
источник

A

Adevald in Rust GameDev — русскоговорящее сообщество
По хорошему мне бы тоже слепливать кубоидные меши в один
источник

AL

Andrey @ozkriff Lesn... in Rust GameDev — русскоговорящее сообщество
тут точно имеется популяция матерых кубоделов, сейчас они на тебя налетят
источник

A

Adevald in Rust GameDev — русскоговорящее сообщество
Да я надеюсь что налетят, хоть полезное что то узнаю
источник

AT

Alexander Tchitchigi... in Rust GameDev — русскоговорящее сообщество
Звучит слегка как constructive solid geometry. 🤔
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Adevald
Насколько я знаю по сути меш, это облака вертексов, но я не зеаю как лги образуют связи, у каждого вертекса есть ссылка на 2 соседних чтобы сделать треугольник?
Это указано в Graphics Pipeline. Чаще всего используется TriangleList. То есть каждая тройка индексов (вершин, если индексы не используются) образуют треугольник.
То есть индексы 0,1,2 - первый треугольник, 3,4,5 - второй треугольник
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Есть другие варианты. Например TriangleStrip. Тогда 0,1,2 - первый треугольник, а 1,2,3 - второй треугольник. Подходит например для ландшафта
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Есть еще TriangleFan, но это вообще дичь, я не знаю как этим пользоваться. Треугольники образуются так 0,1,2; 0,2,3; 0,4,5; 0,5,6 и так далее. До опционального индекса PRIMITVE_STOP если GraphicsPipeline сконфигурирован с его поддержкой. И если индекс N = !0, то треугльники дальше пойдет N+1, N+2, N+3; N+1, N+3, N+3 ну вы поняли
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Я не кубодел, но интересовался вопросом
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Если тебе нужно просто объединить 2 меша в 1, то нужно к значениям индекса второго количество вершин в первом и банально последовательно сунуть в память вершинки и индексы
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Если тебе нужно оптимизировать, то тут уже все очень специфично
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Если ты точно знаешь, что какие-то полигоны надо убрать, то все довольно просто
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
В том же майнкрафте задача немного иная. Там меш для чанка генерируется сразу оптимизированный
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Не из готовых мешей куба, они тривиальны. Генерируется на лету
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
По очень простому алгоритму. Если сторона куба соприкасается с прозрачным кубом - в список вершин и индексов добавляются соответствующие этой стороне куба значения
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Воздух тоже как бы куб. Прозрачный.
источник

AL

Andrey @ozkriff Lesn... in Rust GameDev — русскоговорящее сообщество
https://veloren.net/devblog-100 💯й девлог. С личнотой всякой
источник

AI

Alex Ilizarov in Rust GameDev — русскоговорящее сообщество
ну все, тебя с новой аватаркой теперь не узнать
источник