Страница 1 из 3

The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 05:17
gnoblin

Re: The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 08:27
Neodrop
Ты бы объяснил, что это и на кой ляд надо? :-?

Re: The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 12:44
Paul Siberdt
Эт любовь всей моей жизни... на Юневской Вики есть пара алгоритмов реализайции метаболлов. Как жаль, что личных мозгов не хватает на подобную математику... Неужели, тут кому-та эта тема близка? O:-)

А зачем это надо? Ну, например, для построения органических поверхностей, создания террейнов с лабиринтами пещер, добавления разрушаемости объемов а-ля RedFaction, формирования сеттинга микромира, объемных спецэффектов без файтингов и пересечений ... да и просто метаболлы очень эффектно смотрятся.

Re: The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 13:42
Neodrop
Сдаётся мне, что это очень накладно. :-?

Re: The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 15:48
Tolking
Метаболы - очень кастомная вещь ИХМО. Воксельная графика (опять же ИХМО) перспективнее. Незнаю почему со времен Каманча никто идею так и не развил...

Re: The Marching Cubes

СообщениеДобавлено: 11 янв 2010, 22:10
Neodrop
Ну почему же, развивают. НО на хардварном уровне. Воксельная графика рано или поздно сменит текущую.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 02:27
bwolf88
Короче, я этот алгоритм осилил, точнее почти осилил, осталось чуть-чуть дописать функцию подстановки правильного набора треуголов (блока) @-). Почти тоже самое что и 2Д тайлинг, только с 3-ей координатой и вариантов блоков больше. Самое долгое парился с таблицей треугольников, не мог понять с какой стороны ее прикручивать и с понимаем что такое IsoLevel, который для сохранения полученной сетки противопоказан (получается слишком много данных). А так оказалось что все намного проще.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 08:37
Syberex
Повезло тебе, что патент на этот алгоритм уже кончился :D

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 16:26
bwolf88
Syberex писал(а):Повезло тебе, что патент на этот алгоритм уже кончился :D


По идее это 3Д тайлинг и до него можно самому дойти, не используя стороннюю литературу. Единственное, что у меня осталось от MC - это набор треугольников.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 19:13
bwolf88
Плюс в традиционном алгоритме есть набор EdgeTables - ребер куба, но я сколько голову ломал, так и не понял нафига нужны эти лишние 12 вычислений (по битовой маске), если в наборе треугольников и так прописаны какие ребра нужно использовать. Один раз прописал где находится каждое ребро и вычисляй. И у меня все же по логике больше похоже именно на тайлинг, поскольку я выбираю нужный вариант исходя из наличия соседних кубов, а не какого то непонятного ISOLevel.

Единственное, сейчас остался косяк, что остаются незаполненные участки на углах +/-2 по каждой из координат, при редактировании, но это опять же больше правильный алгоритм тайлинга (получается что у меня идет просчет только непоредственных соседей и нужно еще добавить на 1 ряд дальше). Если заранее их выставить, то все правильно рисуется.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 21:45
Diab10
bwolf88 писал(а):Плюс в традиционном алгоритме есть набор EdgeTables - ребер куба, но я сколько голову ломал, так и не понял нафига нужны эти лишние 12 вычислений (по битовой маске), если в наборе треугольников и так прописаны какие ребра нужно использовать. Один раз прописал где находится каждое ребро и вычисляй. И у меня все же по логике больше похоже именно на тайлинг, поскольку я выбираю нужный вариант исходя из наличия соседних кубов, а не какого то непонятного ISOLevel.

Единственное, сейчас остался косяк, что остаются незаполненные участки на углах +/-2 по каждой из координат, при редактировании, но это опять же больше правильный алгоритм тайлинга (получается что у меня идет просчет только непоредственных соседей и нужно еще добавить на 1 ряд дальше). Если заранее их выставить, то все правильно рисуется.


Расскажите, что подразумевается под тайлингом? :) Тайлинг текстуры знаю, а тут это что значит?

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 22:17
bwolf88
Тоже самое, только в 3Д. Если взять к примеру стандартный тайлинг земли текстурой - получим 16 различных вариантов тайлов - 14 со скошенными углами и 2 полный/пустой. (пример как в MapEditor что я пилил). Тут та же схема только в объеме, то есть идет отрисовка куба со скошенными углами. У куба может отсутствовать 1, 2 или 3 угла, и вариантов 254 - скошенных и 2 полный/пустой (оба не отрисовываются).Отличие MC от простого 3Д тайлинга - минимально-полная фигура (ромб в объеме, не куб) рисуется не одной ячейкой, а составляется из 4-х, в каждой из которых рисуется одна сторона, но суть та же - зато уже сразу продумана схема отсечения невидимых граней :). И еще нет вариантов с 90 градусными углами, то есть остроугольный куб не отрисовать, собственно поэтому Иенс (разраб BlockScape) отказался в свое время от этого алгоритма.

Что мне пока остается непонятно как такие треугольники текстурить. Допустим с Marching Squares все легко - отрисовываем нужный куб в единичном масштабе и присваиваем те же координаты UV развертке. В 3Д я пока не понял как перенести это на текстуру, чтобы получилось красиво, хотя если честно я пока вообще без развертки делал, может все окажется просто :D.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 22:24
Diab10
bwolf88 писал(а):Тоже самое, только в 3Д. Если взять к примеру стандартный тайлинг земли текстурой - получим 16 различных вариантов тайлов - 14 со скошенными углами и 2 полный/пустой. (пример как в MapEditor что я пилил). Тут та же схема только в объеме, то есть идет отрисовка куба со скошенными углами. У куба может отсутствовать 1, 2 или 3 угла, и вариантов 254 - скошенных и 2 полный/пустой (оба не отрисовываются). Единственное отличие MC от простого 3Д тайлинга - минимально-полная фигура (ромб в объеме, не куб) рисуется не одной ячейкой, а составляется из 4-х, в каждой из которых рисуется одна сторона, но суть та же - зато уже сразу продумана схема отсечения невидимых граней :).

Что мне пока остается непонятно как такие треугольники текстурить. Допустим с Marching Squares все легко - отрисовываем нужный куб в единичном масштабе и присваиваем те же координаты UV развертке. В 3Д я пока не понял как перенести это на текстуру, чтобы получилось красиво, хотя если честно я пока вообще без развертки делал, может все окажется просто :D.

Спасибо, но всё равно не понял :D
Тайлинг текстуры - это просто копирование её по всей плоскости меша :)

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 22:29
bwolf88
Тайлинг куба - это копирование кубов по всему пространству. Майнкрафт по сути - некрасивый вид ручного тайлинга - ставим куб - рисуем воксель (пиксель в 2Д). Алгоримт MC - это красивый автотайлинг пространства.
Если делать автотайлинг земли в 2Д - то придется использовать 16 вариантов (минимум) тайлов.
Пример подробного объяснения http://www.gamedev.ru/code/articles/?id=4208

Тут тоже самое только 256 вариантов для пространства.

Re: The Marching Cubes

СообщениеДобавлено: 21 окт 2014, 22:44
Diab10
bwolf88 писал(а):Тайлинг куба - это копирование кубов по всему пространству. Майнкрафт по сути - некрасивый вид ручного тайлинга - ставим куб - рисуем воксель (пиксель в 2Д). Алгоримт MC - это красивый автотайлинг пространства.
Если делать автотайлинг земли в 2Д - то придется использовать 16 вариантов (минимум) тайлов.
Пример подробного объяснения http://www.gamedev.ru/code/articles/?id=4208

Тут тоже самое только 256 вариантов для пространства.


Понял, спс :)