71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
---
|
||
title: Untitled
|
||
date: 2025-06-03 10:19:25
|
||
excerpt:
|
||
tags:
|
||
rating: ⭐
|
||
---
|
||
# 前言
|
||
1. ShaderWorldPCGInterop:
|
||
2. ShaderWorld:
|
||
3. ShaderWorldCore:
|
||
|
||
# ShaderWorld
|
||
- Class
|
||
- Actor
|
||
- ShaderWorldActor.h:[[#AShaderWorldActor]]
|
||
- SWorld.h:[[#ASWorld]]
|
||
|
||
## ASWorld
|
||
## AShaderWorldActor
|
||
|
||
|
||
|
||
## DrawMaterialToRenderTarget
|
||
USWorldSubsystem::DrawMaterialToRenderTarget
|
||
=>
|
||
SWShaderToolBox::DrawMaterial
|
||
=>
|
||
DrawMaterial_CS_RT
|
||
|
||
调用路径:
|
||
- AShaderWorldActor::RetrieveHeightAt(好像没有引用):检索高度
|
||
- AShaderWorldActor::ComputeHeight_Segmented_MapForClipMap
|
||
- AShaderWorldActor::ProcessSegmentedComputation() <- AShaderWorldActor::TerrainAndSpawnablesManagement() <- AShaderWorldActor::Tick()
|
||
- AShaderWorldActor::ComputeHeightMapForClipMap
|
||
- AShaderWorldActor::UpdateClipMap() <- AShaderWorldActor::TerrainAndSpawnablesManagement() <- AShaderWorldActor::Tick()
|
||
- AShaderWorldActor::ComputeDataLayersForClipMap
|
||
- AShaderWorldActor::UpdateClipMap() <- AShaderWorldActor::TerrainAndSpawnablesManagement() <- AShaderWorldActor::Tick()
|
||
- AShaderWorldActor::UpdateCollisionMeshData:更新碰撞模型数据。
|
||
- AShaderWorldActor::CollisionGPU() <- AShaderWorldActor::CollisionManagement() <- AShaderWorldActor::Tick()
|
||
- FSpawnableMesh::UpdateSpawnableData
|
||
- AShaderWorldActor::ProcessSegmentedComputation() <- AShaderWorldActor::TerrainAndSpawnablesManagement() <- AShaderWorldActor::Tick()
|
||
|
||
|
||
## Cache机制
|
||
AShaderWorldActor::ProcessSegmentedComputation() <- AShaderWorldActor::TerrainAndSpawnablesManagement() <- AShaderWorldActor::Tick()
|
||
|
||
|
||
# 其他Bug
|
||
CacheMatDyn?
|
||
MatDyn?
|
||
|
||
## SetTextureParameterValue相关逻辑排查
|
||
- AShaderWorldActor中的SetTextureParameterValue
|
||
- ~~ExportCacheInBounds~~
|
||
- ~~AssignHeightMapToDynamicMaterial~~
|
||
- UpdateStaticDataFor
|
||
- ComputeHeight_Segmented_MapForClipMap:似乎会设置
|
||
- UpdateCollisionMeshData
|
||
- InitializeReadBackDependencies
|
||
- InitiateMaterials
|
||
|
||
|
||
### ComputeHeight_Segmented_MapForClipMap
|
||
|
||
|
||
|
||
### InitiateMaterials
|
||
初始化`TArray<FClipMapMeshElement> Meshes;`的Material、`Producers`
|
||
BeginPlay() -> InitiateWorld() -> InitiateMaterials()
|