Как объединить модели в urho3d?
От: Sheridan Россия  
Дата: 27.11.18 20:09
Оценка:
Надеюсь есть тут ктото, умеющий в urho3d...

Решил поразвлечься, русую манкрафт-подобный мир. Хочу блоки размещать не отдельными объектами, а объединять в один по принципу "есть сосед — объединяемся с ним". Находить соседа я уже умею, осталось как всегда за малым — объединить меши и по возможности материалы.
Подскажите хотя бы с чего начать
Matrix has you...
Re: Как объединить модели в urho3d?
От: neFormal Россия  
Дата: 27.11.18 20:24
Оценка: 8 (1)
Здравствуйте, Sheridan, Вы писали:

S>Решил поразвлечься, русую манкрафт-подобный мир. Хочу блоки размещать не отдельными объектами, а объединять в один по принципу "есть сосед — объединяемся с ним". Находить соседа я уже умею, осталось как всегда за малым — объединить меши и по возможности материалы.

S>Подскажите хотя бы с чего начать

за ухо не скажу, но везде вроде принципы одинаковы:
— меш полностью пересоздавать на основе старого, это уже новый набор вершин. координаты, куда добавлять кубик, ты знаешь, дальше всё просто;
— материалы не объединить, но вот если упихаешь все текстуры в одну, то можешь применить потом её к результирующему мешу. надо только UV не протерять при спекании.
...coding for chaos...
Re[2]: Как объединить модели в urho3d?
От: Sheridan Россия  
Дата: 27.11.18 21:11
Оценка:
Здравствуйте, neFormal, Вы писали:

S>>Подскажите хотя бы с чего начать


F>за ухо не скажу, но везде вроде принципы одинаковы:

F>- меш полностью пересоздавать на основе старого, это уже новый набор вершин. координаты, куда добавлять кубик, ты знаешь, дальше всё просто;
Чувствуется зубодробительная задачка. Блоки то не только кубы... Впрочем, тут всё ясно вроде, звучит просто.

F>- материалы не объединить, но вот если упихаешь все текстуры в одну, то можешь применить потом её к результирующему мешу. надо только UV не протерять при спекании.

uv это нормали? Я их из модели достану. Точнее, из геометрии модели. А вот с материалами грустно... Хотя в ухе как я понял модель может иметь много геометрий и материал можно прикрутить к каждой. Попробую сначала сюда...
С текстурами в принципе тоже должно быть просто. Я и сейчас генерирую из трёх текстур одну для куба об pnglib, могу и больше. Только вот чую это тормозить будет заметно. Хотя вот только вроде как раскопал вариант укладки текстуры на грань по отдельности... Туда тоже покурю.
Matrix has you...
Re[3]: Как объединить модели в urho3d?
От: CEMb  
Дата: 28.11.18 03:45
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>>>Подскажите хотя бы с чего начать


F>>за ухо не скажу, но везде вроде принципы одинаковы:

F>>- меш полностью пересоздавать на основе старого, это уже новый набор вершин. координаты, куда добавлять кубик, ты знаешь, дальше всё просто;
S>Чувствуется зубодробительная задачка. Блоки то не только кубы... Впрочем, тут всё ясно вроде, звучит просто.
Урхо работает с мешем как с единым целым. В принципе, можно низкоуровневыми приседаниями вытащить геометрию из модели, но лучше взять другой движок, если цель — играться с геометрией. Урхо под геометрию не заточено.

F>>- материалы не объединить, но вот если упихаешь все текстуры в одну, то можешь применить потом её к результирующему мешу. надо только UV не протерять при спекании.

