CommonLibSSE NG
BSWaterShaderMaterial.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/N/NiColor.h"
5 #include "RE/N/NiSmartPointer.h"
6 #include "RE/T/TESWaterForm.h"
7 
8 namespace RE
9 {
10  class NiSourceTexture;
11 
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_BSWaterShaderMaterial;
16 
17  ~BSWaterShaderMaterial() override; // 00::
18 
19  // override (BSShaderMaterial)
20  BSShaderMaterial* Create() override; // 01
21  void CopyMembers(BSShaderMaterial* a_other) override; // 02
22  bool DoIsCopy(BSShaderMaterial* a_other) override; // 03
23  std::uint32_t ComputeCRC32(void) override; // 04
24  BSShaderMaterial* GetDefault() override; // 05
25  Type GetType() const override; // 07 - { return Type::kWater; }
26 
27  // members
34  float sunSparklePower; // 06C
37  float sunSpecularPower; // 090
38  float reflectionAmount; // 094
39  float alpha; // 098
40  float refractionMagnitude; // 09C
41  std::uint64_t unk0A0; // 0A0
42  float unk0A8; // 0A8
43  std::uint64_t unk0B0; // 0B0
44  std::uint64_t unk0B8; // 0B8
45  std::uint64_t unk0C0; // 0C0
46  float specularPower; // 0C8
47  std::uint64_t unk0D0; // 0D0
48  std::uint64_t unk0D8; // 0D8
49  float noiseFalloff; // 0E0
50  float reflectionMagnitude; // 0E4
51  float sunSparkleMagnitude; // 0E8
52  float unk0EC; // 0EC
54  std::uint64_t unk100; // 100
55  std::uint64_t unk108; // 108
56  std::uint64_t unk110; // 100
57  std::uint64_t unk118; // 118
58  float uvScaleA[3]; // 120
59  std::uint32_t unk12C; // 12C
60  float amplitudeA[3]; // 130
61  float displacementDampener; // 13C
62  NiPlane plane; // 140
63  std::uint32_t unk150; // 150
64  float flowmapScale; // 154
65  float aboveWaterFogDistFar; // 158
66  float unk15C; // 15C
67  float unk160; // 160
68  float underwaterFogDistFar; // 164
69  float unk168; // 168
70  float underwaterFogAmount; // 16C
71  float fresnelAmount; // 170
72  std::uint32_t unk174; // 174
73  std::uint32_t unk178; // 178
74  std::uint8_t unk17C; // 17C
75  std::uint8_t unk17D; // 17D
76  std::uint8_t unk17E; // 17E
77  std::uint8_t unk17F; // 17F
78  };
79  static_assert(sizeof(BSWaterShaderMaterial) == 0x180);
80 }
Definition: BSShaderMaterial.h:9
Type
Definition: BSShaderMaterial.h:38
Definition: BSWaterShaderMaterial.h:13
NiPointer< NiSourceTexture > normalTexture1
Definition: BSWaterShaderMaterial.h:29
float unk0A8
Definition: BSWaterShaderMaterial.h:42
float sunSpecularPower
Definition: BSWaterShaderMaterial.h:37
NiPointer< NiSourceTexture > normalTexture3
Definition: BSWaterShaderMaterial.h:31
NiPointer< NiSourceTexture > normalTexture4
Definition: BSWaterShaderMaterial.h:32
std::uint64_t unk0B8
Definition: BSWaterShaderMaterial.h:44
NiPointer< NiSourceTexture > normalTexture2
Definition: BSWaterShaderMaterial.h:30
float unk0EC
Definition: BSWaterShaderMaterial.h:52
static constexpr auto RTTI
Definition: BSWaterShaderMaterial.h:15
std::uint64_t unk118
Definition: BSWaterShaderMaterial.h:57
std::uint64_t unk0D8
Definition: BSWaterShaderMaterial.h:48
NiPointer< NiSourceTexture > staticReflectionTexture
Definition: BSWaterShaderMaterial.h:28
float amplitudeA[3]
Definition: BSWaterShaderMaterial.h:60
float underwaterFogAmount
Definition: BSWaterShaderMaterial.h:70
std::uint32_t unk178
Definition: BSWaterShaderMaterial.h:73
float reflectionAmount
Definition: BSWaterShaderMaterial.h:38
bool DoIsCopy(BSShaderMaterial *a_other) override
float alpha
Definition: BSWaterShaderMaterial.h:39
float uvScaleA[3]
Definition: BSWaterShaderMaterial.h:58
float fresnelAmount
Definition: BSWaterShaderMaterial.h:71
std::uint64_t unk0A0
Definition: BSWaterShaderMaterial.h:41
float noiseFalloff
Definition: BSWaterShaderMaterial.h:49
float underwaterFogDistFar
Definition: BSWaterShaderMaterial.h:68
float sunSparklePower
Definition: BSWaterShaderMaterial.h:34
float flowmapScale
Definition: BSWaterShaderMaterial.h:64
std::uint64_t unk0C0
Definition: BSWaterShaderMaterial.h:45
float unk168
Definition: BSWaterShaderMaterial.h:69
WaterShaderData::DepthProperties depthProperties
Definition: BSWaterShaderMaterial.h:53
std::uint8_t unk17F
Definition: BSWaterShaderMaterial.h:77
std::uint8_t unk17C
Definition: BSWaterShaderMaterial.h:74
float aboveWaterFogDistFar
Definition: BSWaterShaderMaterial.h:65
BSShaderMaterial * Create() override
std::uint32_t unk12C
Definition: BSWaterShaderMaterial.h:59
std::uint8_t unk17D
Definition: BSWaterShaderMaterial.h:75
float specularPower
Definition: BSWaterShaderMaterial.h:46
void CopyMembers(BSShaderMaterial *a_other) override
std::uint64_t unk0D0
Definition: BSWaterShaderMaterial.h:47
std::uint64_t unk110
Definition: BSWaterShaderMaterial.h:56
float reflectionMagnitude
Definition: BSWaterShaderMaterial.h:50
BSShaderMaterial * GetDefault() override
std::uint64_t unk100
Definition: BSWaterShaderMaterial.h:54
std::uint64_t unk108
Definition: BSWaterShaderMaterial.h:55
NiColorA reflectionColor
Definition: BSWaterShaderMaterial.h:36
~BSWaterShaderMaterial() override
float sunSparkleMagnitude
Definition: BSWaterShaderMaterial.h:51
Type GetType() const override
std::uint32_t unk150
Definition: BSWaterShaderMaterial.h:63
std::uint64_t unk0B0
Definition: BSWaterShaderMaterial.h:43
NiPlane plane
Definition: BSWaterShaderMaterial.h:62
float displacementDampener
Definition: BSWaterShaderMaterial.h:61
std::uint8_t unk17E
Definition: BSWaterShaderMaterial.h:76
std::uint32_t ComputeCRC32(void) override
NiColor shallowWaterColor
Definition: BSWaterShaderMaterial.h:33
std::uint32_t unk174
Definition: BSWaterShaderMaterial.h:72
NiColorA deepWaterColor
Definition: BSWaterShaderMaterial.h:35
float unk15C
Definition: BSWaterShaderMaterial.h:66
float unk160
Definition: BSWaterShaderMaterial.h:67
float refractionMagnitude
Definition: BSWaterShaderMaterial.h:40
Definition: NiColor.h:276
Definition: NiColor.h:11
Definition: NiPlane.h:8
Definition: NiSmartPointer.h:9
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSWaterShaderMaterial(692060, 400104, 0x1f80738)
Definition: TESWaterForm.h:21