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