OpenFlipper Changelog

What's new in OpenFlipper 2.1

May 13, 2016
  • GENERAL:
  • Refactored multiple classes in order to separate glew from Qt5GL.
  • ACG:
  • Algorithms:
  • EdgeConvexPolygonIntersection added to Algorithms
  • Drawmesh:
  • new feature: flexible vertex layout in drawmesh
  • Remove second copy of vertex buffer, preparation for flexible vertex layout
  • remove face-colors from drawmesh vertex format
  • GL:
  • DrawModes: Convenience function to add property based drawmodes. refs 1895
  • Rendering: Fix for wireframe/hiddenline on poly meshes.
  • Rendering: unified edge rendering for triangle and poly meshes refs
  • Support shininess in lighting code
  • improve MSAA support in FBO
  • rename MSFilterWeights file to AntiAliasing
  • documentation update in FBO, AntiAliasing, IRenderer
  • check link status before calling glUseProgram refs #2064
  • fix resizing of msaa fbos
  • update msaa helper utils
  • FBO: init texparams only for non msaa textures to avoid glerrors
  • GLMatrix: extraction of clipping planes in a projection matrix
  • GLSL::Shader: add suppport for tessellation shaders
  • Add convenience functions to property layers of DrawMode
  • Added own glError to String function to avoid the glu version which is deprecated on mac
  • IRenderer:
  • Additional functions to make sure, the fbos are handled correctly
  • Convenience functions added:
  • save/restoreActiveFbo(fboId, viewport)
  • copyDepthToBackBuffer(tex, scale)
  • Fix specular lighting of directional lights in the shader pipeline
  • add setting for alpha testing function in render objects refs #398
  • compute size of attributes for missing input buffers refs #2069
  • Renderobjects can request a depth map of the scene, which is optionally rendered in a z-prepass
  • new feature: scene layer and overlay layer with RenderObjects
  • Line Node:
  • use quad extrusion shader in line node to control the width refs #1305
  • MaterialNode:
  • Made MaterialNode's JSON (de)serialization Qt5 compatible.
  • MeshNode:
  • Fixed 0 pointer deref in meshnode. Closes 2048
  • RenderObjects of the MeshNode: fetch texture bound to opengl slot 0, if no textureMap was specified refs #2050
  • apply small depth offset in wireframe shaders refs #2081
  • optimized picking in meshnode (via shaders)
  • disable optimized face,edge picking for point clouds refs #2139
  • MeshCompiler and DrawMesh:
  • Fix for face colors on wrong faces by Christopher.
  • const correctness in mesh compiler refs #2060
  • implemented GL_TRIANGLES_ADJACENCY mode in meshcompiler
  • more robust estimation of split-count in MeshCompiler refs #2195
  • Picking Implementation:
  • Introduced a new shader based picking which is way faster and uses less memory for its buffers
  • ShaderGenerator:
  • Add support for include statement in ACG shader load function
  • Write source location of shader input files as comments into code
  • ShaderGen: control glsl version in shader descriptor
  • Extension to replace lightingcode
  • Add comments to shaders to keep track of input files used to compose shaders
  • Tesselation Shader support
  • Support for relative paths
  • ShaderCache:
  • Added clear function
  • add function which compares shader files with the last modified timestamp
  • Add support to query static shader programs from the shader cache
  • Shader Pipeline:
  • Shader based pipeline takes the global ambient light into account now.
  • Lighting in fixed function and shader pipeline should be unified now.
  • TextureNode:
  • npot texture support in TextureNode refs #2218
  • Tools:
  • Unified color generator interfaces.
  • workaround for memory corruption, when a multisampled FBO is resized
  • New TextureBuffer class in ACG for opengl texture buffers
  • ACG Textures can now be bound to any texture slot by passing the texture unit to bind()
  • Add filter weight computation for reading from multisampled textures
  • Uniform Pool:
  • fix wrong storage type for integer uniforms
  • Mesh Tools:
  • Added function to grow edge selections.
  • Documentation:
  • Renderer tutorial
  • CORE:
  • General:
  • Output more information on crash
  • Disallow copy construction of Stackwalker
  • Improved view decoding
  • Interface:
  • PluginFunctions: Added fovy function.
  • ViewerProperties: Added const accessor for glState.
  • remove double updating of menubar it fixed crash on macos refs #2036
  • Added setViewAndWindowGeometry to core scripting functions.
  • Improved PluginFunctions::getSaveFileName
  • Function to invalidate pick caches via plugin functions.
  • IO:
  • Fixed crash in save functions, not correctly checking if the object to be saved exists
  • UI:
  • add gui elements for shader timestemp function (see options -> files) and reload shaders
  • Added F2 shortcut for Viewer Snapshot
  • QtBaseViewer:
  • Cleaned up QtBaseViewer code a bit.
  • Let the glwidget do the buffer clearing, not the renderers (simplified renderer plugins)
  • Fixed opaque rendering of background for screenshots with alpha channel
  • fix snapshot output format for transparent objects
  • Refactored glWidget::decodeView.
  • Fixed ortho projection when moving multiple objects #2234
  • PLUGINS:
  • Components:
  • Add nogui support
  • Datacontrol:
  • Allow copy and pasting of materials (Requires json support)
  • add functions for adding empty groups. thanks to Vladimir Chalupecky for providing the code closes #2219
  • update layout when object is deleted, fix ungroup-visibility problem closes #2222
  • Depth Peeling:
  • Code refactoring and cleanup
  • Front to back peeling back to work
  • User can switch between dual peeling and front to back peeling via options menu
  • Post-processor support: Output of front depth layers in hardware depth buffer
  • File-OBJ:
  • fix: load pointclouds from obj files doesn't insert a face anymore refs #1995
  • fix grouping with non manifold geometry closes #2130
  • File-PTS:
  • use default OpenFlipper settings instead of arbitrary default options for loading PTS files
  • update the viewport once a PTS file is opened
  • File-VTK:
  • fix wrong count in the POLYGONS header (Thanks to Vladimir Chalupecky for the patch)
  • Info Meshobject:
  • set minimum size of the bounding box image closes #2121
  • set minimum size for the whole window refs #2121
  • adjust size of dialog after setting all the variables
  • add scrollbar
  • reduces base height closes #2121
  • Added face valence info. (Important for PolyMeshes.)
  • MemInfo:
  • Added better measurement of free memory for Linux platforms.
  • Move:
  • no crash, if the manipulator is sized too small
  • Provide Manipulator context menu for all plugins that use a manipulator
  • Primitives:
  • Added Sphere generator based on subdivision (Thanks to Vladimir Chalupecky for the original patch). closes #2041
  • PropertyViz:
  • Added new vector viz mode.
  • Visualization (and picking) of Vec2*.
  • Remesher:
  • Fix cppcheck warning in Remesher
  • Fixed boundary errors in Remesher
  • Renderer Toon:
  • Add options dialog for toon renderer
  • Selection MeshObject:
  • patch for lasso selection of point clouds, mapping function is correct refs #2056
  • Simplified sphere mesh selection code closes #2129
  • Added trace edge path function
  • Shader Pipeline:
  • Stereo support and new buffer handling in shader pipeline renderer
  • Skeletal Animation:
  • ui updating fix refs 2046
  • Subdivider:
  • Sripting slots don't use ui anymore ( Thanks to Vladimir Chalupecky for the patch)
  • Added more user output to inform on errors or unsupported algorithms.
  • Fixed slot descriptions ( the subdivider is not a smoother ;-) )
  • Updated Vsi xml
  • Toon Shader:
  • Added new renderer plugin for toon shading
  • DATA TYPES:
  • HexahedralMesh and TypePolyHedralMesh:
  • Added convenience functions to get a hexahedral or polyhedral mesh directly from the object id. closes #2199
  • Plane Object:
  • update plane for the new renderer
  • deferred updating and creation of the plane vbo it fixes gpu crash on mac refs #1896
  • PolyLine:
  • Added preimage handling to polylines
  • Mesh Object:
  • avoid initialization of ward shader, which might cause trouble on intel graphics refs #2064
  • remove old ward shader refs #2068
  • VolumeMesh Object:
  • Fixed issue #2061 -> Comparison of boolean to itself.
  • BUILD SYSTEM:
  • set debug/release output_dir for mac with bundles enabled closes 1993
  • enable stacktrace for macos refs #2055
  • remove duplicates in the argument list of moc closes #2062
  • Find tetgen quietly, Prefer global 1.5 version of tetgen
  • Get cgal path from environment variable
  • Find 64 bit poco dir
  • Strange glut include fixed
  • Added pbr lib finder
  • Windows packaging support for VS2013 redistributable
  • Qt5: Fixed RCC Resource compiler problems (wrong path!)
  • Don't use ftgl anymore and don't warn
  • QWT6 Integration
  • Speedup for cmake generators
  • DOCUMENTATION:
  • Raised Doxygen version of files to 1.8.7
  • Added documentation for shader generator
  • update docu in ACG IRenderer.hh
  • Strange parser error in doxygen fixed

