Renders a terrain with dynamic tessellation based on screen space triangle size, resulting in closer parts of the terrain getting more details than distant parts. The terrain geometry is also generated by the tessellation shader using a 16 bit height map for displacement. To improve performance the example also does frustum culling in the tessellation shader.
Based on a example called Dynamic terrain tessellation by Sascha Willems. Recreated as a DemoFramework freestyle window sample in 2016.
Command line arguments':
Argument | Description | Source |
---|---|---|
--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 |