Визуализировать n-мерное скалярное поле в opengl / pycuda

Используя pyCuda, я манипулирую N-мерным скалярным полем. Я хотел бы визуализировать это скалярное поле в режиме реального времени (т.е. быстро и эффективно). Я думаю об использовании алгоритма движущихся кубов для рисования трехмерных проекций изоповерхностей, но я не смог найти хороших реализаций / библиотек, которые я мог бы использовать из моей программы pyCuda. Любые рекомендации? В идеале я хотел бы, чтобы решение было совместимо с другими графиками OpenGL, которые я делаю в программе.

1 ответ

Скалярное 3D-поле можно интерпретировать как объемное изображение. Существует несколько способов прямого рендеринга томов с использованием фрагментных шейдеров OpenGL. Использование терминов "OpenGL GLSL Volume Raycasting Direct Rendering" дает много результатов. По сути, вам нужно определить точки входа и выхода луча, соответствующего каждому пикселю экрана, через объем и выполнить итерацию по всем выборкам в вашем скалярном поле, интегрируя их.

Несколько ссылок:

http://http.developer.nvidia.com/GPUGems/gpugems_ch39.html

http://sirkan.iit.bme.hu/~cseb/Education/ComputerGraphics/direct_volume_rendering_6.pdf

http://graphicsrunner.blogspot.de/2009/01/volume-rendering-101.html

http://www.cs.utah.edu/~jmk/sigg_crs_02/courses_0067.html

http://www.daimi.au.dk/~trier/?page_id=98

Другие вопросы по тегам