Skip to content
This repository was archived by the owner on Feb 6, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Visual Studio 2017 user specific files
.vs/

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
*.ipa

# These project files can be generated by the engine
*.xcodeproj
*.xcworkspace
*.sln
*.suo
*.opensdf
*.sdf
*.VC.db
*.VC.opendb

# Precompiled Assets
SourceArt/**/*.png
SourceArt/**/*.tga

# Binary Files
Binaries/*
Plugins/*/Binaries/*

# Builds
Build/*

# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Build/*/**
!Build/*/PakBlacklist*.txt

# Don't ignore icon files in Build
!Build/**/*.ico

# Built data for maps
*_BuiltData.uasset

# Configuration files generated by the Editor
Saved/*

# Compiled source files for the engine to use
Intermediate/*
Plugins/*/Intermediate/*

# Cache files for the editor to use
DerivedDataCache/*
67 changes: 67 additions & 0 deletions Config/DefaultEngine.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
[/Script/EngineSettings.GameMapsSettings]
GlobalDefaultGameMode=/Game/Blueprints/BP_FlockingGameMode.BP_FlockingGameMode_C
EditorStartupMap=/Game/Maps/underwater.underwater
GameDefaultMap=/Game/Maps/underwater.underwater

[/Script/Engine.PhysicsSettings]
DefaultGravityZ=-980.000000
DefaultTerminalVelocity=4000.000000
DefaultFluidFriction=0.300000
SimulateScratchMemorySize=262144
RagdollAggregateThreshold=4
TriangleMeshTriangleMinAreaThreshold=5.000000
bEnableAsyncScene=False
bEnableShapeSharing=False
bEnablePCM=True
bEnableStabilization=False
bWarnMissingLocks=True
bEnable2DPhysics=False
PhysicErrorCorrection=(PingExtrapolation=0.100000,ErrorPerLinearDifference=1.000000,ErrorPerAngularDifference=1.000000,MaxRestoredStateError=1.000000,PositionLerp=0.000000,AngleLerp=0.400000,LinearVelocityCoefficient=100.000000,AngularVelocityCoefficient=10.000000,ErrorAccumulationSeconds=0.500000,ErrorAccumulationDistanceSq=15.000000,ErrorAccumulationSimilarity=100.000000)
LockedAxis=Invalid
DefaultDegreesOfFreedom=Full3D
BounceThresholdVelocity=200.000000
FrictionCombineMode=Average
RestitutionCombineMode=Average
MaxAngularVelocity=3600.000000
MaxDepenetrationVelocity=0.000000
ContactOffsetMultiplier=0.020000
MinContactOffset=2.000000
MaxContactOffset=8.000000
bSimulateSkeletalMeshOnDedicatedServer=True
DefaultShapeComplexity=CTF_UseSimpleAndComplex
bDefaultHasComplexCollision=True
bSuppressFaceRemapTable=False
bSupportUVFromHitResults=False
bDisableActiveActors=False
bDisableKinematicStaticPairs=False
bDisableKinematicKinematicPairs=False
bDisableCCD=False
bEnableEnhancedDeterminism=False
MaxPhysicsDeltaTime=0.033333
bSubstepping=False
bSubsteppingAsync=False
MaxSubstepDeltaTime=0.016667
MaxSubsteps=6
SyncSceneSmoothingFactor=0.000000
AsyncSceneSmoothingFactor=0.990000
InitialAverageFrameRate=0.016667
PhysXTreeRebuildRate=10
DefaultBroadphaseSettings=(bUseMBPOnClient=False,bUseMBPOnServer=False,MBPBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPNumSubdivs=2)

[/Script/WindowsTargetPlatform.WindowsTargetSettings]
Compiler=Default
-TargetedRHIs=PCD3D_SM5
-TargetedRHIs=PCD3D_SM4
+TargetedRHIs=PCD3D_SM5
MinimumOSVersion=MSOS_Vista
AudioDevice=
AudioSampleRate=48000
AudioCallbackBufferFrameSize=1024
AudioNumBuffersToEnqueue=1
AudioMaxChannels=0
AudioNumSourceWorkers=4
SpatializationPlugin=
ReverbPlugin=
OcclusionPlugin=


Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "Common.usf"
#include "/Engine/Private/Common.ush"

struct TInfo{
int instanceId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ FShaderFishPluginModule::FShaderFishPluginModule(const ShaderMetaType::CompiledS
m_shaderResource.Bind(Initializer.ParameterMap, TEXT("data"));
}

void FShaderFishPluginModule::ModifyCompilationEnvironment(EShaderPlatform Platform, FShaderCompilerEnvironment& OutEnvironment)
void FShaderFishPluginModule::ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
{
FGlobalShader::ModifyCompilationEnvironment(Platform, OutEnvironment);
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
OutEnvironment.CompilerFlags.Add(CFLAG_StandardOptimization);
}

Expand All @@ -41,6 +41,11 @@ void FShaderFishPluginModule::cleanupShaderData(FRHICommandList& commandList)
commandList.SetUAVParameter(GetComputeShader(), m_shaderResource.GetBaseIndex(), FUnorderedAccessViewRHIRef());
}

IMPLEMENT_SHADER_TYPE(, FShaderFishPluginModule, TEXT("ComputeFishShader"), TEXT("VS_test"), SF_Compute);
bool FShaderFishPluginModule::ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
{
return true;
}

IMPLEMENT_SHADER_TYPE(, FShaderFishPluginModule, TEXT("/Plugin/ShaderFishPlugin/Private/ComputeFishShader.usf"), TEXT("VS_test"), SF_Compute);

IMPLEMENT_MODULE(FDefaultModuleImpl, ShaderFishPlugin)
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
#include "RHICommandList.h"

BEGIN_UNIFORM_BUFFER_STRUCT(FConstantParameters, )
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(int, fishCount)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, radiusCohesion)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, radiusSeparation)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, radiusAlignment)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, mapRangeX)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, mapRangeY)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, mapRangeZ)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, kCohesion)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, kSeparation)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, kAlignment)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, maxAcceleration)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, maxVelocity)
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(int, calculationsPerThread)
UNIFORM_MEMBER(int, fishCount)
UNIFORM_MEMBER(float, radiusCohesion)
UNIFORM_MEMBER(float, radiusSeparation)
UNIFORM_MEMBER(float, radiusAlignment)
UNIFORM_MEMBER(float, mapRangeX)
UNIFORM_MEMBER(float, mapRangeY)
UNIFORM_MEMBER(float, mapRangeZ)
UNIFORM_MEMBER(float, kCohesion)
UNIFORM_MEMBER(float, kSeparation)
UNIFORM_MEMBER(float, kAlignment)
UNIFORM_MEMBER(float, maxAcceleration)
UNIFORM_MEMBER(float, maxVelocity)
UNIFORM_MEMBER(int, calculationsPerThread)
END_UNIFORM_BUFFER_STRUCT(FConstantParameters)

BEGIN_UNIFORM_BUFFER_STRUCT(FVariableParameters, )
DECLARE_UNIFORM_BUFFER_STRUCT_MEMBER(float, DeltaTime)
UNIFORM_MEMBER(float, DeltaTime)
END_UNIFORM_BUFFER_STRUCT(FVariableParameters)

typedef TUniformBufferRef<FConstantParameters> FConstantParametersRef;
Expand All @@ -37,14 +37,17 @@ class FShaderFishPluginModule : public FGlobalShader
explicit FShaderFishPluginModule(const ShaderMetaType::CompiledShaderInitializerType& Initializer);

static bool ShouldCache(EShaderPlatform Platform) { return IsFeatureLevelSupported(Platform, ERHIFeatureLevel::SM5); }
static void ModifyCompilationEnvironment(EShaderPlatform Platform, FShaderCompilerEnvironment& OutEnvironment);
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment);

virtual bool Serialize(FArchive& Ar) override { bool bShaderHasOutdatedParams = FGlobalShader::Serialize(Ar); Ar << m_shaderResource; return bShaderHasOutdatedParams; }

void setShaderData(FRHICommandList& commandList, FUnorderedAccessViewRHIRef uav);
void setUniformBuffers(FRHICommandList& commandList, FConstantParameters& constants, FVariableParameters& variables);
void cleanupShaderData(FRHICommandList& commandList);

//Required Function in UE4.20
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters);

private:
FShaderResourceParameter m_shaderResource;
};
Loading