2012-05-09 9 views
0

Я реализовал рендеринг тома с использованием лучевого кастинга в CUDA. Теперь мне нужно добавить в сцену другие 3D-объекты (например, 3D-рельеф в моем случае), а затем заставить их взаимодействовать с результатом рендеринга тома. Например, когда я перемещаю результат рендеринга тома, перекрывая рельеф местности, я хочу модулировать результат рендеринга тома, например, обрезать перекрывающуюся часть в результате рендеринга тома.Вот результат тома Render, как взаимодействовать с другим 3D-объектом

Однако результат рендеринга объема получается из цвета, накапливающего луч, поэтому это 2D-изображение без глубины. Итак, как реализовать взаимодействие, я очень запутался. Кто-нибудь может дать мне подсказку?

ответ

0

На самом деле, я думаю, что результат лучевого кастинга является двумерным изображением, он не может взаимодействовать с другими 3D-объектами обычным способом. Таким образом, мое решение состоит в том, чтобы сделать 2D-образное изображение луча в виде текстуры и смешать его в 3D-сцене. Если я могу контролировать позицию и направление обзора, мы можем отобразить результат лучевого каста в точном месте в 3D-сцене. Я все еще пытаюсь реализовать это решение, но я думаю, что эта идея в порядке!

2

Сначала вы создаете свои 3D-растеризованные объекты. Затем вы берете буфер глубины и используете его в качестве дополнительного источника данных в томе raycaster в качестве дополнительного ограничения на ограничения интеграции.

+0

Спасибо за ваш совет, datenwolf. Но, честно говоря, я не последовал твоей подсказке. Как использовать буфер глубины (от другого 3D-объекта, правильно?) В качестве дополнительного ограничения на ограничения интеграции? Есть ли демо? – TonyLic