diff --git a/code/Terrain/OceanComponent.cpp b/code/Terrain/OceanComponent.cpp
index e07d50ea3..02d1ce296 100644
--- a/code/Terrain/OceanComponent.cpp
+++ b/code/Terrain/OceanComponent.cpp
@@ -61,17 +61,17 @@ const render::Handle s_handleOcean_WaveTexture1(L"Ocean_WaveTexture1");
const render::Handle s_handleOcean_WaveTexture2(L"Ocean_WaveTexture2");
const render::Handle s_handleOcean_WaveTexture3(L"Ocean_WaveTexture3");
const render::Handle s_handleOcean_TileIndex(L"Ocean_TileIndex");
+const render::Handle s_handleOcean_Tile(L"Ocean_Tile");
const render::Handle s_handleWorld_Time(L"World_Time");
#pragma pack(1)
struct OceanVertex
{
float pos[2];
- float edge;
};
#pragma pack()
-const uint32_t c_gridSize = 1024;
+const uint32_t c_gridSize = 512;
const uint32_t c_gridInfSize = c_gridSize / 8;
const uint32_t c_gridCells = (c_gridSize - 1) * (c_gridSize - 1);
@@ -115,7 +115,6 @@ bool OceanComponent::create(resource::IResourceManager* resourceManager, render:
AlignedVector< render::VertexElement > vertexElements;
vertexElements.push_back(render::VertexElement(render::DataUsage::Position, render::DtFloat2, offsetof(OceanVertex, pos)));
- vertexElements.push_back(render::VertexElement(render::DataUsage::Custom, render::DtFloat1, offsetof(OceanVertex, edge)));
m_vertexLayout = renderSystem->createVertexLayout(vertexElements);
m_vertexBuffer = renderSystem->createBuffer(render::BuVertex, c_gridSize * c_gridSize * sizeof(OceanVertex), false);
@@ -128,20 +127,11 @@ bool OceanComponent::create(resource::IResourceManager* resourceManager, render:
for (int32_t iz = 0; iz < c_gridSize; ++iz)
{
const float fz = float(iz) * 2.0f / c_gridSize - 1.0f;
- const float ez0 = clamp(1.0f - float(iz) / c_gridInfSize, 0.0f, 1.0f);
- const float ez1 = clamp(1.0f - float(c_gridSize - 1 - iz) / c_gridInfSize, 0.0f, 1.0f);
-
for (int32_t ix = 0; ix < c_gridSize; ++ix)
{
const float fx = float(ix) * 2.0f / c_gridSize - 1.0f;
- const float ex0 = clamp(1.0f - float(ix) / c_gridInfSize, 0.0f, 1.0f);
- const float ex1 = clamp(1.0f - float(c_gridSize - 1 - ix) / c_gridInfSize, 0.0f, 1.0f);
- const float f = std::pow(max(max(ex0, ex1), max(ez0, ez1)), 8);
-
vertex->pos[0] = fx;
vertex->pos[1] = fz;
- vertex->edge = lerp(100.0f, 10000.0f, f);
-
vertex++;
}
}
@@ -456,8 +446,8 @@ void OceanComponent::build(
}
const Transform transform = m_owner->getTransform() * Transform(Vector4(0.0f, m_elevation, 0.0f, 0.0f));
- const Vector4 lastEye = worldRenderView.getLastView().inverse().translation().xyz1();
- const Vector4 eye = worldRenderView.getView().inverse().translation().xyz1();
+ //const Vector4 lastEye = worldRenderView.getLastView().inverse().translation().xyz1();
+ //const Vector4 eye = worldRenderView.getView().inverse().translation().xyz1();
// Render ocean geometry.
auto perm = worldRenderPass.getPermutation(m_shader);
@@ -466,58 +456,65 @@ void OceanComponent::build(
if (!sp)
return;
- auto renderBlock = renderContext->allocNamed< render::SimpleRenderBlock >(L"Ocean");
- renderBlock->distance = std::numeric_limits< float >::max();
- renderBlock->program = sp.program;
- renderBlock->indexBuffer = m_indexBuffer->getBufferView();
- renderBlock->indexType = render::IndexType::UInt32;
- renderBlock->vertexBuffer = m_vertexBuffer->getBufferView();
- renderBlock->vertexLayout = m_vertexLayout;
- renderBlock->primitives = m_primitives;
-
- renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
- renderBlock->programParams->beginParameters(renderContext);
- renderBlock->programParams->setFloatParameter(s_handleOcean_Opacity, m_opacity);
- renderBlock->programParams->setVectorParameter(s_handleOcean_Eye, eye);
- renderBlock->programParams->setVectorParameter(s_handleOcean_LastEye, lastEye);
- renderBlock->programParams->setVectorParameter(s_handleOcean_ShallowTint, m_shallowTint);
- renderBlock->programParams->setVectorParameter(s_handleOcean_DeepColor, m_deepColor);
-
- if (!writeVelocity)
- {
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture0, m_evolvedSpectrumTextures[0]);
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture1, m_evolvedSpectrumTextures[1]);
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture2, m_foamTexture);
- }
- else
+ for (int32_t iz = -2; iz <= 2; ++iz)
{
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture0, m_evolvedSpectrumTextures[0]);
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture1, m_evolvedSpectrumTextures[1]);
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture2, m_evolvedSpectrumTextures[2]);
- renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture3, m_evolvedSpectrumTextures[3]);
- }
+ for (int32_t ix = -2; ix <= 2; ++ix)
+ {
+ auto renderBlock = renderContext->allocNamed< render::SimpleRenderBlock >(L"Ocean");
+ renderBlock->distance = std::numeric_limits< float >::max();
+ renderBlock->program = sp.program;
+ renderBlock->indexBuffer = m_indexBuffer->getBufferView();
+ renderBlock->indexType = render::IndexType::UInt32;
+ renderBlock->vertexBuffer = m_vertexBuffer->getBufferView();
+ renderBlock->vertexLayout = m_vertexLayout;
+ renderBlock->primitives = m_primitives;
- if (haveTerrain)
- {
- const auto& terrain = terrainComponent->getTerrain();
+ renderBlock->programParams = renderContext->alloc< render::ProgramParameters >();
+ renderBlock->programParams->beginParameters(renderContext);
+ renderBlock->programParams->setFloatParameter(s_handleOcean_Opacity, m_opacity);
+ //renderBlock->programParams->setVectorParameter(s_handleOcean_Eye, eye);
+ //renderBlock->programParams->setVectorParameter(s_handleOcean_LastEye, lastEye);
+ renderBlock->programParams->setVectorParameter(s_handleOcean_ShallowTint, m_shallowTint);
+ renderBlock->programParams->setVectorParameter(s_handleOcean_DeepColor, m_deepColor);
+ renderBlock->programParams->setVectorParameter(s_handleOcean_Tile, Vector4(ix, 0.0f, iz, 0.0f));
+
+ if (!writeVelocity)
+ {
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture0, m_evolvedSpectrumTextures[0]);
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture1, m_evolvedSpectrumTextures[1]);
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture2, m_foamTexture);
+ }
+ else
+ {
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture0, m_evolvedSpectrumTextures[0]);
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture1, m_evolvedSpectrumTextures[1]);
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture2, m_evolvedSpectrumTextures[2]);
+ renderBlock->programParams->setTextureParameter(s_handleOcean_WaveTexture3, m_evolvedSpectrumTextures[3]);
+ }
- const Vector4& worldExtent = terrain->getHeightfield()->getWorldExtent();
- const Vector4 worldOrigin = -worldExtent * 0.5_simd;
+ if (haveTerrain)
+ {
+ const auto& terrain = terrainComponent->getTerrain();
- renderBlock->programParams->setVectorParameter(s_handleTerrain_WorldOrigin, worldOrigin);
- renderBlock->programParams->setVectorParameter(s_handleTerrain_WorldExtent, worldExtent);
- renderBlock->programParams->setTextureParameter(s_handleTerrain_Heightfield, terrain->getHeightMap());
- }
+ const Vector4& worldExtent = terrain->getHeightfield()->getWorldExtent();
+ const Vector4 worldOrigin = -worldExtent * 0.5_simd;
- worldRenderPass.setProgramParameters(
- renderBlock->programParams,
- transform,
- transform
- );
+ renderBlock->programParams->setVectorParameter(s_handleTerrain_WorldOrigin, worldOrigin);
+ renderBlock->programParams->setVectorParameter(s_handleTerrain_WorldExtent, worldExtent);
+ renderBlock->programParams->setTextureParameter(s_handleTerrain_Heightfield, terrain->getHeightMap());
+ }
- renderBlock->programParams->endParameters(renderContext);
+ worldRenderPass.setProgramParameters(
+ renderBlock->programParams,
+ transform,
+ transform
+ );
- renderContext->draw(sp.priority, renderBlock);
+ renderBlock->programParams->endParameters(renderContext);
+
+ renderContext->draw(sp.priority, renderBlock);
+ }
+ }
}
}
diff --git a/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi b/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
index 2f3e314e7..8f51a740f 100644
--- a/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
+++ b/data/Source/System/Terrain/Ocean/Shaders/Ocean.xdi
@@ -12,32 +12,12 @@
Matrix
Frame
- -
- {28DF02C7-A4C6-FE49-A2AF-1C3067BDCC63}
-
-
- 844
- -475
-
- Ocean_Eye
- Vector
- Draw
-
- -
- {5EB1A808-AB18-EE45-9E22-B94DF9FE5976}
-
-
- 1075
- -489
-
- x0z
-
-
{8AA18707-44AC-2644-8B41-ED4A2140AB74}
- 308
- -460
+ 190
+ -358
World_World
Matrix
@@ -47,37 +27,25 @@
{C8A35F03-174D-CD40-B5D7-753769D81BF5}
- 532
- -453
+ 446
+ -347
-
{25735986-B103-0646-BF3A-0BF787649D9B}
- 762
- -410
+ 739
+ -321
0y0
- -
- {6A94DF8D-E1C7-2844-A9D1-46F399E6258E}
-
-
- 299
- -570
-
- Edge
- Custom
- DtFloat1
- 0
-
-
{9172DF46-5E10-BA42-8DA5-7576BFD7DE9A}
- 280
- -616
+ 207
+ -615
Position
Position
@@ -88,16 +56,16 @@
{45C8764D-14B1-B54D-AFB0-5D6C4764C06C}
- 534
- -619
+ 461
+ -618
-
{D42BBBE2-6C3C-1B48-97A2-78711C016116}
- 773
- -563
+ 671
+ -586
x0y
@@ -109,14 +77,6 @@
-612
- -
- {CBA14370-2168-DB40-811A-AA0B8407882E}
-
-
- 1286
- -574
-
-
-
{8DD3F147-650E-D340-BFCE-06BBB28FC70F}
@@ -312,8 +272,8 @@
{11033B75-D663-EF4C-931D-3E9930075BEC}
- 5922
- 806
+ 5349
+ 662
Ocean_Opacity
Scalar
@@ -741,8 +701,8 @@
{8057415D-3D90-5B4A-9616-AE44A69E5C93}
- 1571
- -582
+ 1315
+ -576
L_BaseWorldPosition
@@ -1085,8 +1045,8 @@
{2392BDB6-7FA5-5F42-9FB8-2DDDEE167E06}
- 5906
- 844
+ 5333
+ 700
Ocean_DeepColor
Vector
@@ -1516,8 +1476,8 @@ $Output = vec4(scatter, 0.0f);
{80FCC1B8-DB38-8246-B0C5-E0195C55CFDB}
- 6175
- 939
+ 6143
+ 956
0.5
@@ -1644,40 +1604,12 @@ Dummy
-410
- -
- {FC94FE7F-8F95-8440-9DAC-B31CA16779A8}
-
-
- 1276
- -368
-
-
- -
- {BFFB4AC0-17F6-5B46-BBB5-B6F91A33847B}
-
-
- 834
- -269
-
- Ocean_LastEye
- Vector
- Draw
-
- -
- {A85B5061-7E12-374A-8356-D6C1B7ABB3C2}
-
-
- 1065
- -283
-
- x0z
-
-
{181A5D81-B3E3-1D46-81F6-D5D3F2FB9946}
- 1549
- -388
+ 1325
+ -379
L_LastBaseWorldPosition
@@ -2005,86 +1937,81 @@ $Output = vec4(r * -0.05f, 0.0f);
673
+ -
+ {B8655422-628E-394A-B33D-970F754CED96}
+
+
+ 259
+ -558
+
+ 500
+
+ -
+ {EEFF6D5B-70D2-AB46-B4E9-B42CD4385764}
+
+
+ 285
+ -517
+
+ Ocean_Tile
+ Vector
+ Draw
+
+ -
+ {9B89538B-61FE-F345-AF0F-4D1023C50C76}
+
+
+ 482
+ -503
+
+
+ -
+ {72AC5B51-CB6A-A54B-80CD-4F68424A146A}
+
+
+ 265
+ -453
+
+ 500
+
+ -
+ {3275587E-4619-E64E-8011-0536026EAD2D}
+
+
+ 679
+ -514
+
+
- -
-
-
- {70C35B91-1C36-454C-98EC-7514AACF73C8}
-
-
-
- {BFBE8191-F6E6-4A4F-A2CC-6CBC1D19BF70}
-
-
-
- {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
+ {70C35B91-1C36-454C-98EC-7514AACF73C8}
- {3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
- -
-
-
- {ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
-
-
- {3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
- -
-
-
- {BD91C9E9-9950-4EC8-BAD2-60D2E8699107}
-
-
-
- {D2D716D6-C4A1-471F-894A-D718515F6281}
+ {BFBE8191-F6E6-4A4F-A2CC-6CBC1D19BF70}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{516A331D-8EF6-4354-A29B-214078F183FC}
-
- {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
- -
-
- {1E6639B6-8B58-4694-99E7-C058E3583522}
-
-
-
- {69B552F1-EBCF-4393-8967-DD2A7D9A9C3A}
-
-
- -
-
-
- {ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
-
-
- {9F45B2C3-B513-4646-B0C1-663748FD169C}
+ {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
@@ -2094,7 +2021,7 @@ $Output = vec4(r * -0.05f, 0.0f);
- {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
+ {69B552F1-EBCF-4393-8967-DD2A7D9A9C3A}
-
@@ -2103,1470 +2030,1500 @@ $Output = vec4(r * -0.05f, 0.0f);
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{A8A5B244-60B8-694D-B957-7F4E53EA9C65}
-
+
{AA571ACC-7699-4D10-BCD7-4E857EFB35EA}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{8C41D88A-1D17-4237-B720-CCC0B7FF71B9}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{FFE19E4E-24A8-47A4-AE80-307495E31066}
-
+
{32EB5230-1F0D-40B8-93F6-9C8E5469454E}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{6D5C5EFE-A35C-4748-B81E-B8EBACE433BC}
-
-
+
{8FFB3BDB-A00E-4406-994C-0D52FAF04871}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
+
{C9223159-9DF2-46A9-B0F2-D0D7D5BEE6F7}
-
+
{3E538F69-C85C-44E2-9320-73F876288BAE}
-
-
+
{853B6F75-1464-40E7-BEDC-2716C763046E}
-
+
{C9CC095B-00C6-4A84-88B5-2455115CAF9C}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{32EB5230-1F0D-40B8-93F6-9C8E5469454E}
-
-
+
{AF6C971B-D67A-42EE-A12B-97D36927C89F}
-
+
{8760B263-C70C-46BA-9E97-A3D6B08941E9}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{82B29CCB-606C-2D40-BFB1-61A801861DF0}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{99E003AF-999D-4AC3-AF6E-397B5B356E97}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{B9FF4045-892D-49D6-814B-0587812583B5}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{24E97134-2FDB-4E95-B7D6-EF81F3E17837}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{7331EB56-B549-F54D-8AB5-4634E4C1EFAD}
-
-
+
{15053FB1-8C13-4C18-8958-193FEDDCFB11}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{98BF7CC4-A80C-43DA-B7FD-21BA4C039E28}
-
-
+
{D74E3627-9E70-4BAD-A6CE-2087D41D6ED7}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{0AAE2EAE-B01B-425A-A8C3-539576B45ECC}
-
-
+
{8591EE56-8A3E-41CF-8E98-8F8DB26AABDC}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
- {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
-
-
- {11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
- -
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{17CACE84-6798-2B44-A575-4A44864947B5}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{F0CBF543-3ABA-D346-B737-070FE06DBEC9}
-
-
+
{BD91C9E9-9950-4EC8-BAD2-60D2E8699107}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{335AF6FD-1E3E-A545-B933-1479607B86CF}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{A62A00A9-83D9-5546-9E26-6D5A40821D7E}
-
-
+
{507BE00F-8299-7B42-AB67-10C2D5B5AC67}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{37007839-EF02-2147-9676-C1C38A214D0F}
-
-
+
{5B7C7641-8FAF-364C-8CB3-A875601E73EE}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{3ABDCC1D-F1BC-134E-A3EE-5E8786652058}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{6D9C5BED-2B3B-3546-B807-CD618017F552}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{DE98332B-0513-442C-B08C-234969B7C79F}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{A30C6A23-2170-447A-A127-17A60A09574F}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{4B2822D0-4D9A-4BBB-9956-A996493EE672}
-
+
{92AA3735-BB4C-4541-81DA-AC500930B2E6}
-
-
+
{8FFB3BDB-A00E-4406-994C-0D52FAF04871}
-
+
{A1DDB166-9422-45A3-AE93-6702275DAD1C}
-
-
+
{08532144-809B-4726-A819-F8E3F9CF7515}
-
+
{A1DDB166-9422-45A3-AE93-6702275DAD1C}
-
-
+
{08532144-809B-4726-A819-F8E3F9CF7515}
-
+
{92AA3735-BB4C-4541-81DA-AC500930B2E6}
-
-
+
{9D9FA2FC-9298-4A6F-88A9-A055F8A91F52}
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{DE98332B-0513-442C-B08C-234969B7C79F}
-
-
+
{9D9FA2FC-9298-4A6F-88A9-A055F8A91F52}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{0D78442F-AA88-4B95-A497-E86A86E07FB8}
-
+
{EC9AE568-7089-4B8D-9874-73DE5599266E}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{FE413452-19EB-4DC9-B724-2984FA17CC20}
-
-
+
{AF6C971B-D67A-42EE-A12B-97D36927C89F}
-
+
{7ACEE4C2-A92D-4E50-BFAE-C1D744BEE5E0}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{23884C5F-C5F7-D740-8B40-5341707D99BC}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{0FF6511C-0293-41A8-860E-81978BD01F7F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{0FF6511C-0293-41A8-850E-81978BD01F7F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{0FF6511C-0293-41A8-860E-81978BD01F7F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{0FF6511C-0293-41A8-860E-81978BD01F7F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{0FF6511C-0293-41A8-870E-81978BD01F7F}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{0FF6511C-0293-41A8-880E-81978BD01F7F}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{0FF6511C-0293-41A8-890E-81978BD01F7F}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{ACC77B35-91B5-4405-ABC8-D0DA24D68178}
-
+
{0FF6511C-0293-41A8-830E-81978BD01F7F}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{0FF6511C-0293-41A8-840E-81978BD01F7F}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{CBDE6E1E-A483-4046-B62E-5346B9FF6660}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{632BD6A0-E960-DC48-9A1F-AE642F41F9EB}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{CA8375B2-168C-0045-ABCF-DA4550D675E7}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{930C2917-F7C9-8C44-B249-27A70B16C9F6}
-
-
+
{D7D2B884-8C20-B341-A7B6-C827641FAABF}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
+
{8760B263-C70C-46BA-9E97-A3D6B08941E9}
-
-
+
{0D78442F-AA88-4B95-A497-E86A86E07FB8}
-
+
{7ACEE4C2-A92D-4E50-BFAE-C1D744BEE5E0}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{116EE63B-0949-0347-B9C5-D9834FC44784}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{FF2E57B8-213A-EC4E-B121-DB4F3B40DE20}
-
-
- {4F10C0E3-F820-457F-AB7D-CFDF2AA3C69A}
-
-
-
- {90C5E751-255B-124C-8D6E-CD25D2B57F04}
-
-
- -
-
-
+
{AF6C971B-D67A-42EE-A12B-97D36927C89F}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{5A25771B-894F-4D92-8D1E-FBF8449850E8}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{E20F65BD-1750-4B62-A70F-5D1A0C22A2D8}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{989F14A3-559A-6547-86AC-547520992458}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{5A25771B-894F-4D92-8D1E-FBF8449850E8}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{8760B263-C70C-46BA-9E97-A3D6B08941E9}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{7ACEE4C2-A92D-4E50-BFAE-C1D744BEE5E0}
-
-
+
{0D78442F-AA88-4B95-A497-E86A86E07FB8}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
- {4F10C0E3-F820-457F-AB7D-CFDF2AA3C69A}
-
-
-
- {D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
- -
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{8F2140B5-F4E2-4E8F-8121-13C980250D3C}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{F0CBF543-3ABA-D346-B737-070FE06DBEC9}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{A62A00A9-83D9-5546-9E26-6D5A40821D7E}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{37007839-EF02-2147-9676-C1C38A214D0F}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{17CACE84-6798-2B44-A575-4A44864947B5}
-
-
- {ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
-
-
- {3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
- -
-
-
- {ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
-
-
- {9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
- -
-
-
- {1E6639B6-8B58-4694-99E7-C058E3583522}
-
-
-
- {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
- -
-
-
- {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
-
-
- {3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
- -
-
-
- {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
-
-
- {11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
- -
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{335AF6FD-1E3E-A545-B933-1479607B86CF}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{71A0310C-3928-44C3-8D4F-7D9AFF9EAE70}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{05706B00-0F9C-4DBA-B455-9D4E0D96ACD2}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{0664FBEF-CF9D-724A-90D1-BEAB3A517019}
-
-
+
{1E6639B6-8B58-4694-99E7-C058E3583522}
-
+
{0664FBEF-CF9D-724A-90D1-BEAB3A517019}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{70C35B91-1C36-454C-98EC-7514AACF73C8}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{345BDBFA-3326-40BF-B9DE-8ECA78A3EEF4}
-
-
+
{6B0EBF94-A421-EB45-AE66-6C2ACECEF50D}
-
+
{AA571ACC-7699-4D10-BCD7-4E857EFB35EA}
-
-
+
{6B0EBF94-A421-EB45-AE66-6C2ACECEF50D}
-
+
{8C41D88A-1D17-4237-B720-CCC0B7FF71B9}
-
-
+
{FFE19E4E-24A8-47A4-AE80-307495E31066}
-
+
{BDB32F7B-599C-42C8-A2CE-2B1BD0738E8B}
-
-
+
{D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
-
+
{D2D716D6-C4A1-471F-894A-D718515F6281}
-
-
+
{2D90AB77-694C-4586-AA05-5CF062EFFFAB}
-
+
{69997292-C813-490C-910C-620B9AD3A2BB}
-
-
+
{9E839249-E9B9-4736-8BDD-A95A1C892B42}
-
+
{9BA81525-6E53-498C-AA97-B31FB48F3A50}
-
-
+
{2D90AB77-694C-4586-AA05-5CF062EFFFAB}
-
+
{55606599-DA57-584A-9A22-85DB6F4829EF}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{8FFB3BDB-A00E-4406-994C-0D52FAF04871}
-
+
{E23CF1C9-F916-D24B-815A-CC7E01284D75}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{8FFB3BDB-A00E-4406-994C-0D52FAF04871}
-
+
{E23CF1C9-F916-D24B-815A-CC7E01284D75}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{D3B5F4D8-D054-F740-BB89-11CC0AB7F510}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{22B8EE58-2845-314E-BFDA-E792A95C09DA}
-
-
+
{BC06BB80-ECA8-C241-86CF-1EB033FE5141}
-
+
{F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{9F45B2C3-B513-4646-B0C1-663748FD169C}
-
-
+
{3B01355D-9153-4864-9B56-7D55F801BFF3}
-
+
{3DE04294-4DEA-4A13-A460-2274647357EA}
-
-
+
{32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
-
+
{6D5C5EFE-A35C-4748-B81E-B8EBACE433BC}
-
-
+
{ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
-
+
{93DEEDC9-D4C7-47F8-8D6A-A79DABD6BA6A}
-
-
+
{8FFB3BDB-A00E-4406-994C-0D52FAF04871}
-
+
{11585EBC-914D-4E6D-A10D-D01694FF9840}
-
-
+
{84BF3C26-64A7-4032-B775-1D369052B243}
-
+
{5A25771B-894F-4D92-8D1E-FBF8449850E8}
-
-
+
{25E94043-C1B8-794D-8327-6864707AAFAB}
-
+
{7174FE5A-D079-4452-AFEF-9FC2BCC2900F}
+ -
+
+
+ {4F10C0E3-F820-457F-AB7D-CFDF2AA3C69A}
+
+
+
+ {D2D716D6-C4A1-471F-894A-D718515F6281}
+
+
+ -
+
+
+ {4F10C0E3-F820-457F-AB7D-CFDF2AA3C69A}
+
+
+
+ {90C5E751-255B-124C-8D6E-CD25D2B57F04}
+
+
+ -
+
+
+ {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
+
+
+
+ {D2D716D6-C4A1-471F-894A-D718515F6281}
+
+
+ -
+
+
+ {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
+
+
+
+ {11585EBC-914D-4E6D-A10D-D01694FF9840}
+
+
+ -
+
+
+ {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
+
+
+
+ {11585EBC-914D-4E6D-A10D-D01694FF9840}
+
+
+ -
+
+
+ {1E6639B6-8B58-4694-99E7-C058E3583522}
+
+
+
+ {69997292-C813-490C-910C-620B9AD3A2BB}
+
+
+ -
+
+
+ {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7}
+
+
+
+ {D2D716D6-C4A1-471F-894A-D718515F6281}
+
+
+ -
+
+
+ {ADB4FC1D-3726-4CC5-B4D5-1E2468274325}
+
+
+
+ {3DE04294-4DEA-4A13-A460-2274647357EA}
+
+
+ -
+
+
+ {9E839249-E9B9-4736-8BDD-A95A1C892B42}
+
+
+
+ {9F45B2C3-B513-4646-B0C1-663748FD169C}
+
+
+ -
+
+
+ {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
+
+
+
+ {3DE04294-4DEA-4A13-A460-2274647357EA}
+
+
+ -
+
+
+ {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2}
+
+
+
+ {3DE04294-4DEA-4A13-A460-2274647357EA}
+
+
-
@@ -3589,8 +3546,8 @@ $Output = vec4(r * -0.05f, 0.0f);
-696
- 1746
- 522
+ 1466
+ 496
-