Skip to main content
GameDev.net gamedev.net
🔒 Locked

Smart Viewpoint Computation C++ Library (free, open source)

Started by robertoranon Apr 27, 2013 at 3:09 PM 0 replies 1.3k views
Original Post
robertoranon
robertoranon

SmartViewpointComputationLib is a C++ library to compute the best viewpoint in a 3D scene that satisfies a set of visual properties, such as size, visibility or angle of selected objects in the scene. For example, suppose you have a building floor scene like this one:

building.jpeg

and you would like a viewpoint that shows one of the computers in the rooms, say the one in the bottom left room. Let's suppose that "monitor", "keyboard", and "mouse" are the scene entities' names of that computer parts. You then create a set of properties like:
monitor: should be entirely visible from the viewpoint
monitor: should be not occluded by other objects
monitor: should be rendered at a certain minimum size
and similarly for the other keyboard and mouse. You then ask the the library to compute a viewpoint satisfying those properties, and it will return something like this:

computer.jpeg

The available properties include objects's size, angle, occlusion, and position in the image rendered from the viewpoint (also relative position of two objects, e.g. one at the right of another).

The library does not make any assumption on the scene and objects, and only require access to the scene objects' meshes and world transformations. It can return a result within a time of your choice (e.g., a few tens of milliseconds). More time will generally increase the quality of results, especially in large and complex scenes.
The library is released under the LGPL license. We also provide, as public domain code, bindings for the Ogre open-source rendering engine. Connecting it to other rendering engines, however, requires to modify just one public-domain file (which for Ogre consists of 500 lines of code).
The library is available at http://bitbucket.org/rranon/smart-viewpoint-computation-lib and, besides source code, there are two binary demos for Win and Mac demonstrating some of the library capabilities.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.