Jump to content
  • Advertisement
Sign in to follow this  

viewpoint computation through AI

This topic is 2033 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts



   I just want to let people interested in automatically computing viewpoints in a game (e.g. replay cameras in driving games, or cinematic cameras) that there is a new open-source C++ library for that, called Smart Viewpoint Computation Lib, and available at https://bitbucket.org/rranon/smart-viewpoint-computation-lib



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:

and you want a viewpoint that visualizes the monitor, mouse and keyboard in the bottom-left room (provided each of these is an individual object in the scene). You declare that you want each object to be in the viewpoint view volume, as unoccluded by any other object as possible, and preferably of a certain size on screen. The library will return a result like this (AABBs added just to highlight the objects):

Other kinds of properties include the orientation of objects with respect to the viewpoint (i.e., camera angle in photography terms), framing an object in specific parts of the screen, and relative position on screen of two objects (e.g., one at the left of the other). In other words, you can find viewpoints like you would compose a picture, leaving to the library the task of positioning and aiming the camera.

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 comes with bindings for the Ogre open-source rendering engine. Connecting it to other rendering engines, however, requires to modify just one header file (which for Ogre consists of 500 lines of code).

If you are interested, give it a look! 



Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!