Я использую 3D текстуры для объемного рендеринга необработанных данных. Необработанные данные могут быть Luminance-Alpha или RGBA.
В настоящее время я читаю необработанные данные и устанавливаю альфа-значение так, чтобы самый дальний ряд (или срез) был непрозрачным (Альфа = 1), а ближайший срез был бы «прозрачным» (скажем, альфа = 0,1), а также и альфа значения интерполированы.
Есть ли способ в opengl, я могу динамически изменять эти альфа-значения. то есть на основе таких событий, как ротация? Так, что самый дальний срез всегда непрозрачен?
Я использую инструмент сцены (www.openrm.org) для объемного рендеринга на основе текстуры.
Наверное, я не ищу код, но есть идеи, которые я могу сделать это эффективно в графическом процессоре, используя OpenGL.
В этом рассказывается о «весе альфа-фрагмента», что я и собираюсь сделать (посмотрите на псевдокод в конце)
http://www.ifi.uzh.ch/staff/stern/SciVis_WS2004/chstern/v100105/VolumeRendering/kulick/
Теперь трюк состоит в том, чтобы пересчитать вес альфа-фрагмента при изменении ориентации.