IncludeVertexProcessingCheck
IncludeVertexProcessingCheck
#Overview
name: IncludeVertexProcessingCheck
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 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of IncludeVertexProcessingCheck is to control whether vertex processing should be included in the SpeedTree material import process for Unreal Engine 5. This setting is specifically related to the SpeedTree importer, which is used for importing and processing tree and vegetation assets.
This setting variable is primarily used within the SpeedTree Importer plugin, which is part of the Unreal Engine editor tools. It’s utilized in the material creation process for SpeedTree assets.
The value of this variable is set through the Unreal Engine editor interface, specifically in the import settings for SpeedTree assets. It’s defined as a UPROPERTY in the USpeedTreeImportData class, which means it can be edited in the editor and saved in configuration files.
IncludeVertexProcessingCheck interacts with other variables in the SpeedTree import process, such as:
- IncludeWindCheck: This is enabled only if IncludeVertexProcessingCheck is true.
- IncludeSmoothLODCheck: This affects how the LOD (Level of Detail) type is set when vertex processing is included.
Developers should be aware that:
- This setting significantly affects the material creation process for SpeedTree assets.
- It’s only applicable when importing SpeedTree version 8 assets, as indicated by the SpeedTreeVersion meta tag.
- Enabling this option may increase the complexity of the generated materials, which could impact performance.
Best practices when using this variable include:
- Only enable it when necessary, as it can increase material complexity.
- Consider the performance implications, especially for mobile or lower-end platforms.
- Use it in conjunction with other SpeedTree import settings to achieve the desired balance between visual quality and performance.
- Test the imported assets thoroughly in different scenarios to ensure the setting provides the desired results without undue performance cost.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:951, section: [/Script/SpeedTreeImporter.SpeedTreeImportData]
- INI Section:
/Script/SpeedTreeImporter.SpeedTreeImportData
- Raw value:
false
- Is Array:
False
#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:97
Scope (from outer to inner):
file
class class USpeedTreeImportData : public UAssetImportData
Source code excerpt:
/** */
UPROPERTY(EditAnywhere, config, Category = Materials, meta = (EditCondition = "MakeMaterialsCheck", DisplayName = "Include Vertex Processing", SpeedTreeVersion = "8"))
uint32 IncludeVertexProcessingCheck : 1;
/** */
UPROPERTY(EditAnywhere, config, Category = Materials, meta = (EditCondition = "IncludeVertexProcessingCheck", DisplayName = "Include Wind"))
uint32 IncludeWindCheck : 1;
/** */
#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportData.cpp:48
Scope (from outer to inner):
file
function void USpeedTreeImportData::CopyFrom
Source code excerpt:
IncludeColorAdjustment = Other->IncludeColorAdjustment;
IncludeSubsurface = Other->IncludeSubsurface;
IncludeVertexProcessingCheck = Other->IncludeVertexProcessingCheck;
IncludeWindCheck = Other->IncludeWindCheck;
IncludeSmoothLODCheck = Other->IncludeSmoothLODCheck;
}
FSpeedTreeImportDataDetails::FSpeedTreeImportDataDetails()
{
#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportData.cpp:102
Scope (from outer to inner):
file
function void FSpeedTreeImportDataDetails::CustomizeDetails
Source code excerpt:
MakeMaterialsCheckProp->SetOnPropertyValueChanged(FSimpleDelegate::CreateSP(this, &FSpeedTreeImportDataDetails::OnForceRefresh));
TSharedRef<IPropertyHandle> IncludeVertexProcessingCheckProp = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(USpeedTreeImportData, IncludeVertexProcessingCheck));
IncludeVertexProcessingCheckProp->SetOnPropertyValueChanged(FSimpleDelegate::CreateSP(this, &FSpeedTreeImportDataDetails::OnForceRefresh));
//Hide all properties, we will show them in the correct order with the correct grouping
for (TSharedRef<IPropertyHandle> Handle : MaterialCategoryDefaultProperties)
{
DetailLayout.HideProperty(Handle);
#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportFactory.cpp:897
Scope (from outer to inner):
file
function UMaterialInterface* CreateSpeedTreeMaterial7
Source code excerpt:
}
if (SpeedTreeImportData->IncludeVertexProcessingCheck && !RenderState->m_bRigidMeshesPresent)
{
UMaterialExpressionSpeedTree* SpeedTreeExpression = NewObject<UMaterialExpressionSpeedTree>(UnrealMaterial);
SpeedTreeExpression->LODType = (SpeedTreeImportData->IncludeSmoothLODCheck ? STLOD_Smooth : STLOD_Pop);
SpeedTreeExpression->WindType = WindType;
#Loc: <Workspace>/Engine/Plugins/Editor/SpeedTreeImporter/Source/SpeedTreeImporter/Private/SpeedTreeImportFactory.cpp:1270
Scope (from outer to inner):
file
function UMaterialInterface* CreateSpeedTreeMaterial8
Source code excerpt:
// SpeedTree node
if (SpeedTreeImportData->IncludeVertexProcessingCheck)
{
UMaterialExpressionSpeedTree* SpeedTreeExpression = NewObject<UMaterialExpressionSpeedTree>(UnrealMaterial);
SpeedTreeExpression->LODType = (bCrossfadeLOD ? STLOD_Pop : STLOD_Smooth);
SpeedTreeExpression->WindType = WindType;
SpeedTreeExpression->BillboardThreshold = 1.0f; // billboards use crossfade technique now in v8
SpeedTreeExpression->GeometryType = GeomType;