IncludeWindCheck

IncludeWindCheck

#Overview

name: IncludeWindCheck

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of IncludeWindCheck is to control whether wind effects should be included in the SpeedTree import process for Unreal Engine 5. This setting is specifically related to the SpeedTree importer system, which is used for importing and rendering realistic vegetation in game environments.

The SpeedTree importer plugin for Unreal Engine 5 relies on this setting variable. It is part of the USpeedTreeImportData class, which is defined in the SpeedTreeImporter module.

The value of this variable is set through the Unreal Engine editor interface. It is exposed as an editable property with the DisplayName “Include Wind” in the Materials category of the SpeedTree import settings.

This variable interacts with other SpeedTree-related variables and systems:

  1. It is used in conjunction with the IncludeVertexProcessingCheck variable, as seen in the meta data for the UPROPERTY macro.
  2. It is checked alongside the SpeedTree::CWind::GLOBAL_WIND option to determine the appropriate ESpeedTreeWindType to use during import.

Developers must be aware that:

  1. This is a boolean flag (uint32 with 1 bit) that determines whether wind effects should be processed during SpeedTree asset import.
  2. It affects the performance and visual quality of the imported SpeedTree assets.
  3. The wind type selection is dependent on both this flag and the capabilities of the imported SpeedTree asset.

Best practices when using this variable include:

  1. Consider the performance implications of enabling wind effects, especially for lower-end target platforms.
  2. Ensure that the SpeedTree assets being imported support wind effects before enabling this option.
  3. Test the visual quality and performance with and without wind effects to determine the best setting for your project.
  4. Coordinate with artists and designers to ensure that the wind effects align with the overall visual style and performance goals of the project.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:952, section: [/Script/SpeedTreeImporter.SpeedTreeImportData]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Classes/SpeedTreeImportData.h:101

Scope (from outer to inner):

file
class        class USpeedTreeImportData : public UAssetImportData

Source code excerpt:

	/**  */
	UPROPERTY(EditAnywhere, config, Category = Materials, meta = (EditCondition = "IncludeVertexProcessingCheck", DisplayName = "Include Wind"))
	uint32 IncludeWindCheck : 1;
	
	/**  */
	UPROPERTY(EditAnywhere, config, Category = Materials, meta = (EditCondition = "IncludeVertexProcessingCheck", DisplayName = "Include Smooth LOD"))
	uint32 IncludeSmoothLODCheck : 1;

	void CopyFrom(USpeedTreeImportData* Other);

#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportData.cpp:49

Scope (from outer to inner):

file
function     void USpeedTreeImportData::CopyFrom

Source code excerpt:

	IncludeSubsurface = Other->IncludeSubsurface;
	IncludeVertexProcessingCheck = Other->IncludeVertexProcessingCheck;
	IncludeWindCheck = Other->IncludeWindCheck;
	IncludeSmoothLODCheck = Other->IncludeSmoothLODCheck;
}

FSpeedTreeImportDataDetails::FSpeedTreeImportDataDetails()
{
	SpeedTreeImportData = nullptr;

#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportFactory.cpp:2060

Scope (from outer to inner):

file
function     UObject* USpeedTreeImportFactory::FactoryCreateBinary7

Source code excerpt:

				// choose wind type based on options enabled
				ESpeedTreeWindType WindType = STW_None;
				if (SpeedTreeImportData->IncludeWindCheck && Wind->IsOptionEnabled(SpeedTree::CWind::GLOBAL_WIND))
				{
					WindType = STW_Fastest;

					if (Wind->IsOptionEnabled(SpeedTree::CWind::BRANCH_DIRECTIONAL_FROND_1))
					{
						WindType = STW_Palm;