Воксели... Честно говоря, мне нужно знать, с чего начать

Хорошо, я понимаю, что вокселы - это просто объемная версия пикселя.

После этого я понятия не имею, что даже искать.

Googling не показывает никаких учебных пособий, я не могу найти книгу нигде, я не могу найти ничего, даже имея отношение к основной идее того, что такое воксель.

Я знаю большую часть библиотеки С++ и у меня есть основы OpenGL.

Может ли кто-нибудь указать мне в правильном направлении?

EDIT: Думаю, я просто смущен тем, как их реализовать? Извините за то, что вы больно, это просто то, что я не могу найти что-либо, что я могу легко связать... Я думаю, что представлял себе воксел, относящийся к вектору, в котором вы действительно можете хранить данные.

воксел может быть представлен как ЛЮБАЯ трехмерная форма? Например, скажем, я хотел, чтобы фигура была цилиндром. Возможно ли это, или они должны связываться как кубы?

Ответ 1

Minecraft - хороший пример использования вокселей. В Minecraft каждый воксел - это куб.

Чтобы увидеть пример С++, вы можете посмотреть на клон Minecraft Minetest-c55. Это открытый исходный код, поэтому вы можете прочитать весь исходный код, чтобы узнать, как это делается.

Быть кубиками не является требованием вокселей. Они могут быть пирамидами или любой другой формой, которая может сочетаться.

Ответ 2

Я подозреваю, что вы ищете информацию о методах Volume Rendering (поскольку вы упоминаете вокселы и OpenGL). Вы можете найти много простого кода рендеринга на С++ и более совершенные шейдеры OpenGL, а также немного поискать на этом терминах.

Ответ 3

В простейшей возможной реализации пространство вокселов - это всего лишь трехмерный массив. Для твердых тел вы можете использовать один бит на вокселе: 1 == заполнено и 0 == пусто. Вы используете неявные формулы для создания фигур, например. Сфера - все вокселы в радиусе от центра вокселя.

Voxels на самом деле не совместимы с 3D-рендерингом на основе полигонов, но они широко используются в анализе изображений, медицинской визуализации, компьютерном видении...

Ответ 5

Обычно воксел - это позиция в каком-то трехмерном пространстве, которое имеет громкость (аналогично области, в которой содержится пиксель.

Как и в изображении, где пиксель содержит некоторое скалярное значение (оттенки серого) или вектор значений (например, в цветном изображении, где вектор представляет собой либо красный, зеленый, либо синий компоненты, или оттенок, насыщенность и значение компоненты) записи для воксела могут иметь некоторый масштаб или вектор значений.

Несколько естественных примеров объемных изображений, которые содержат вокселы, представляют собой 3D-медицинские изображения, такие как компьютерная томография, МРТ, 3D-ультразвук и т.д.

Математически трехмерное изображение является функцией от некоторого пространства вокселей до некоторого набора чисел.

Ответ 6

найдите voxlap или попробуйте http://www.html5code.com/gallery/voxel-rain/ или напишите свой собственный код. Да, воксел можно свести к 3d-координате (что может быть подразумевается положением в структуре файла) и графическим представлением, которое может быть любым (куб, сфера, изображение, цвет...). Точно так же, как пиксель представляет собой двумерную координату с индексом цвета.

Вам нужно только проанализировать файл и отобразить соответствующие вокселы. К сожалению, нет "правильного" формата файла, хотя форматы файлов Voxlaps кажутся довольно опрятными.

удача