JAS3

Визуализация с помощью JAS3


Моя программа в процессе работы выдает такой текст

Current available graphics systems are:
 ASCIITree (ATree)
 DAWNFILE (DAWNFILE)
 GAGTree (GAGTree)
 G4HepRep (HepRepXML)
 G4HepRepFile (HepRepFile)
 RayTracer (RayTracer)
 VRML1FILE (VRML1FILE)
 VRML2FILE (VRML2FILE)
 FukuiRenderer (DAWN)
 OpenGLImmediateX (OGLIX)
 OpenGLStoredX (OGLSX)
 RayTracerX (RayTracerX)
 VRML1 (VRML1)
 VRML2 (VRML2)

Разберем по порядку, что из себя представляют эти драйверы.

  1. ATree печатает структуры геометрии в виде дерева. Толку от него немного и в нем нет треков.
  2. DAWNFILE выдает файлы в формате .prim, которые потом можно превратить в постскрипт программой DAWN. Или их можно проанализировать на предмет наличия перекрытий примитивов программой David. Но dawn ужасно неудобный и неинтерактивный, чтобы из него получить достойно выглядящую картинку приходится возиться полчаса.
  3. GAGTree — это что-то непонятное навроде ATree. Абсолютно бесполезная вещь.
  4. G4HepRep & G4HepRepFile — о них речь пойдет ниже.
  5. RayTracer по идее должен генерировать jpeg'и фотографического качества, но у меня он создавал только какие-то страшные черно-белые силуэты без антиалиасинга, при чем над каждым подолгу пыхтел. Плюс он не отображает треки.
  6. FukuiRenderer — это, насколько я понимаю то же самое, что и DAWNFILE.
  7. OpenGLImmediateX и OpenGLStoredX. Это OpenGL. Что можно о них сказать... Из всех визуализаций только OpenGL и OpenInventor могут работать в реалтайм. Это, конечно, очень удобно, но уж очень некрасиво они рисуют, да и пользоваться ими неудобно, так как окошки не перерисовываются, если их случайно заслонить (приходится явно вызывать /vis/viewer/flush для перерисовки). Но первый плюс, безусловно, перевешивает недостатки.
  8. RayTracerX такой же тупой, как и просто RayTracer, с отличием в том, что вместо файлов jpeg он создает окошко, куда и рисует.
  9. VRML1 и VRML2 — две версии vrml. Да толку-то. Под линукс нет ни одного нормального vrml-браузера. Хотя под Windows это реальная альтернатива. VRML можно смотреть в виде 3D, вращать мышкой, приближать и удалять. Вместе с треками.

JAS

В свете вышеизложенных фактов единственным достойным методом работы с off-line-визуализацией является HepRep. Этот формат позволяет сохранять в файле геометрию и треки. Для просмотра используется программа JAS3 (http://jas.freehep.org/jas3/) (Java Analisys Studio). На сайте есть дистрибутивы для Win32, Mac OS X и linux. Они работают и на экзотических платформах тоже: у меня запустилось в linux на amd64 и в MacOSX на интеле. Причем работало аппаратное ускорение 3D.

Сам JAS3 это культурный шок. Чуть-ли не единственная программа на джаве, которая работает быстро и без раздражающих глюков. Правда, конечно 512 Мб памяти для него это самый минимальный минимум.

Вот и скриншот:

Image:jas3-small.png

Для того, чтобы запустить jas3 в линуксе, надо распаковать архив: tar xzf jas3-Linux-0.8.2.tar.gz, и запустить команду ./jas3/jas3. После чего надо установить плугин для работы с HepRep. Последнее вообще проще простого, т. к. плугины он скачивает из интернета автоматически. В меню View выбираете Plugin Manager, там на вкладке Avaiable находите Wired4, Wired4 Base Library и HepRep plugin, ставите галки и нажимаете Install selected plugins. Естественно нужно подключение к интернету. После установки даже перезапускать JAS3 не нужно, все начинает работать сразу!

Чтобы G4 выдавал файлы в формате HepRep надо добавить в vis.mac строчки

 /vis/scene/create filename.bheprep
 /vis/open HepRepXML

Filename.bheprep, конечно, надо заменить на что-нибудь более подходящее.

Еще HepRep адекватно реагирует на endOfEventAction и по умолчанию добавляет в файл только треки от одного события. Если же вы укажете accumulate, то он будет сохранять все обработанные траектории.

Edit page