meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
releasenotes_9.1.1 [2022/08/15 17:07]
king
releasenotes_9.1.1 [2022/08/18 10:55] (current)
steph.jorgensen
Line 1: Line 1:
-====== Version 9.1.1 ====== +====== Version  9.1.1 ======
-This is the first release of the SpeedTree Games SDK to correspond with SpeedTree Modeler 9.+
  
-Why is this version 9.1.1 and not 9.0.0? The release of the SDK generally lags the release of the Modeler. In this case, it lagged it a lot. The development team tries to keep the Modeler and SDK versions in sync and the Modeler is releasing version 9.1.1 parallel to the release of this SDK, so they’re both version 9.1.1. This reduces the confusion we sometimes see over compatibility between the Modeler and SDK.+This is the first release of the SpeedTree Games SDK to correspond with SpeedTree Modeler 9. There is no version 9.0.0
  
-===== New Features and Updates ===== +The SDK did not receive any sweeping changes between major versions 8 and 9. The updates center around a new wind algorithm and how shaders are loaded in the reference application. 
-The SDK did not receive any sweeping changes between major versions 8 and 9. The bulk of the updates center around a new wind algorithm and how shaders are loaded in the reference application. + 
-  * **New STSDK Format.** The v9 STSDK file format is not compatible with the v8 STSDK format, so all older tree models will have to be recompiled to use with the v9 SDK. +Games Modeler version 9.1.1 and newer is required for model compilation against the 9.1.1 SDK. 
-  * **Modeler Compatibility.** Games Modeler version 9.1.1 and newer is required for compilation against the 9.1.1 SDK. + 
-  * **Visual Studio 2022 Now Supported.** All Visual Studio SpeedTree source projects are now available for versions 2022, 2019, 2017, and 2015. Older Visual Studio SpeedTree projects are no longer available. +===== Features ===== 
-  * **New Wind System.** The wind system has been updated to use a more flexible algorithm, handling wind on a wider variety of trees (e.g. palm trees), providing two levels of branch wind (as opposed to one in version 8), and can be made to run solely on the GPU with no involvement from the C++ wind class other than to advance time. It should be noted that the system is still controlled by a central C++ wind class, a set of vertex shaders, and per-vertex wind data. Multiple wind options can be toggled at compile time including branch1 and branch2 wind, global/shared windripple, and shimmer effects+ 
-  * **New Shader Naming/Loading Approach.*When loading shaders to render STSDK geometry, the reference application now uses the name of the vertex packer selected on STSDK-export from the Modeler application. This is demonstrated in the function MyRenderStateCallback() in MyPopulate.cpp in the reference application. For example, if an STSDK file was exported with the Standard” vertex packer for 3D geometry and Standard_Billboard” for the billboard geometry, the reference application will attempt to load standard_vs.hlsl and standard_ps.hlsl for 3D geometry and standard_billboard_vs.hlsl and standard_billboard_ps.hlsl for the billboard geometry.\\ \\ This approach provides more flexibility in the types of geometry rendered in the forest. Users can add any type of vertex definition they’d like. Using the new 9.0 wind system as an example, two different packers could be created: one that used only one level of branch wind and another that used two levels. The single-level packer would have a smaller vertex and an associated shader with fewer wind instructions.\\ \\ Please note that developers can implement any scheme they choose. The reference application is just one working example. +  * Introduced a new .stsdk format. The v9 .stsdk file format is not compatible with the v8 .stsdk format. All older tree models will have to be recompiled to use with the v9 SDK. 
-  * **New Reference Shader Names.** The example shaders used with the reference application have been renamed in accordance with the new shader-loading scheme outlined in the previous bulletSome example name changes: \\  + 
-    * 3d_trees_vs.hlsl -> standard_vs.hlsl +===== Improvements ===== 
-    * billboards_vs.hlsl -> standard_billboard.hlsl + 
-    * grass_vs.hlsl -> standard_grass_vs.hlsl +  * Added support for Visual Studio 2022. All Visual Studio SpeedTree source projects are now available for versions 2022, 2019, 2017, and 2015. Older Visual Studio SpeedTree projects are no longer available. 
-    * grass_fogged_vs.hlsl -> standard_grass_fogged.hlsl +  * Updated the wind system to use a more flexible algorithm. The system remains configurable where multiple wind options can be toggled at compile time including branch1 and branch2 windglobal/shared wind, ripple, and shimmer effects. The wind system now also does the following: 
-  * **Reference Shader Updates.** Most of the example reference application shaders are the same as version 8, but there are a few differences including+    * Handles wind on a wider variety of trees (for example, palm trees) 
-    * Renamed as noted above.+    * Provides two levels of branch wind (as opposed to one in version 8) 
 +    * Can be made to run solely on the GPU with no involvement from the C++ wind class other than to advance time. It should be noted that the system is still controlled by a central C++ wind class, a set of vertex shaders, and per-vertex wind data.     
 +  * Added SRGB support so all texture loading classes now take a LINEAR/SRGB input for interpreting textures on load. 
 +  * OpenGL updates: 
 +      * Cleaned up the DDS and TGA texture loaders in the OpenGL renderer: 
 +        * DDS now respects the LINEAR/SRGB flag and uses the SDK callback system for binary file loading and heap allocation. 
 +        * TGA has all the changes the DDS loader doesand the class interface is also greatly simplified. Instead of multiple unused member functionsit now uses a single static function to both load the TGA and create the corresponding texture
 +      Improved shader loading error messages. 
 +      Fixed errors in the imgui console so they now display properly when the scene fails to load (required a decent rework of MyMainOpenGL.cpp). 
 +     Updated Vertex packersVertex packers in the Modeler application updated to support the new wind system. Sample vertex shaders in the reference application were adjusted to match. 
 + 
 +===== Changes ===== 
 + 
 +  Changed the shader naming and loading approach in the reference application.  When loading shaders to render .stsdk geometry, the reference application now uses the name of the vertex packer selected on .stsdk export from the Modeler. This approach provides more flexibility in the types of geometry rendered in the forest and lets you add any type of vertex definition. Using the new v9 wind system as an example, you can create two different packers: one that uses only one level of branch wind and another that uses two levels. The single-level packer has a smaller vertex and an associated shader with fewer wind instructions. 
 +    * Loading example: This change is demonstrated in the function MyRenderStateCallback() in MyPopulate.cpp in the reference application. For example, if an .stsdk file is exported with the Standard vertex packer for 3D geometry and Standard_Billboard for the billboard geometry, the reference application attempts to load ''standard_vs.hlsl'' and ''standard_ps.hlsl'' for 3D geometry and ''standard_billboard_vs.hlsl'' and ''standard_billboard_ps.hlsl'' for the billboard geometry. Please note that developers can implement any scheme they choose. The reference application is just one working example. 
 +     * New reference shader names: The example shaders used with the reference application have been renamed in accordance with the new shader-loading scheme. Here are some example name changes:  
 +      ''3d_trees_vs.hlsl'' ''standard_vs.hlsl'' 
 +      ''billboards_vs.hlsl'' ''standard_billboard.hlsl'' 
 +      ''grass_vs.hlsl'' ''standard_grass_vs.hlsl'' 
 +      ''grass_fogged_vs.hlsl'' ''standard_grass_fogged.hlsl'' 
 +  * Updated the example shaders in the reference application. Most of the example shaders are the same as version 8, but there are a few differences: 
 +    * The example shaders have been renamed, as noted above.
     * Vertex definitions and packing correspond to the updated Modeler vertex packers, changed for wind.     * Vertex definitions and packing correspond to the updated Modeler vertex packers, changed for wind.