New in OpenFlipper 1.2.0 (Mar 31, 2012)

  • The new plugins in this version are:
  • Height field importer: Import images containing height fields as Triangle meshes
  • Mesh Compare: Compare Distance, Normal deviation and other mesh properties
  • Primitives Generator: Create various primitives(Spheres, icosahedron, dodecahedron,...)
  • PropertyVis: Visualize scalar or vector valued properties on meshes
  • Remesher: Adaptive and uniform remeshing
  • Render Depthpeeling: Depthpeeling renderer (transparency)
  • Render Screen Space Ambient Occlusion: Screen Space Ambient Occlusion renderer
  • Additionally some new data types have been added:
  • Hexahedral Meshes (based on OpenVolumeMesh)
  • Splat Clouds

New in OpenFlipper 1.1.0 (Oct 7, 2011)

  • ACG - SceneGraph:
  • General - Changed all nodes to use the glstate system instead of direct gl calls
  • MaterialNode - Changes to light and material dialog to set alpha channel
  • MeshNode - Fixed bug in per vertex picking buffer(was sometimes empty).
  • MeshNode - Render faces with normals defined on the mesh(and do not compute them)
  • StatusNode - Implement on demand updates (before everything was updated on a change)
  • Core:
  • File handling - Fixed load and save bug, where extensions where considered equal if prefix matched
  • General - Type iterator introduced to iterate over all currently available types
  • General - Removed process events calls from snapshots
  • General - Added threaded writing for video function (higher framerates possible due to less io waiting)
  • General - Removed the unique naming functions from file plugins (not required, horribly slow)
  • General - Removed all processEvents from core
  • General - Large speedup to mesh object updates (due to status node switch for on demand updates)
  • GUI:
  • Fixed bug causing a crash when switching between logger modes
  • Reworked log viewer animation and embedding
  • Reworked in scene toolbar integration
  • Fixed bug with transparent frame introduced with QT 4.7.3 onward
  • Added functions to hide status bar ( Ctrl+b , scripting)
  • When going to fullscreen, hide only toolbars that are currently docked
  • Reintroduced checkbox for rendering toolbar outside of scene
  • Added menus to switch between postprocessors and renderers
  • Introduced split viewer layout with two viewers next to each other
  • Set focus on right examiner when a context menu is requested
  • Icons for video capture
  • Load/Save:
  • Dont crash when we get a wrong id after adding a new object
  • Fixed bug in recent files menu which sometimes ignored the type
  • Options:
  • Fixed bug where translations could not be switched in the options dialog
  • Added sliders to options widget to support smaller screens
  • Rendering:
  • Moved flyTo animations to animation framework (no more ugly processEvents)
  • Fixed fly to animation not working when rotation ofthe viewer was locked
  • Snapshot functions now have asynchronus file writers
  • Removed philips stereo code from core ( moved into postprocessor plugin)
  • Scripting:
  • More slot documentations
  • added deleteObject function
  • Changed snapshot functions to count filenames with leading zeros
  • Added printToFile scripting function
  • Added the global function printToFile to list of scripting functions
  • Slot descriptions for global scripting functions
  • Interfaces - BaseInterface:
  • Added a drawModeChanged slot
  • Interfaces - RenderInterface:
  • New interface to replace the core rendering function with a specialized one
  • Interfaces - PostProcessorInterface:
  • Introduced new interface to add rendering postprocessors to plugins (e.g. render depth image)
  • Plugins - File OBJ:
  • Add empty object if empty file is read instead of failing
  • Fixed issue regarding vertices that belong to a specific group. Vertices are now stored globally and then copied to the group meshes on demand..
  • Plugins - File PLY:
  • PLY Reader implementation for forcing data type (required for recent files with specific type)
  • Plugins - File VTK:
  • Introduced new VTK importer/exporter plugin
  • Plugins - Post Processor Depth Image:
  • New Plugin taking depth buffer and rendering it as the final output image
  • Plugins - Post Processor Philips Stereo:
  • Postprocessor for image output on Philips autostereoscopic displays
  • Plugins - Render Picking:
  • Plugin that implements the core render picking functionality
  • Renders the picking color buffer to the screen.
  • Plugins - Scripting:
  • Added if and break to keywords
  • Added line numbers to editor and error line highlighting
  • Added statusbar and error messages with line numbers
  • Toolbar for scripting widget
  • Clear scripting window after executing core scripts
  • Scripting function to clear the script widget
  • Bring widget to front when requested
  • Online syntax checking
  • Plugins - Selection:
  • Introduce function to load selections via scripting from files
  • Fixed bug in selection plugin where sphere painter size was not updated on the fly
  • Readded button to load flipper selections
  • Fixed bug where sphere selection sometimes failed (pciking itself instead of object)
  • Plugins - SkeletonEditing:
  • Fixed flickering when adding skeleton joints
  • Plugins - Texturecontrol:
  • Don't switch drawmode when texture is switched ( ==== You have to switch the drawmode yourself in a plugin now) ===== )
  • Bugfix to react on switching to texture based drawmodes
  • Histogramm for 1d halfedge based texture coords for texture properties widget
  • Bugfix property abs (absolute value) no longer causes a parse error
  • Plugins - VSI:
  • Fixed bug where meshobjectinfo was not correctly supported
  • Build System:
  • Increased min cmake version to 2.8.5 to work around some build problems with minor versions
  • Follow links when recursivly adding sources
  • Added missing call t find_package doxygen causing per plugin docs to be skipped
  • Install ACG Library along with OpenFlipper
  • Changed name of PluginLib to OpenFlipperPluginLib
  • Added basic debian build directory