Как мне вокселизировать и заполнить 3D текстурированный OBB? - PullRequest
1 голос
/ 14 марта 2020

У меня есть набор блоков Minecraft, и для каждого из них мне нужен объем (произвольного размера), содержащий вокселизированный блок Minecraft.

Блок Minecraft - это не просто AABB, который заполняет все блок. Обычно это набор дочерних AABB, которые могут быть переведены / масштабированы / повернуты (OBB) и могут иметь различный цвет / текстуру для каждого лица. Вот пример:

enter image description here

Я уже разработал класс под названием ModelVoxelizer, который принимает трехмерную три angular модель и выдает вокселизацию для этого и для этого используется графический конвейер OpenGL. Проблема с этим состоит в том, что это устанавливает на объеме только контурные воксели модели. Вместо этого я хочу, чтобы вокселизация блока Minecraft была заполнена внутри.

enter image description here

Кусочек тома, который я бы ( надеюсь ) ) получить мой текущий ModelVoxelizer, воксализируя 3 OBB (не всегда у меня есть AABB!), которые составляют блок Minecraft выше.

enter image description here

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

Проблема:

Так что моя проблема - это проблема растеризации, где у меня есть объем ( 3D-сетка) и OBB (часть блока Minecraft), и я должен проверить, какие воксели находятся внутри OBB. Для тех, кто находится внутри / сталкивается, я должен интерполировать значения граней OBB (текстура / цвет), основываясь на расстоянии вокселя от указанных граней.

Это уже известная проблема? Я пытаюсь заново изобрести колесо?

Я ценю любые предложения по этому поводу, спасибо.

...