diff options
| author | nvjingham <[email protected]> | 2018-11-07 18:37:49 -0800 |
|---|---|---|
| committer | nvjingham <[email protected]> | 2018-11-07 18:37:49 -0800 |
| commit | ea1d75a6f310c90c571c758683daf4187fe654a9 (patch) | |
| tree | 8c59f01736e80ebb470e4dc3bf667ffb3b9c73f6 /docs/Ansel_integration_guide.md | |
| parent | Updating Ansel SDK (diff) | |
| download | anselsdk-ea1d75a6f310c90c571c758683daf4187fe654a9.tar.xz anselsdk-ea1d75a6f310c90c571c758683daf4187fe654a9.zip | |
Updating Ansel SDK to v1.6
Diffstat (limited to 'docs/Ansel_integration_guide.md')
| -rw-r--r-- | docs/Ansel_integration_guide.md | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/docs/Ansel_integration_guide.md b/docs/Ansel_integration_guide.md index 3c5b30a..8cca8eb 100644 --- a/docs/Ansel_integration_guide.md +++ b/docs/Ansel_integration_guide.md @@ -137,12 +137,13 @@ The `ansel::setConfiguration` function returns its status. The possible return v };
```
-The integration should only continue as normal (with regard to the Ansel functionality at least) when `kSetConfigurationSuccess` is returned. In case `kSetConfigurationIncompatibleVersion` is returned, most likely the Ansel SDK binary was obtained without updating the headers, which also contain a version. Every update of the Ansel SDK requires a new build of a game. In case `kSetConfigurationIncorrectConfiguration` is returned, on of the following fields could be set incorrectly:
+The integration should only continue as normal (with regard to the Ansel functionality at least) when `kSetConfigurationSuccess` is returned. In case `kSetConfigurationIncompatibleVersion` is returned, most likely the Ansel SDK binary was obtained without updating the headers, which also contain a version. Every update of the Ansel SDK requires a new build of a game. In case `kSetConfigurationIncorrectConfiguration` is returned, one of the following fields could be set incorrectly:
* `right`, `up`, `forward` vectors do not form an orthogonal basis
* `startSessionCallback` or `stopSessionCallback` is nullptr
* rotational or translational speed multipliers are zero
* `fovType` is neither horizontal, nor vertical
* `gameWindowHandle` field is not set
+
In case `kSetConfigurationSdkNotLoaded` is returned, the reason is that the Ansel SDK is delay loaded and `setConfiguration` is called before loading the library via `loadAnselSDKLibrary` (see code under samples folder).
### 2.2 SESSION
@@ -414,7 +415,7 @@ To identify the HDR buffer for Ansel call `markBufferBind` before binding the bu ### 2.5 USER CONTROLS
Sometimes a game developer is willing to expose some of the game properties in the Ansel UI. One example of this could be a checkbox allowing to hide and unhide the main character. Another example would be a slider allowing changing the amount of in-game depth of field effect or any other effect. To achieve that the Ansel SDK provides an optional User controls API.
-{width=25% height=25%}
+
The basics of the API look like this:
@@ -490,6 +491,23 @@ ansel::StartSessionStatus startAnselSessionCallback( ```
+### 2.6 HIGH QUALITY CAPTURES
+Ansel exposes an optional callback function and configuration fields for the application to switch to a high-quality rendering mode, allowing users to easily take pictures with better quality than they would be able to realistically use in actual gameplay. The configuration now contains a field for this callback:
+
+```
+configuration.changeQualityCallback = changeAnselQualityCallback;
+```
+
+`changeQualityCallback` is an application-provided callback function that Ansel will call when it wants to change the quality level (either to raise it or lower it). When the feature is enabled in on the driver side, Ansel will call `changeQualityCallback(true)` when it detects that the camera has stopped moving, and `changeQualityCallback(false)` when it detects that the camera has started moving again. This way, the user is able to position the camera smoothly and only suffers the performance penalty of higher quality rendering when the camera is positioned for the shot.
+
+The application can choose to interpret "high quality" however it wants in the `changeQualityCallback`. The simplest approach would be to turn all in-game settings to the highest possible values. Alternatively or in addition, the application could individually tweak specific rendering options, such as...
+* Increasing texture resolution/quality
+* For games with ray tracing, shooting more rays per effect
+* Increasing shadow map resolution
+* Increasing tessellation factors
+* Increasing draw distance
+* Increasing particle counts
+
## 3. TAKING PICTURES WITH ANSEL
### 3.1 ACTIVATING AND DEACTIVATING ANSEL
|