Воксели ... честно говоря, мне нужно знать, с чего начать.
хорошо, я понимаю, что воксели - это просто объемная версия пикселя.
после этого я понятия не имею, что даже искать.
Googling не показывает никаких учебников, я не могу найти книгу об этом нигде, я не могу найти ничего, даже имеющего отношение к основная идея что такое воксель на самом деле.
Я знаю большую часть библиотеки C++ и имею основы OpenGL вниз.
может кто-нибудь указать мне справа направление?
редактировать: Я думаю, я просто запутался в том, как их реализовать? Прости, что причиняю боль, просто я не могу найти ничего, с чем можно было бы легко соотнести... Я думаю, что я представлял воксель, относящийся к вектору, в котором вы можете хранить данные.
воксель может быть представлен как любой 3D фигуру? Например, скажем, я хотел, чтобы форма была цилиндром. Возможно ли это, или они должны связываться как Кубы?
6 ответов
Minecraft хороший пример использования вокселей. В Minecraft каждый воксел это куб.
посмотреть в C++ пример вы можете посмотреть на клон Minecraft Minetest-c55. Это с открытым исходным кодом, так что вы можете прочитать весь исходный код, чтобы увидеть, как это делается.
быть кубами не является требованием вокселей. Они могут быть пирамидами или любой другой формой, которая может поместиться вместе.
Я подозреваю, что вы ищете информацию о Объем Перевода методы (поскольку вы упоминаете воксели и OpenGL). Вы можете найти много простого кода рендеринга в C++ и более продвинутых шейдеров OpenGL, а также с небольшим поиском по этому термину.
в простейшей возможной реализации воксельное пространство представляет собой всего лишь 3-мерный массив. Для твердых тел вы можете использовать один бит на воксель: 1 == заполненный и 0 == пустой. Вы используете неявные формулы для создания фигур, например, сфера - это все воксели в радиусе от центра вокселя.
воксели не очень совместимы с многоугольным 3d-рендерингом, но они широко используются в анализе изображений, медицинской визуализации, компьютерном зрении...
давайте сделаем воксельный движок on Сайты Google может помочь начать создание воксельного движка:
https://sites.google.com/site/letsmakeavoxelengine/
В дополнение к этому есть презентации результатов Youtube стоит проверить:
http://www.youtube.com/watch?v=nH_bHqury9Q&list=PL3899B2CEE4CD4687
обычно воксель-это позиция в некотором 3D-пространстве, имеющая объем (аналогично области, которую содержит пиксель.
Как и на изображении, где пиксель содержит скалярное значение (оттенки серого) или вектор значений (например, на цветном изображении, где вектор является либо красным, зеленым и синим компонентами, либо компонентами оттенка, насыщенности и значения), записи для вокселя могут иметь некоторый масштаб или вектор значений.
пара естественных примеров объемных изображений то содержит воксели 3D медицинские воображает как CT, MRI, ультразвук etc.
математически говоря, 3D-изображение является функцией от некоторого воксельного пространства до некоторого набора чисел.
ищите voxlap или попробуйте этоhttp://www.html5code.com/gallery/voxel-rain/ или напишите свой собственный код. Да, воксель может быть сведен к 3D-координате (что может подразумеваться его положением в файловой структуре) и графическому представлению, которое может быть чем угодно (куб, сфера, изображение, цвет ...). Так же, как пиксель-это 2D-координата с цветовым индексом.
вам нужно только разобрать файл и отобразить соответствующие воксели. К сожалению, нет "правильного" файла формат, хотя форматы файлов voxlaps кажутся довольно аккуратными.
удачи