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

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

Dr.Evil 23.08.2009 21:40

Ответ: Воксели = задача реализации.
 
Там есть темы с вокселями и гугл выдает ссылки на ура, там есть дельные идеии, но мне хотелось здесь задать вопрос, т.к. тут не такие прожженные ДВИЖКОстроители, может просто интересную идею реализации или просто взгляд на воксели...:)


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

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