S>uv это нормали? Я их из модели достану. Точнее, из геометрии модели. А вот с материалами грустно... Хотя в ухе как я понял модель может иметь много геометрий и материал можно прикрутить к каждой. Попробую сначала сюда...
S>С текстурами в принципе тоже должно быть просто. Я и сейчас генерирую из трёх текстур одну для куба об pnglib, могу и больше. Только вот чую это тормозить будет заметно. Хотя вот только вроде как раскопал вариант укладки текстуры на грань по отдельности... Туда тоже покурю.
UV — это текстурные координаты. Материалы, вроде бы, насколько я понимаю, привязываются к плоскостям.
Если я правильно понял, то цель стоит, при объединении вырезать лишние плоскости, а не прям объединение в одну плоскость двух стыкующихся плоскостей? (да и не возможно это в общем случае, к примеру, взять три кубика и сложить буквой Г, боковые грани будут состоять из 6 треугольников)
Таким образом, имхо, надо просто вырезать "ненужные" грани. 2 кубика — 10 граней, 2 соприкасающиеся выкидываем. 3 кубика — 14 граней, и так далее.

Есть вообще готовая штука на c++, minetest называется
Re[3]: Как объединить модели в urho3d?
От: neFormal Россия  
Дата: 28.11.18 07:24
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Чувствуется зубодробительная задачка. Блоки то не только кубы...


значит, у тебя не майнкрафт, а левая фигня.

F>>- материалы не объединить, но вот если упихаешь все текстуры в одну, то можешь применить потом её к результирующему мешу. надо только UV не протерять при спекании.

S>uv это нормали? Я их из модели достану.

текстурные координаты. достанешь.

S>А вот с материалами грустно... Хотя в ухе как я понял модель может иметь много геометрий и материал можно прикрутить к каждой. Попробую сначала сюда...

S>С текстурами в принципе тоже должно быть просто. Я и сейчас генерирую из трёх текстур одну для куба об pnglib, могу и больше. Только вот чую это тормозить будет заметно. Хотя вот только вроде как раскопал вариант укладки текстуры на грань по отдельности... Туда тоже покурю.

ты можешь сделать один атлас для всех кубиков, а кубикам просто выставить UV с этого атласа.
генерить это на лету нездорово.

материал же — это просто настройки для шейдера, который рисует меш.
после спекания у тебя должна быть одна мешка, один материал с одной текстурой, на которой все нужные картинки. и UV меша ссылаются на правильные координаты в текстуре.
...coding for chaos...
Re[4]: Как объединить модели в urho3d?
От: CEMb  
Дата: 28.11.18 08:12
Оценка: 3 (1)
Здравствуйте, neFormal, Вы писали:

S>>Чувствуется зубодробительная задачка. Блоки то не только кубы...


F>значит, у тебя не майнкрафт, а левая фигня.


Имелось ввиду, скорее всего: не только кубы, но и параллелепипеды Забор, например.

Btw, в майнкампфе вода течёт не квадратами, а более "сглаженно", вопрос, а почему бы такой эффект не делать с другими поверхностями ради большей "реалистичности"?

Btw-2, в Урхе есть StaticModelGroup, который позволяет навешивать один меш+материал на несколько нод. Т.е. это как раз, когда надо создать хучу объектов одинакового вида, и чтоб это всё не тормозило. При этом все эти ноды можно крутить и скейлить.

Btw-3, можно создавать кубы из 6-ти плоскостей, не связанных вершинами и рёбрами. Тогда задача по объединению, вроде, упрощается но тогда на один куб надо 6 нод
Re[5]: Как объединить модели в urho3d?
От: neFormal Россия  
Дата: 28.11.18 08:30
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Btw-2, в Урхе есть StaticModelGroup, который позволяет навешивать один меш+материал на несколько нод. Т.е. это как раз, когда надо создать хучу объектов одинакового вида, и чтоб это всё не тормозило. При этом все эти ноды можно крутить и скейлить.


они же рисоваться всё равно будут по-отдельности, т.к. разные меши. значит на большом числе должно тормозить.
...coding for chaos...
Re[6]: Как объединить модели в urho3d?
От: Sheridan Россия  
Дата: 28.11.18 08:58
Оценка:
Здравствуйте, neFormal, Вы писали:


F>они же рисоваться всё равно будут по-отдельности, т.к. разные меши. значит на большом числе должно тормозить.

Да, так и есть. Я это уже пробовал.
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.