Skip to content

Latest commit

 

History

History

ObjectSelection

Shows how to select (pick) 3d objects using the mouse via Axis Aligned Bounding Boxes (AABB).

Beware that AABB's often represent quite a rough fit and therefore is best used as a quick way to determine if there might be a collision and then utilize a more precise calculation to verify it.

The sample has a first person camera so use 'wasd' to move around and hold 'right mouse button' to look around.

The app can be controlled using:

Key Result
O Toggle draw oriented bounding boxes on/off
B Toggle draw axis aligned bounding boxes on/off
N Toggle draw new plane cross on/off
F Toggle draw far plane cross on/off

Command line arguments':

Argument Description Source
--AABB <arg> Draw the Axis Aligned Bounding Boxes on/off Demo
--FarPlaneMouse <arg> Draw the far plane mouse intersection on/off Demo
--NearPlaneMouse <arg> Draw the near plane mouse intersection on/off Demo
--OBB <arg> Draw the Oriented Bounding Boxes on/off Demo
--Objects <arg> Specify the number of objects to generate Demo
--RandomSeed Use a random seed for the scene generation instead of a fixed one Demo
--ActualDpi <arg> ActualDpi [x,y] Override the actual dpi reported by the native window DemoHost
--DensityDpi <arg> DensityDpi <number> Override the density dpi reported by the native window DemoHost
--DisplayId <arg> DisplayId <number> DemoHost
--LogExtensions Output the extensions to the log DemoHost
--LogLayers Output the layers to the log DemoHost
--LogSurfaceFormats Output the supported surface formats to the log DemoHost
--VkApiDump Enable the VK_LAYER_LUNARG_api_dump layer. DemoHost
--VkPhysicalDevice <arg> Set the physical device index. DemoHost
--VkPresentMode <arg> Override the present mode with the supplied value. Known values: VK_PRESENT_MODE_IMMEDIATE_KHR (0), VK_PRESENT_MODE_MAILBOX_KHR (1), VK_PRESENT_MODE_FIFO_KHR (2), VK_PRESENT_MODE_FIFO_RELAXED_KHR (3), VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR (1000111000), VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR (1000111001) DemoHost
--VkScreenshot <arg> Enable/disable screenshot support (defaults to enabled) DemoHost
--VkValidate <arg> Enable/disable the VK_LAYER_LUNARG_standard_validation layer. DemoHost
--Window <arg> Window mode [left,top,width,height] DemoHost
--AppFirewall Enable the app firewall, reporting crashes on-screen instead of exiting DemoHostManager
--ContentMonitor Monitor the Content directory for changes and restart the app on changes.WARNING: Might not work on all platforms and it might impact app performance (experimental) DemoHostManager
--ExitAfterDuration <arg> Exit after the given duration has passed. The value can be specified in seconds or milliseconds. For example 10s or 10ms. DemoHostManager
--ExitAfterFrame <arg> Exit after the given number of frames has been rendered DemoHostManager
--ForceUpdateTime <arg> Force the update time to be the given value in microseconds (can be useful when taking a lot of screen-shots). If 0 this option is disabled DemoHostManager
--LogStats Log basic rendering stats (this is equal to setting LogStatsMode to latest) DemoHostManager
--LogStatsMode <arg> Set the log stats mode, more advanced version of LogStats. Can be disabled, latest, average DemoHostManager
--ScreenshotFormat <arg> Chose the format for the screenshot: bmp, jpg, png (default), tga DemoHostManager
--ScreenshotFrequency <arg> Create a screenshot at the given frame frequency DemoHostManager
--ScreenshotNamePrefix <arg> Chose the screenshot name prefix (defaults to 'Screenshot') DemoHostManager
--ScreenshotNameScheme <arg> Chose the screenshot name scheme: frame (default), sequence, exact. DemoHostManager
--Stats Display basic frame profiling stats DemoHostManager
--StatsFlags <arg> Select the stats to be displayed/logged. Defaults to frame|cpu. Can be 'frame', 'cpu' or any combination DemoHostManager
--Version Print version information DemoHostManager
--Graphics.Profile Enable graphics service stats GraphicsService
--Profiler.AverageEntries <arg> The number of frames used to calculate the average frame-time. Defaults to: 60 ProfilerService
--ghelp <arg> Display option groups: all, demo or host base
-h, --help Display options base
-v, --verbose Enable verbose output base