Skip to content
  • David DeMarle's avatar
    Flesh out ospray rendering and scene graph · c5a51d13
    David DeMarle authored
    make ospray pass create the scene graph so user doesn't have to
    move ospray specific controls to ivars on ospraynodes
    Improve caching
    Now we cache what we can but not so much that we
    fail time, or dynamic, or actor hiding. Also prevent double
    delete on actor hiding and style
    no special access just for ospray
    Access to scenegraph view node would probably be OK.
    make sure we get cell colors right for arbitrary polygons
    using a reverse index from triangulated (or cylindered or pointed)
    output cell back to input vtk cell. The output cells are homogenous
    but the input cells aren't necessarily.
    quad 0 -> tri 0 : rindex 0
              tri 1 : rindex 0
    tri 1  -> tri 2 : rindex 0
    color 0 -> color 0,1
    color 1 -> color 2
    flesh out point size and line width controls
    Now user chosen pointsize and linewidth on mapper matter.
    Also, user can designate a point aligned array to vary elements individually
    and user can provide a lookuptable to manipulate those values arbitrarily.
    In all cases there is an additional scaling control for fine tuning.
    start to clean up actor to ospray translation
    just use c++ new and remove embree calls to simplify
    a single namespace for helpers
    more logical flow for readability
    Fix image space transformations
    Also flesh out the implicits test and remove the related check from
    render mesh now that it has its own test.
    Fix some subtle bugs in caching.
    Moved cache of ospray objects out to composite level. Would be nice to
    cache indiviual blocks but the way I did it before was broken.
    In process I found and fixed a bug regarding normals.
    more cleanup actor to ospray translation and fix line sizing
    was using wrong index into point value for line size, also changed
    to use average of values at endpoints instead of first value
    Also promote large chunks of the conversion process to the scenegraph level
    because it is reusable. That and cleanup the ospray actor a lot.
    move light vector out to renderer to allow multiple lights
    also, just say no to c style casts.
    toward consistent API for setting ospray specific state
    The plan is for the scenegraph level to be restricted to read only
    access to rendering/core state. Since backend specific classes are
    hard to get a hold of (created late), options for them go into
    information objects on the core classes. There will be setters/getters
    on the backend classes though to make it easier to set them in the
    case where you have access.
    Fix multiple lights and add a test for lights
    Make a consistent API for setting options that affect ospray.
    fine tune lighting
    lights now obey intensity and switch and color range is closer for
    positional and directional lights. positional are still much
    brighter for some reason so I've kludged in a 1/5 factor to make them
    close.
    actor colors obey diffuse and specular multipliers now and cell
    aligned color maps now repect opacity and specularity. not sure if
    I'll make point aligned colors do the same just yet since not
    doing so saves space and keeps rgb and val interpolated consistent and
    doesn't require changes to ospray to make texture materials respect them.
    The key thing I understand now is that ospray does colors with
    everything 0..1 except texture maps, which go 0..255.
    Interesting to note that Ospray images are whiter than GL counterparts
    when ambient occlusion enabled.
    SceneGraph is not ready for default on, so take it out of rendering group.
    Bunch of compiler warnings.
    The collection iterator remove actor in loop change was important.
    Don't know yet why implicits don't work on windows, otherwise in pretty good
    shape as rest of tests pass. cmake find and ospray version
    include need more work.
    fix inconsistent background clearing
    testdynamicobject was wrong before this, as was GL2 and interactive
    camera motion. First would have nonsensical bckground, second would
    streak.
    Remove implicit SCALE hack and add a light Intensity hack.
    Mapper SCALE is not needed since pointsize and linewidth are doubles
    not integers in modern paraview. Add a light multiplier, applied to
    ALL lights, for ParaView because with 6 double sided lights, the
    default is too bright.
    guard against actor without mapper and get scalars for multiblock
    enable block colors and improve implicit colors and sizes
    We now handle block visibility, opacity and color.
    Fixed a case of always black implicits for paraview.
    Added a new control that by default disables implicit scaling.
    improve caching
    had some cases where it would not rebuild when it needed to.
    One was in paraview when changing colormap variable.
    Confine ospray to a renderer instead of a renderwindow
    Makes for easier interoperability with GL layers.
    Fix lighting and multiple layers
    Now that we are using the lights pass (and we should so that
    we update camera positions) it exposed a bug where the default
    created camera was not actually removed from the Renderer's light
    collection. As a result, ospray renderings added duplicate default
    lights and the images became washed out.
    Also, added back in compositing of ospray layers which used to
    happen and the ospraywindownode level. TODO: add a compositeRGB
    call to renderwindow to do it nicely.
    update ospray to only build MPI test when supported
    Removed the dependence on MPI and replaced it with a
    conditional. If parallel and MPI are already on then
    it will include the MPI based ospray tests and the
    required libs and includes
    move actor code down to mappers
    introduce mapperNodes to do the bulk of the work
    also some cleanup to the updating children code
    bunch more changes for mapper
    more mapper related changes
    fixes and resolve restore some missed features
    Was a reference leak in parent, use weakpointer to fix
    Need another mapper override for OpenGL1
    HeaderTest fix
    minor Style //---'s per vtk style guide
    added back the use ambient color fallback and a handful of other
    features that were in actornode only after start of move to mappernode
    Fix scalar colors with multiblock data.
    Before it would reuse block0's color arrays for block1 and the
    result would be wrong.
    Fill in per block and from field data color paths
    Restore window node, move compositing to pass, cleanup traversal
    This also implies that you could render without
    even having opengl. Added a test for the windownode entry point.
    Moved some of the compositing code into the pass. The idea
    being that if you are building with OpenGL then you would
    also build ospraypass. Otherwise you would not. The other classes
    should not require a OpenGL implementation. Only the pass.
    Changed the traversal implementation so that each step gets called
    both before and after its decendents. This is implemented with a
    prepass argument that is true before the decendents and false after.
    Removed the YYYSelf() methods.
    Removed most the ORender methods as they were a tad confusing.
    Converted some ospray specific subclasses to just implement
    Render() where before they had ORender.
    Fixed two bugs in the writelayer compositing code.
    Remove scenegraph's copies of state
    Going with direct access to renderable
    fix scenegraph test
    miscellaneous fixes
    Now specifying implicit scaling array by name rather than pointer.
    Made Mapper:ClearColorArrays() not modify the mapper because it
    disallows caching and is not necessary.
    Restored the use ambient when diffuse is not available behavior
    so that paraview point and cylinder representations look OK.
    Restores ability to have ospray layers not at layer 0.
    Re-enabled RenderPass::ClearLights to fix some GL1 tests.
    Fixed header test.
    c5a51d13