Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Core Library
Containers
Engine Classes
Node-Related Classes
Rendering-Related Classes
Physics-Related Classes
Bounds-Related Classes
GUI-Related Classes
Controls-Related Classes
Pathfinding-Related Classes
Utility Classes

AppLevel

AppLevel application is designed for rendering Unigine-based projects without any graphics hardware. It emulates DirectX 11 render capabilities entirely on CPU and supports all Unigine features used on DirectX 10.1 (by default) or DirectX 11.0 levels. AppLevel provides reasonable performance and can be used for feature testing, debugging, verifying bugs, etc.

Notice
AppLevel supports only DirectX 11 API. Software rendering is much slower if compared to the hardware-accelerated rendering performed on GPU.

Building and Launching AppLevel

By default AppLevel application uses a high-performance WARP software rasterizer and supports DirectX 10.1 feature level. To build and launch AppLevel simply follow these steps:

  1. Go to the <UnigineSDK>/source/app/AppLevel folder.
  2. Run build_x86.bat or build_x86d.bat to build 86-bit version of AppLevel (debug or release one, respectively).
  3. Rename the resulting main.exe into AppLevel_x86.exe (or AppLevel_x86d.exe). Copy it into <UnigineSDK>/bin folder.
  4. Modify any of the launchers from <UnigineSDK>/demos folder. Replace main_* with AppLevel_* to run AppLevel binary. All other required start-up options can be left unchanged.
    Shell commands
    set PATH=../bin;../lib;%PATH%
    AppLevel_x86 -data_path ../ -engine_config ../data/demos/sanctuary/unigine.cfg -system_script sanctuary/unigine.cpp
    -video_mode -1 -video_width 1024 -video_height 768 -video_multisample 0 -video_fullscreen 0

No matter what rendering API is specified in the launcher, DirectX 11 API with DirectX 10.1 feature level will always be used.

Enabling DirectX 11.0 Feature Level

To enable DirectX 11.0 feature level including tessellation and Shader Model 5.0, the default WARP software rasterizer should be replaced with a Reference rasterizer. If compared to WARP, it is significantly slower. Follow these steps to enable these features:

  1. Go to the <UnigineSDK>/source/app/common folder.
  2. Edit D3D11AppLevel.cpp in any text or code editor. You need to comment the first line (at line 152) and uncomment the second one to use Reference rasterizer instead of WARP.
    Source code(C++)
    // Comment this line:
    // warp device with feature level 10.1
    // D3D_DRIVER_TYPE type = D3D_DRIVER_TYPE_WARP;
    
    // Uncomment this line:
    // reference device with feature level 11.0
    D3D_DRIVER_TYPE type = D3D_DRIVER_TYPE_REFERENCE;
  3. Perform all the steps described above for building and launching AppLevel.

After that, AppLevel application will use DirectX 11 API and DirectX 11.0 feature level.

Last update: 2017-07-03