MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Draw

Method Draw

Source/Engine/Level/Actors/DirectionalLight.cpp:17–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15}
16
17void DirectionalLight::Draw(RenderContext& renderContext)
18{
19 float brightness = Brightness;
20 AdjustBrightness(renderContext.View, brightness);
21 Float3 position;
22 if (Brightness > ZeroTolerance
23 && EnumHasAnyFlags(renderContext.View.Flags, ViewFlags::DirectionalLights)
24 && EnumHasAnyFlags(renderContext.View.Pass, DrawPass::GBuffer)
25 && CheckViewDistance(renderContext.View.Position, renderContext.View.Origin, position, brightness))
26 {
27 RenderDirectionalLightData data;
28 data.Position = position;
29 data.MinRoughness = MinRoughness;
30 data.ShadowsDistance = ShadowsDistance;
31 data.Color = Color.ToFloat3() * (Color.A * brightness);
32 data.ShadowsStrength = ShadowsStrength;
33 data.Direction = GetDirection();
34 data.ShadowsFadeDistance = ShadowsFadeDistance;
35 data.ShadowsNormalOffsetScale = ShadowsNormalOffsetScale;
36 data.ShadowsDepthBias = ShadowsDepthBias;
37 data.ShadowsSharpness = ShadowsSharpness;
38 data.VolumetricScatteringIntensity = VolumetricScatteringIntensity;
39 data.IndirectLightingIntensity = IndirectLightingIntensity;
40 data.CastVolumetricShadow = CastVolumetricShadow;
41 data.ShadowsUpdateRate = ShadowsUpdateRate;
42 data.ShadowFrame = _invalidateShadowFrame;
43 data.ShadowsResolution = (int32)ShadowsResolution;
44 data.ShadowsUpdateRateAtDistance = ShadowsUpdateRateAtDistance;
45 data.ShadowsMode = ShadowsMode;
46 data.CascadeCount = CascadeCount;
47 data.Cascade1Spacing = Cascade1Spacing;
48 data.Cascade2Spacing = Cascade2Spacing;
49 data.Cascade3Spacing = Cascade3Spacing;
50 data.Cascade4Spacing = Cascade4Spacing;
51 data.PartitionMode = PartitionMode;
52 data.ContactShadowsLength = ContactShadowsLength;
53 data.StaticFlags = GetStaticFlags();
54 data.ID = GetID();
55 data.ScreenSize = 1.0f;
56 renderContext.List->DirectionalLights.Add(data);
57 }
58}
59
60void DirectionalLight::Serialize(SerializeStream& stream, const void* otherObj)
61{

Callers

nothing calls this directly

Calls 7

EnumHasAnyFlagsFunction · 0.85
CheckViewDistanceFunction · 0.85
GetDirectionFunction · 0.85
GetStaticFlagsFunction · 0.85
GetIDFunction · 0.85
ToFloat3Method · 0.45
AddMethod · 0.45

Tested by

no test coverage detected