The Marching Cubes

Научился сам? Помоги начинающему.

The Marching Cubes

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

skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: The Marching Cubes

Сообщение Neodrop 11 янв 2010, 08:27

Ты бы объяснил, что это и на кой ляд надо? :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: The Marching Cubes

Сообщение Paul Siberdt 11 янв 2010, 12:44

Эт любовь всей моей жизни... на Юневской Вики есть пара алгоритмов реализайции метаболлов. Как жаль, что личных мозгов не хватает на подобную математику... Неужели, тут кому-та эта тема близка? O:-)

А зачем это надо? Ну, например, для построения органических поверхностей, создания террейнов с лабиринтами пещер, добавления разрушаемости объемов а-ля RedFaction, формирования сеттинга микромира, объемных спецэффектов без файтингов и пересечений ... да и просто метаболлы очень эффектно смотрятся.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: The Marching Cubes

Сообщение Neodrop 11 янв 2010, 13:42

Сдаётся мне, что это очень накладно. :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: The Marching Cubes

Сообщение Tolking 11 янв 2010, 15:48

Метаболы - очень кастомная вещь ИХМО. Воксельная графика (опять же ИХМО) перспективнее. Незнаю почему со времен Каманча никто идею так и не развил...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: The Marching Cubes

Сообщение Neodrop 11 янв 2010, 22:10

Ну почему же, развивают. НО на хардварном уровне. Воксельная графика рано или поздно сменит текущую.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: The Marching Cubes

Сообщение bwolf88 21 окт 2014, 02:27

Короче, я этот алгоритм осилил, точнее почти осилил, осталось чуть-чуть дописать функцию подстановки правильного набора треуголов (блока) @-). Почти тоже самое что и 2Д тайлинг, только с 3-ей координатой и вариантов блоков больше. Самое долгое парился с таблицей треугольников, не мог понять с какой стороны ее прикручивать и с понимаем что такое IsoLevel, который для сохранения полученной сетки противопоказан (получается слишком много данных). А так оказалось что все намного проще.
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331

Re: The Marching Cubes

Сообщение Syberex 21 окт 2014, 08:37

Повезло тебе, что патент на этот алгоритм уже кончился :D
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: The Marching Cubes

Сообщение bwolf88 21 окт 2014, 16:26

Syberex писал(а):Повезло тебе, что патент на этот алгоритм уже кончился :D


По идее это 3Д тайлинг и до него можно самому дойти, не используя стороннюю литературу. Единственное, что у меня осталось от MC - это набор треугольников.
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331

Re: The Marching Cubes

Сообщение bwolf88 21 окт 2014, 19:13

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

Единственное, сейчас остался косяк, что остаются незаполненные участки на углах +/-2 по каждой из координат, при редактировании, но это опять же больше правильный алгоритм тайлинга (получается что у меня идет просчет только непоредственных соседей и нужно еще добавить на 1 ряд дальше). Если заранее их выставить, то все правильно рисуется.
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331

Re: The Marching Cubes

Сообщение Diab10 21 окт 2014, 21:45

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

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


Расскажите, что подразумевается под тайлингом? :) Тайлинг текстуры знаю, а тут это что значит?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: The Marching Cubes

Сообщение bwolf88 21 окт 2014, 22:17

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

Что мне пока остается непонятно как такие треугольники текстурить. Допустим с Marching Squares все легко - отрисовываем нужный куб в единичном масштабе и присваиваем те же координаты UV развертке. В 3Д я пока не понял как перенести это на текстуру, чтобы получилось красиво, хотя если честно я пока вообще без развертки делал, может все окажется просто :D.
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331

Re: The Marching Cubes

Сообщение Diab10 21 окт 2014, 22:24

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

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

Спасибо, но всё равно не понял :D
Тайлинг текстуры - это просто копирование её по всей плоскости меша :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: The Marching Cubes

Сообщение bwolf88 21 окт 2014, 22:29

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

Тут тоже самое только 256 вариантов для пространства.
Сюда периодически чего нибудь выкладываю https://github.com/LuchunPen
Аватара пользователя
bwolf88
Адепт
 
Сообщения: 2184
Зарегистрирован: 30 апр 2014, 06:40
Skype: bwolf331

Re: The Marching Cubes

Сообщение Diab10 21 окт 2014, 22:44

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

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


Понял, спс :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

След.

Вернуться в Уроки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5