1. From the 9.6 b01 Changelog: Implemented proper treatment of transparency in OpenGL stored mode in the case trajectories pass through or behind transparent persistent objects (detector components). Required proper ordering of display list execution. Now trajectories look realistic and it's great! But... It makes difficult to analyze them visually as far as they look too dim inside detector volumes. Probably it makes sense to provide a visualisation option to choose between realistic view and simple plain-color lines. Currently i just back-ported G4OpenGLStoredViewer::DrawDisplayLists() from Geant4 9.5 release in my build and lines look plain again. 2. Very minor. I use G4Scene::GetRunDurationModel() in my application. It returns const std::vector<Model>& (in current stable release the type differs) and i have to provide my own typedef for that. Probably it makes sense to define it inside class G4Scene like typedef std::vector<Model> ModelList; Regards, Alexey.
Hi Alexey Cc: Joseph Perl for views and comments. First point: You get full strength trajectories with "/vis/viewer/set/hiddenMarker false". I guess you've tried this. Get back to us on this. Second: This is a personal thing, but I avoid setting typedef's in header files because it's one more thing a user has to unpack to understand some code. I have done it in the past but I now avoid it. I like to see exactly what I'm dealing with in my own user code (where I very often use typedef's). So, I'm going to resist this one. Regards John
Created attachment 190 [details] How it looks
Hi John. 2. This is OK. 1. I am not sure if "/vis/viewer/set/hiddenMarker false" regards this. I actually use this setting in my vis script. But when i did "/vis/viewer/set/hiddenMarker true" i got really different case. Please see attached image to find what i mean: there are 3 images: 1. Geant 4.9.6, hiddenMarker false 2. Geant 4.9.6, hiddenMarker true 3. Geant 4.9.6 (with G4OpenGLStoredViewer::DrawDisplayLists() ported from Geant4 9.5), hiddenMarker false Originally i wanted to compare image 1 and image 2: you see that trajectories at image 1 are almost not visible whereas on image 2 they are plain-colored. I am not sure about image 2: it looks like a median between 1 and 2, some lines are dim and some not. Regards, Alexey.
> Originally i wanted to compare image 1 and image 2: you see that trajectories > at image 1 are almost not visible whereas on image 2 they are plain-colored. I > am not sure about image 2: it looks like a median between 1 and 2, some lines > are dim and some not. Sorry, should be: Originally i wanted to compare image 1 and image 3: you see that trajectories at image 1 are almost not visible whereas on image 3 they are plain-colored. I am not sure about image 2: it looks like a median between 1 and 3, some lines are dim and some not.
It did indeed turn out there was a serious bug in dealing with non-hidden markers (non-hidden is the default). This is fixed in the tag below. The fix has been tested by the bug reporter and it works for him. The fix will be part of the next release, 9.6. 27th September 2012 John Allison (opengl-V09-05-37) - G4OpenGLSceneHandler, G4OpenGLImmediateSceneHandler, G4OpenGLStoredSceneHandler, G4OpenGLStoredViewer: o Major re-design of scene and transient processing: . Three categories foreseen: ~ Opaque ~ To be treated as transparent ~ To be treated as non-hidden. This applies to markers and polylines if hidden markers is _not_ requested, which is the default so that trajectories are always visible even if drawing in surface style. To change this - /vis/viewer/set/hiddenMarker true. . Thus G4OpenGLSceneHandler::ProcessScene() is three-pass-capable. . Also G4OpenGLStoredViewer::DrawDisplayLists makes three passes. . Appropriate information is stored in the PO or TO.