forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Воксели = задача реализации. (http://forum.boolean.name/showthread.php?t=8942)

Dr.Evil 18.08.2009 17:37

Воксели = задача реализации.
 
Идея заключается в том, чтобы делать 3х мерные спрайты в реал тайм, т.е. можно было бы делать модель из вокселей, ей анимацию, а потом набор спрайтов.
Задача:
Дано:
1 пиксель = 1 воксель
2.массив 256^3
3.кол-во информации для хранения не критично.
4. приемлемая скорость желательна.
5.язык - любой.
6.Зум отсутствует.
Интересует: методы визуализации, решение проблемы дискретного пространства(п.1), методы вращения(син/кос , через матрицу(что лучше)), ну и вообще взгляд коллег на решение вокселей как таковых.

если что-то упустил , пишите будем вместе ставить доп. условия или упрощения,
так же интересует информация по этому поводу.(мысли сумбурны, поэтому извиняюсь, если изложил не внятно)!

Dr.Evil 18.08.2009 17:43

Ответ: Воксели = задача реализации.
 
Хочу дополнить, что если есть соображения по реализации вокселей в игосроении аля: Hexplore и Lands of Lore 3. Здесь уже скорость критична.

moka 21.08.2009 01:43

Ответ: Воксели = задача реализации.
 
Я бы визуализировал полностью на волуметрическом рендере используя шейдеры.
Ограничение по минимальной видеокарте - требуется хорошее железо.
Но зато очень качественная будет картинка.
Массив по сути нужно будет загонять в 3д текстуру, что будет требовать весьма много.
Хотя зависит как реалезуешь ;)

Вот пару картинок примеров волуметрического рендеринга:
http://www.coin3d.org/usage/casestud...etryvolume.jpg
http://graphics.stanford.edu/papers/shear/colorhead.jpg

А вот ещё интерестная ссылочка о воксельном скульптуринге: http://www.3d-coat.com/v3_voxel_sculpting.html

Dr.Evil 21.08.2009 01:55

Ответ: Воксели = задача реализации.
 
Волуметрический рендер - это , я так понимаю, несколько 2д текстур стоящих друг за другом, типа http://prosjekt.ffi.no/unik-4660/lec...rs/Voxel1.html , но получится, что 1 воксель != 1 пиксель. Но вообще хотелось бы взглянуть как это будет выглядеть! Просто на шейдер, я возлагаю надежду сгладить картинку, хотя может я просто не достаточно осознаю всю СИЛУ шейдеров!:-)
PS.: Хоть кто-то отписался. Спасибо.

moka 21.08.2009 02:00

Ответ: Воксели = задача реализации.
 
Для волуметрического рендера, нужно будет юзать 3д текстуру. Затем делать снимку близких и дальних граней куба (массива), и далее делать рэйкастинг, тоесть делать кучу проходов в пост обработке, от ближней грани, к дальней, и производить выборки из 3д текстуры.
На эту тему есть много литературы в интернете ;)
Поверь, шейдеры - безграничная штука..

Dr.Evil 21.08.2009 02:07

Ответ: Воксели = задача реализации.
 
ну если делать снимок всех граней фишка рейкастинга теряется. Моя идея заключается в том, чтобы сделать редактор типа пейнта, но чтоб картинку можно было вращать как в Зд максе, тут загвоздка в том, что при повороте на 45 градусов из-за целых пикселей экрана получается картинка в сеточку...,просто если 3д делать, то товарищь Сильверман накатал через кубики, известный Voxlap.
Просто в начале хотел все сделать по простому... и пока пробывал тока на Дельфи, так как там Гуи можно быстренько накатать, но вот думаю через с++ и опенГЛ попробовать, но пока руки не доходят.

В начале пробовал на blitzmax сделать, но медленно по пикселям рисовать.

moka 21.08.2009 02:10

Ответ: Воксели = задача реализации.
 
Так как ты визуализируешь - дело не меняется. Другое дело как ты реалезуешь рисование по внутреним вокселям.
По сути, это какбы волуметрический редактор. А если быть ещё точнее - редактор 3Д текстуры.

Dr.Evil 21.08.2009 02:15

Ответ: Воксели = задача реализации.
 
ну по сути воксельная модель это просто массив [x,y,z], а вот как его как раз рисовать и крутить(не его, в нем) воксели, вот вопрос!

Да и я правильно понял на счет волуметрического рендера?

moka 21.08.2009 02:25

Ответ: Воксели = задача реализации.
 
Насчёт волуметрического рендера - там не так просто, нада читать литературу.
Крутить очень просто - ведь по сути, используя шейдеры, без них - будет просто куб, его то и крутишь ;)
Матричные трансформации уже в вершинном шейдере, используя матрицу трансформации объекта, будет проецировать в скринспейс всё как нада..

Dr.Evil 21.08.2009 02:28

Ответ: Воксели = задача реализации.
 
ну можно как-то по подробней тогда, а то как-то даже абстрактно не могу понять как это все будет?

moka 21.08.2009 02:39

Ответ: Воксели = задача реализации.
 
Я делал волуметрический туман, там без рэйкастинга, а просто использование дальности до задних фейсов, и дальности до близжих фейсов.
То есть если это куб, то у тебя будет 2 основные информации - задние стенки, и ближние, ты будешь знать расстояние до пикселей.
Далее можно вычеслить где находится пиксель, без рэйкаста, мы можем вычеслить позицию пикселя в координатах модели, только либо с задних стенок, либо с ближких.
Но используя цикл например в 32 такта, мы можем плавно переводить значения от близжей стенки, к дальней - что мы таким образом получим? Позиции 32 пикселей от ближней стенки к дальней. А позиция пикселей - это и является координата для выборки из 3д текстуры.
Дальше будет дело за блендингом, как будут применяться значения пикселей. Тут нада просто в цикле, используя альфу, какбы заполнять прозрачность, если она по пути заполнится, то значит там уже дальше пиксели будут заслонены, и дальше рейкастить смысла нету..
Короче говоря, это не так просто сразу осмыслить, без опыта с шейдерами так сразу принять такого рода алгоритмику очень сложно..

Dr.Evil 21.08.2009 02:42

Ответ: Воксели = задача реализации.
 
Суть ясна, но надо обдумать...так сразу не въедешь... надеюсь еще кто-нибудь поделится соображениями!;)

moka 21.08.2009 03:31

Ответ: Воксели = задача реализации.
 
С такими задачками тебе нада подтянуть знания в графике, и прямиком на GameDev.ru - там уже люди в этом поопытнее, они то и помогут в этом плане. ;)

Dr.Evil 21.08.2009 13:46

Ответ: Воксели = задача реализации.
 
На гемдев надо диз.док, дему, концеп документ... а я всего навсего простой программист-Большой-любитель и только...
PS.: тут тоже не дураки, да и по добрее как-то!;)

moka 23.08.2009 16:48

Ответ: Воксели = задача реализации.
 
Этот вопрос не для проектов, а для новой темы на гд, в разделе про код и графику. Если адекватно задавать вопросы - там очень дельно помогают.
А насчёт доброты, да есть немного ;)


Часовой пояс GMT +4, время: 08:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot