diff --git a/03-UnrealEngine/VisualEffect/Niagara Module笔记.md b/03-UnrealEngine/VisualEffect/Niagara Module笔记.md index a6016a0..360a628 100644 --- a/03-UnrealEngine/VisualEffect/Niagara Module笔记.md +++ b/03-UnrealEngine/VisualEffect/Niagara Module笔记.md @@ -48,21 +48,39 @@ Particle的Module都是c++级别写死的。基本位于`Engine\Source\Runtime\E ## Niagara里面的相关类型 ### DataInterface 基类为UNiagaraDataInterface。 -- UNiagaraDataInterface2DArrayTexture -- UNiagaraDataInterfaceVirtualTexture +- UNiagaraDataInterfaceTexture:NiagaraDataInterfaceTextureTemplate.ush + - LoadTexture2D() + - GatherRedTexture2D() + - SampleTexture2D() + - SamplePseudoVolumeTexture() + - GetTextureDimensions() + - GetNumMipLevels() +- UNiagaraDataInterface2DArrayTexture:NiagaraDataInterfaceTexture2DArrayTemplate.ush + - LoadTexture() + - GatherRedTexture() + - SampleTexture() + - TextureDimension() +- UNiagaraDataInterfaceVirtualTexture:NiagaraDataInterfaceVirtualTextureTemplate.ush + - GetAttributesValid() + - SampleRVTLayer() + - SampleRVT() ## Texture相关Module - Textures - SampleTexture - SamplePseudoVolumeTexture + - 主要调用SamplePseudoVolumeTexture() - SubUV_TextureSample + - - WorldAlignedTextureSample - SubUV - SubUVAnimation - V2 - SubUVAnimation +里面的一些节点调用一些函数,这些函数都在对应的**UNiagaraDataInterface**中的**GetFunctions()** 定义,具体的逻辑位于 对应的**xxxTemplate.ush** ## 生成的代码 +高斯3D里Niagara采用PositionTexture生成的相关代码: ```c++ int2 Emitter_SampleTexture_Texture_TextureSize; int Emitter_SampleTexture_Texture_MipLevels;