-    * New wind code, mostly contained in WindShader_Sdk.h. +    * They have new wind code, mostly contained in ''WindShader_Sdk.h.'' 
-  * **SRGB Support.** All texture loading classes now take a LINEAR/SRGB input for interpreting textures on load. +  * Core Library Changes: 
-  * **OpenGL updates:** +    * Raised ''ST_MAX_NUM_STSDK_MATERIAL_MAPS'' from 5 to 16. The number of material maps in an .stsdk is variable, but the maximum the SDK will support is now 16. 
-    * Substantial clean up to the DDS and TGA texture loaders in the OpenGL renderer: +    * Rewrote the ''CFileWindConfig class'' to reflect the new wind system. 
-      * DDS now respects the LINEAR/SRGB flag and uses the SDK callback system for binary file loading and heap allocation. +    * Increased the default size of ''CFixedString'' from 256 to 512 characters.
-      * TGA has all the changes the DDS loader does, but the class interface was also greatly simplified. It was reduced from a handful of unused member functions to a single static function that both loads the TGA and creates the corresponding texture. +
-    * Improved shader loading error messages. +
-    * Errors in the imgui console now display properly when the scene fails to load (required a decent rework of MyMainOpenGL.cpp). +
-  * **Updated Vertex Packers.** Vertex packers in the Modeler application updated to support the new wind system. +
-  * **Core Library Changes:** +
-    * ST_MAX_NUM_STSDK_MATERIAL_MAPS has been raised from 5 to 16. The number of material maps in an STSDK is variable, but the maximum the SDK will support is now 16. +
-    * The CFileWindConfig class has been completely rewritten to reflect the new wind system. +
-    * CFixedString’s default size increased from 256 to 512 characters.+