Kolja Strohm 5 years ago
parent
commit
e85a856518
5 changed files with 3466 additions and 2864 deletions
  1. 2 6
      DX12GraphicsApi.cpp
  2. 1835 1338
      DX12PixelShader.h
  3. 4 5
      DX12PixelShader.hlsl
  4. 1625 1512
      DX12VertexShader.h
  5. 0 3
      DX12VertexShader.hlsl

+ 2 - 6
DX12GraphicsApi.cpp

@@ -730,8 +730,9 @@ void DirectX12::beginFrame( bool fill2D, bool fill3D, int fillColor )
     barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES;
 
     directCommandQueue->getCommandList()->ResourceBarrier( 1, &barrier );
-    directCommandQueue->getCommandList()->RSSetScissorRects( 1, allowedRenderArea );
 
+    if( fill2D )
+        uiTextur->zBild()->setFarbe( fillColor );
     if( fill3D )
     {
         float color[ 4 ];
@@ -748,8 +749,6 @@ void DirectX12::beginFrame( bool fill2D, bool fill3D, int fillColor )
         directCommandQueue->getCommandList()->OMSetRenderTargets( 1, &rtv, 0, 0 );
         directCommandQueue->getCommandList()->ClearRenderTargetView( rtv, color, 0, 0 );
     }
-    directCommandQueue->getCommandList()->SetPipelineState( pipeline );
-    directCommandQueue->getCommandList()->SetGraphicsRootSignature( signature );
     int lc[] = { 0, 0 };
     pixelShader->füllConstBuffer( (char *)lc, 4, sizeof( int ) * 2 );
 }
@@ -787,7 +786,6 @@ void DirectX12::renderObject( Model3D * zObj )
         if( indexBuffer->getElementLength() == 1 )
             f = DXGI_FORMAT_R8_UINT;
         indexBufferView->Format = f;
-        copyCommandQueue->execute();
         if( t )
         {
             /*ID3D11ShaderResourceView *v[ 3 ];
@@ -828,7 +826,6 @@ void DirectX12::renderObject( Model3D * zObj )
             //directCommandQueue->getCommandList()->DrawIndexedInstanced( indexBuffer->getElementAnzahl(), 1, 0, 0, 0 );
         }
         ind++;
-        directCommandQueue->execute();
     }
 }
 
@@ -914,7 +911,6 @@ void DirectX12::presentFrame()
     if( vertexShader )
         vertexShader->füllConstBuffer( (char *)viewAndProj, 0, sizeof( Mat4< float > ) * 2 );
 
-    directCommandQueue->execute();
     uiTextur->updateTextur();
 
     if( fenster && !IsIconic( fenster->getFensterHandle() ) )

+ 1835 - 1338
DX12PixelShader.h

@@ -3,12 +3,30 @@
 // Generated by Microsoft (R) HLSL Shader Compiler 10.1
 //
 //
+// Buffer Definitions: 
+//
+// cbuffer Object
+// {
+//
+//   struct Material
+//   {
+//       
+//       float ambientFactor;           // Offset:    0
+//       float diffusFactor;            // Offset:    4
+//       float specularFactor;          // Offset:    8
+//
+//   } Object;                          // Offset:    0 Size:    12
+//
+// }
+//
+//
 // Resource Bindings:
 //
 // Name                                 Type  Format         Dim      ID      HLSL Bind  Count
 // ------------------------------ ---------- ------- ----------- ------- -------------- ------
 // SampleType                        sampler      NA          NA      S0             s0      1 
 // shaderTexture                     texture  float4          2d      T0             t0      1 
+// Object                            cbuffer      NA          NA     CB0            cb3      1 
 //
 //
 //
@@ -30,10 +48,12 @@
 //
 ps_5_1
 dcl_globalFlags refactoringAllowed | skipOptimization
+dcl_constantbuffer CB0[3:3][1], immediateIndexed, space=0
 dcl_sampler S0[0:0], mode_default, space=0
 dcl_resource_texture2d (float,float,float,float) T0[0:0], space=0
 dcl_input_ps linear v2.xy
 dcl_output o0.xyzw
+dcl_temps 3
 //
 // Initial variable locations:
 //   v0.x <- input.worldPos.x; v0.y <- input.worldPos.y; v0.z <- input.worldPos.z; v0.w <- input.worldPos.w; 
@@ -42,60 +62,128 @@ dcl_output o0.xyzw
 //   v3.x <- input.normal.x; v3.y <- input.normal.y; v3.z <- input.normal.z; 
 //   o0.x <- <main return value>.x; o0.y <- <main return value>.y; o0.z <- <main return value>.z; o0.w <- <main return value>.w
 //
-#line 103 "C:\Users\kolja\OneDrive\Desktop\Kolja-Strohm-Games\Allgemein\Framework\DX12PixelShader.hlsl"
-sample o0.xyzw, v2.xyxx, T0[0].xyzw, S0[0]
+#line 79 "C:\Users\kolja\OneDrive\Desktop\Kolja-Strohm-Games\Allgemein\Framework\DX12PixelShader.hlsl"
+itof r0.xyz, l(0, 0, 0, 0)  // r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z <- diffuseLight.z
+
+#line 80
+itof r1.xyz, l(0, 0, 0, 0)  // r1.x <- specularLight.x; r1.y <- specularLight.y; r1.z <- specularLight.z
+
+#line 100
+sample r2.xyzw, v2.xyxx, T0[0].xyzw, S0[0]  // r2.x <- materialColor.x; r2.y <- materialColor.y; r2.z <- materialColor.z; r2.w <- materialColor.w
+
+#line 101
+mul r2.xyz, r2.xyzx, CB0[3][0].xxxx
+mul r0.xyz, r0.xyzx, CB0[3][0].yyyy
+add r0.xyz, r0.xyzx, r2.xyzx
+mul r1.xyz, r1.xyzx, CB0[3][0].zzzz
+add r0.xyz, r0.xyzx, r1.xyzx
+max r0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
+min r0.xyz, r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)  // r0.x <- textureColor.x; r0.y <- textureColor.y; r0.z <- textureColor.z
+
+#line 102
+mov r2.w, r2.w  // r2.w <- textureColor.w
+
+#line 103
+mov o0.xyz, r0.xyzx
+mov o0.w, r2.w
 ret 
-// Approximately 2 instruction slots used
+// Approximately 14 instruction slots used
 #endif
 
 const BYTE DX12PixelShaderBytes[] =
 {
-     68,  88,  66,  67, 232, 228, 
-    100, 210,  48, 171, 203,  87, 
-     50, 101, 162, 238,  99, 154, 
-     19,  21,   1,   0,   0,   0, 
-     16,  81,   0,   0,   6,   0, 
+     68,  88,  66,  67,  50, 203, 
+    113,  34,  31,  55, 227, 120, 
+     90, 126,  26, 106,  48,  10, 
+     12, 229,   1,   0,   0,   0, 
+    184,  91,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
-     16,   1,   0,   0, 168,   1, 
-      0,   0, 220,   1,   0,   0, 
-    108,   2,   0,   0,   8,   3, 
+     36,   2,   0,   0, 188,   2, 
+      0,   0, 240,   2,   0,   0, 
+     20,   5,   0,   0, 176,   5, 
       0,   0,  82,  68,  69,  70, 
-    208,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,  60,   0, 
+    228,   1,   0,   0,   1,   0, 
+      0,   0, 212,   0,   0,   0, 
+      3,   0,   0,   0,  60,   0, 
       0,   0,   1,   5, 255, 255, 
-      5,   5,   0,   0, 165,   0, 
+      5,   5,   0,   0, 188,   1, 
       0,   0,  19,  19,  68,  37, 
      60,   0,   0,   0,  24,   0, 
       0,   0,  40,   0,   0,   0, 
      40,   0,   0,   0,  36,   0, 
       0,   0,  12,   0,   0,   0, 
-      0,   0,   0,   0, 140,   0, 
+      0,   0,   0,   0, 180,   0, 
       0,   0,   3,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 151,   0,   0,   0, 
+      0,   0, 191,   0,   0,   0, 
       2,   0,   0,   0,   5,   0, 
       0,   0,   4,   0,   0,   0, 
     255, 255, 255, 255,   0,   0, 
       0,   0,   1,   0,   0,   0, 
      12,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     83,  97, 109, 112, 108, 101, 
-     84, 121, 112, 101,   0, 115, 
-    104,  97, 100, 101, 114,  84, 
-    101, 120, 116, 117, 114, 101, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     49,  48,  46,  49,   0, 171, 
-    171, 171,  73,  83,  71,  78, 
+    205,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101,  84, 121, 
+    112, 101,   0, 115, 104,  97, 
+    100, 101, 114,  84, 101, 120, 
+    116, 117, 114, 101,   0,  79, 
+     98, 106, 101,  99, 116,   0, 
+    205,   0,   0,   0,   1,   0, 
+      0,   0, 236,   0,   0,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    205,   0,   0,   0,   0,   0, 
+      0,   0,  12,   0,   0,   0, 
+      2,   0,   0,   0, 152,   1, 
+      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,  77,  97, 
+    116, 101, 114, 105,  97, 108, 
+      0,  97, 109,  98, 105, 101, 
+    110, 116,  70,  97,  99, 116, 
+    111, 114,   0, 102, 108, 111, 
+     97, 116,   0, 171, 171, 171, 
+      0,   0,   3,   0,   1,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  43,   1,   0,   0, 
+    100, 105, 102, 102, 117, 115, 
+     70,  97,  99, 116, 111, 114, 
+      0, 115, 112, 101,  99, 117, 
+    108,  97, 114,  70,  97,  99, 
+    116, 111, 114,   0,  29,   1, 
+      0,   0,  52,   1,   0,   0, 
+      0,   0,   0,   0,  88,   1, 
+      0,   0,  52,   1,   0,   0, 
+      4,   0,   0,   0, 101,   1, 
+      0,   0,  52,   1,   0,   0, 
+      8,   0,   0,   0,   5,   0, 
+      0,   0,   1,   0,   3,   0, 
+      0,   0,   3,   0, 116,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     20,   1,   0,   0,  77, 105, 
+     99, 114, 111, 115, 111, 102, 
+    116,  32,  40,  82,  41,  32, 
+     72,  76,  83,  76,  32,  83, 
+    104,  97, 100, 101, 114,  32, 
+     67, 111, 109, 112, 105, 108, 
+    101, 114,  32,  49,  48,  46, 
+     49,   0,  73,  83,  71,  78, 
     144,   0,   0,   0,   4,   0, 
       0,   0,   8,   0,   0,   0, 
     104,   0,   0,   0,   0,   0, 
@@ -130,47 +218,113 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,  83,  86,  95,  84, 
      65,  82,  71,  69,  84,   0, 
     171, 171,  83,  72,  69,  88, 
-    136,   0,   0,   0,  81,   0, 
-      0,   0,  34,   0,   0,   0, 
-    106, 136,   0,   1,  90,   0, 
-      0,   6,  70, 110,  48,   0, 
+     28,   2,   0,   0,  81,   0, 
+      0,   0, 135,   0,   0,   0, 
+    106, 136,   0,   1,  89,   0, 
+      0,   7,  70, 142,  48,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  90,   0,   0,   6, 
+     70, 110,  48,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   7,  70, 126,  48,   0, 
+      0,   0,  88,  24,   0,   7, 
+     70, 126,  48,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  85,  85, 
       0,   0,   0,   0,   0,   0, 
-     85,  85,   0,   0,   0,   0, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   2,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  69,   0,   0,  11, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      2,   0,   0,   0,  70, 126, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  96, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    148,   0,   0,   0,   2,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   2,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   3,   0, 
+      0,   0,  43,   0,   0,   8, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  43,   0, 
+      0,   8, 114,   0,  16,   0, 
+      1,   0,   0,   0,   2,  64, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     69,   0,   0,  11, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,  16,  16,   0,   2,   0, 
+      0,   0,  70, 126,  32,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  96,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  56,   0,   0,   9, 
+    114,   0,  16,   0,   2,   0, 
+      0,   0,  70,   2,  16,   0, 
+      2,   0,   0,   0,   6, 128, 
+     48,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  56,   0,   0,   9, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  86, 133, 
+     48,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   2,   0,   0,   0, 
+     56,   0,   0,   9, 114,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,   2,  16,   0,   1,   0, 
+      0,   0, 166, 138,  48,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      1,   0,   0,   0,  52,   0, 
+      0,  10, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  51,   0,   0,  10, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0, 128,  63, 
+      0,   0, 128,  63,   0,   0, 
+    128,  63,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,  54,   0,   0,   5, 
+    114,  32,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,  32,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 148,   0,   0,   0, 
+     14,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   7,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -179,18 +333,18 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  83,  80,  68,  66, 
-      0,  78,   0,   0,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  67,  47,  67,  43, 
-     43,  32,  77,  83,  70,  32, 
-     55,  46,  48,  48,  13,  10, 
-     26,  68,  83,   0,   0,   0, 
-      0,   2,   0,   0,   2,   0, 
-      0,   0,  39,   0,   0,   0, 
-    188,   0,   0,   0,   0,   0, 
-      0,   0,  36,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  83,  80, 
+     68,  66,   0,  86,   0,   0, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  67,  47, 
+     67,  43,  43,  32,  77,  83, 
+     70,  32,  55,  46,  48,  48, 
+     13,  10,  26,  68,  83,   0, 
+      0,   0,   0,   2,   0,   0, 
+      2,   0,   0,   0,  43,   0, 
+      0,   0, 200,   0,   0,   0, 
+      0,   0,   0,   0,  39,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -266,7 +420,8 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    192, 255, 255, 255, 255, 255, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 192, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
@@ -351,8 +506,8 @@ const BYTE DX12PixelShaderBytes[] =
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
-    255, 255,  56,   0,   0,   0, 
-    224, 255, 255, 255, 255, 255, 
+    255, 255, 255, 255,  56,   0, 
+      0,   0,   0, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
@@ -436,13 +591,12 @@ const BYTE DX12PixelShaderBytes[] =
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255,   5,   0, 
-      0,   0,  32,   0,   0,   0, 
-     60,   0,   0,   0,   0,   0, 
-      0,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,   5,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255, 255, 255, 
+      5,   0,   0,   0,  32,   0, 
+      0,   0,  60,   0,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      6,   0,   0,   0,   5,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -522,8 +676,8 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -607,18 +761,18 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 148,  46,  49,   1, 
-     58,  62,  92,  92,   1,   0, 
-      0,   0, 116,  17,  92, 154, 
-    100,  80, 124,  74, 180,  71, 
-    202, 147, 113, 214,  11,  18, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 148,  46, 
+     49,   1, 109,  80,  92,  92, 
+      1,   0,   0,   0,  60, 197, 
+    217, 234, 105,   6, 196,  75, 
+    178,   2,  71,   5, 221, 121, 
+    202,   5,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
       0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 220,  81, 
-     51,   1,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    220,  81,  51,   1,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -692,106 +846,107 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  32,  32, 
-     13,  10,  84, 101, 120, 116, 
-    117, 114, 101,  50,  68,  32, 
-    115, 104,  97, 100, 101, 114, 
-     84, 101, 120, 116, 117, 114, 
-    101,  32,  58,  32, 114, 101, 
-    103, 105, 115, 116, 101, 114, 
-     40,  32, 116,  48,  32,  41, 
-     59,  13,  10,  83,  97, 109, 
-    112, 108, 101, 114,  83, 116, 
-     97, 116, 101,  32,  83,  97, 
-    109, 112, 108, 101,  84, 121, 
-    112, 101,  32,  58,  32, 114, 
-    101, 103, 105, 115, 116, 101, 
-    114,  40,  32, 115,  48,  32, 
-     41,  59,  13,  10,  13,  10, 
-     47,  47,  32,  77,  97, 116, 
-    114, 105, 122, 101, 110,  32, 
-    102, 114,  32, 100, 105, 101, 
-     32, 101, 105, 110, 122, 101, 
-    108, 110, 101, 110,  32,  75, 
-    110, 111,  99, 104, 101, 110, 
-     32, 100, 101, 115,  32,  77, 
-    111, 100, 101, 108, 108, 115, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  77,  97, 116, 
-    114, 105, 120,  66, 117, 102, 
-    102, 101, 114,  13,  10, 123, 
-     13,  10,  32,  32,  32,  32, 
-    109,  97, 116, 114, 105, 120, 
-     32, 107, 110, 111,  99, 104, 
-    101, 110,  77,  97, 116, 114, 
-    105, 120,  91,  32,  49,  50, 
-     56,  32,  93,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     47,  47,  32,  84, 104, 101, 
-     32, 112, 114, 111, 106, 101, 
-     99, 116, 105, 111, 110,  32, 
-     97, 110, 100,  32, 118, 105, 
-    101, 119,  32, 109,  97, 116, 
-    114, 105, 120,  13,  10, 115, 
-    116, 114, 117,  99, 116,  32, 
-     75,  97, 109, 101, 114,  97, 
-     66, 117, 102, 102, 101, 114, 
-     50,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 109,  97, 
-    116, 114, 105, 120,  32, 118, 
-    105, 101, 119,  59,  13,  10, 
-     32,  32,  32,  32, 109,  97, 
-    116, 114, 105, 120,  32, 112, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     47,  47,  32,  84, 104, 101, 
-     32, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32, 111, 102, 
-     32, 116, 104, 101,  32, 107, 
-     97, 109, 101, 114,  97,  13, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     32,  32,  13,  10,  84, 101, 
+    120, 116, 117, 114, 101,  50, 
+     68,  32, 115, 104,  97, 100, 
+    101, 114,  84, 101, 120, 116, 
+    117, 114, 101,  32,  58,  32, 
+    114, 101, 103, 105, 115, 116, 
+    101, 114,  40,  32, 116,  48, 
+     32,  41,  59,  13,  10,  83, 
+     97, 109, 112, 108, 101, 114, 
+     83, 116,  97, 116, 101,  32, 
+     83,  97, 109, 112, 108, 101, 
+     84, 121, 112, 101,  32,  58, 
+     32, 114, 101, 103, 105, 115, 
+    116, 101, 114,  40,  32, 115, 
+     48,  32,  41,  59,  13,  10, 
+     13,  10,  47,  47,  32,  77, 
+     97, 116, 114, 105, 122, 101, 
+    110,  32, 102, 114,  32, 100, 
+    105, 101,  32, 101, 105, 110, 
+    122, 101, 108, 110, 101, 110, 
+     32,  75, 110, 111,  99, 104, 
+    101, 110,  32, 100, 101, 115, 
+     32,  77, 111, 100, 101, 108, 
+    108, 115,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  77, 
+     97, 116, 114, 105, 120,  66, 
+    117, 102, 102, 101, 114,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 109,  97, 116, 114, 
+    105, 120,  32, 107, 110, 111, 
+     99, 104, 101, 110,  77,  97, 
+    116, 114, 105, 120,  91,  32, 
+     49,  50,  56,  32,  93,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  47,  47,  32,  84, 
+    104, 101,  32, 112, 114, 111, 
+    106, 101,  99, 116, 105, 111, 
+    110,  32,  97, 110, 100,  32, 
+    118, 105, 101, 119,  32, 109, 
+     97, 116, 114, 105, 120,  13, 
      10, 115, 116, 114, 117,  99, 
     116,  32,  75,  97, 109, 101, 
     114,  97,  66, 117, 102, 102, 
-    101, 114,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  52,  32, 
-    107,  80, 111, 115, 105, 116, 
-    105, 111, 110,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     47,  47,  32, 116, 104, 101, 
-    115, 101,  32, 118,  97, 108, 
-    117, 101, 115,  32, 115, 104, 
-    111, 117, 108, 100,  32, 115, 
-    117, 109,  32, 117, 112,  32, 
-    116, 111,  32,  49,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  77,  97, 116, 101, 114, 
-    105,  97, 108,  13,  10, 123, 
+    101, 114,  50,  13,  10, 123, 
      13,  10,  32,  32,  32,  32, 
-    102, 108, 111,  97, 116,  32, 
-     97, 109,  98, 105, 101, 110, 
-    116,  70,  97,  99, 116, 111, 
-    114,  59,  13,  10,  32,  32, 
+    109,  97, 116, 114, 105, 120, 
+     32, 118, 105, 101, 119,  59, 
+     13,  10,  32,  32,  32,  32, 
+    109,  97, 116, 114, 105, 120, 
+     32, 112, 114, 111, 106, 101, 
+     99, 116, 105, 111, 110,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  47,  47,  32,  84, 
+    104, 101,  32, 112, 111, 115, 
+    105, 116, 105, 111, 110,  32, 
+    111, 102,  32, 116, 104, 101, 
+     32, 107,  97, 109, 101, 114, 
+     97,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  75,  97, 
+    109, 101, 114,  97,  66, 117, 
+    102, 102, 101, 114,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     52,  32, 107,  80, 111, 115, 
+    105, 116, 105, 111, 110,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  47,  47,  32, 116, 
+    104, 101, 115, 101,  32, 118, 
+     97, 108, 117, 101, 115,  32, 
+    115, 104, 111, 117, 108, 100, 
+     32, 115, 117, 109,  32, 117, 
+    112,  32, 116, 111,  32,  49, 
+     13,  10, 115, 116, 114, 117, 
+     99, 116,  32,  77,  97, 116, 
+    101, 114, 105,  97, 108,  13, 
+     10, 123,  13,  10,  32,  32, 
      32,  32, 102, 108, 111,  97, 
-    116,  32, 100, 105, 102, 102, 
-    117, 115,  70,  97,  99, 116, 
-    111, 114,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-    198,  90,   0,   0, 117, 131, 
-      1,   0,  76, 232,   3,   0, 
-    242,  56,   1,   0,  43, 236, 
-      3,   0,  28,  19,   2,   0, 
-     65,  36,   1,   0, 236, 179, 
-      1,   0, 249, 178,   1,   0, 
-    125,  10,   2,   0, 125, 181, 
-      2,   0, 200,  81,   2,   0, 
-    193,  33,   3,   0,  65, 185, 
-      2,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    116,  32,  97, 109,  98, 105, 
+    101, 110, 116,  70,  97,  99, 
+    116, 111, 114,  59,  13,  10, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  32, 100, 105, 
+    102, 102, 117, 115,  70,  97, 
+     99, 116, 111, 114,  59,  13, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111, 198,  90,   0,   0, 
+    117, 131,   1,   0,  76, 232, 
+      3,   0, 242,  56,   1,   0, 
+     43, 236,   3,   0,  28,  19, 
+      2,   0,  65,  36,   1,   0, 
+    236, 179,   1,   0, 232, 186, 
+      1,   0, 125,  10,   2,   0, 
+    125, 181,   2,   0, 200,  81, 
+      2,   0, 193,  33,   3,   0, 
+     65, 185,   2,   0, 140, 239, 
+      1,   0, 246,  49,   0,   0, 
+    213, 255,   0,   0, 115, 108, 
+      0,   0, 202, 179,   0,   0, 
+      0,  16,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -863,9 +1018,9 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  47,  47,  47,  47, 
+      0,   0,   0,   0,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  32,  32,  32, 
+     47,  47,  47,  47,  47,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -880,11 +1035,10 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  13,  10, 
-     47,  47,  32,  71,  76,  79, 
-     66,  65,  76,  83,  32,  47, 
-     47,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
+     13,  10,  47,  47,  32,  71, 
+     76,  79,  66,  65,  76,  83, 
+     32,  47,  47,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -898,10 +1052,11 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  47,  47, 
-     47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  47,  32, 
      32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  13,  10, 
+     47,  47,  47,  47,  47,  47, 
+     47,  47,  47,  47,  47,  47, 
+     47,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -916,208 +1071,208 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     13,  10,  84, 101, 120, 116, 
-    117, 114, 101,  50,  68,  32, 
-    115, 104,  97, 100, 101, 114, 
-     84, 101, 120, 116, 117, 114, 
-    101,  32,  58,  32, 114, 101, 
-    103, 105, 115, 116, 101, 114, 
-     40,  32, 116,  48,  32,  41, 
-     59,  13,  10,  83,  97, 109, 
-    112, 108, 101, 114,  83, 116, 
-     97, 116, 101,  32,  83,  97, 
-    109, 112, 108, 101,  84, 121, 
-    112, 101,  32,  58,  32, 114, 
-    101, 103, 105, 115, 116, 101, 
-    114,  40,  32, 115,  48,  32, 
-     41,  59,  13,  10,  13,  10, 
-     47,  47,  32,  77,  97, 116, 
-    114, 105, 122, 101, 110,  32, 
-    102, 252, 114,  32, 100, 105, 
-    101,  32, 101, 105, 110, 122, 
-    101, 108, 110, 101, 110,  32, 
-     75, 110, 111,  99, 104, 101, 
-    110,  32, 100, 101, 115,  32, 
-     77, 111, 100, 101, 108, 108, 
-    115,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  77,  97, 
-    116, 114, 105, 120,  66, 117, 
-    102, 102, 101, 114,  13,  10, 
-    123,  13,  10,  32,  32,  32, 
-     32, 109,  97, 116, 114, 105, 
-    120,  32, 107, 110, 111,  99, 
-    104, 101, 110,  77,  97, 116, 
-    114, 105, 120,  91,  32,  49, 
-     50,  56,  32,  93,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10,  47,  47,  32,  84, 104, 
-    101,  32, 112, 114, 111, 106, 
-    101,  99, 116, 105, 111, 110, 
-     32,  97, 110, 100,  32, 118, 
-    105, 101, 119,  32, 109,  97, 
-    116, 114, 105, 120,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  75,  97, 109, 101, 114, 
-     97,  66, 117, 102, 102, 101, 
-    114,  50,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 109, 
-     97, 116, 114, 105, 120,  32, 
-    118, 105, 101, 119,  59,  13, 
-     10,  32,  32,  32,  32, 109, 
-     97, 116, 114, 105, 120,  32, 
-    112, 114, 111, 106, 101,  99, 
-    116, 105, 111, 110,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10,  47,  47,  32,  84, 104, 
-    101,  32, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32, 111, 
-    102,  32, 116, 104, 101,  32, 
-    107,  97, 109, 101, 114,  97, 
+     32,  32,  13,  10,  84, 101, 
+    120, 116, 117, 114, 101,  50, 
+     68,  32, 115, 104,  97, 100, 
+    101, 114,  84, 101, 120, 116, 
+    117, 114, 101,  32,  58,  32, 
+    114, 101, 103, 105, 115, 116, 
+    101, 114,  40,  32, 116,  48, 
+     32,  41,  59,  13,  10,  83, 
+     97, 109, 112, 108, 101, 114, 
+     83, 116,  97, 116, 101,  32, 
+     83,  97, 109, 112, 108, 101, 
+     84, 121, 112, 101,  32,  58, 
+     32, 114, 101, 103, 105, 115, 
+    116, 101, 114,  40,  32, 115, 
+     48,  32,  41,  59,  13,  10, 
+     13,  10,  47,  47,  32,  77, 
+     97, 116, 114, 105, 122, 101, 
+    110,  32, 102, 252, 114,  32, 
+    100, 105, 101,  32, 101, 105, 
+    110, 122, 101, 108, 110, 101, 
+    110,  32,  75, 110, 111,  99, 
+    104, 101, 110,  32, 100, 101, 
+    115,  32,  77, 111, 100, 101, 
+    108, 108, 115,  13,  10, 115, 
+    116, 114, 117,  99, 116,  32, 
+     77,  97, 116, 114, 105, 120, 
+     66, 117, 102, 102, 101, 114, 
+     13,  10, 123,  13,  10,  32, 
+     32,  32,  32, 109,  97, 116, 
+    114, 105, 120,  32, 107, 110, 
+    111,  99, 104, 101, 110,  77, 
+     97, 116, 114, 105, 120,  91, 
+     32,  49,  50,  56,  32,  93, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10,  47,  47,  32, 
+     84, 104, 101,  32, 112, 114, 
+    111, 106, 101,  99, 116, 105, 
+    111, 110,  32,  97, 110, 100, 
+     32, 118, 105, 101, 119,  32, 
+    109,  97, 116, 114, 105, 120, 
      13,  10, 115, 116, 114, 117, 
      99, 116,  32,  75,  97, 109, 
     101, 114,  97,  66, 117, 102, 
-    102, 101, 114,  13,  10, 123, 
-     13,  10,  32,  32,  32,  32, 
-    102, 108, 111,  97, 116,  52, 
-     32, 107,  80, 111, 115, 105, 
-    116, 105, 111, 110,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10,  47,  47,  32, 116, 104, 
-    101, 115, 101,  32, 118,  97, 
-    108, 117, 101, 115,  32, 115, 
-    104, 111, 117, 108, 100,  32, 
-    115, 117, 109,  32, 117, 112, 
-     32, 116, 111,  32,  49,  13, 
-     10, 115, 116, 114, 117,  99, 
-    116,  32,  77,  97, 116, 101, 
-    114, 105,  97, 108,  13,  10, 
+    102, 101, 114,  50,  13,  10, 
     123,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     32,  97, 109,  98, 105, 101, 
-    110, 116,  70,  97,  99, 116, 
-    111, 114,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  32, 100, 105, 102, 
-    102, 117, 115,  70,  97,  99, 
-    116, 111, 114,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  32, 115, 112, 
-    101,  99, 117, 108,  97, 114, 
-     70,  97,  99, 116, 111, 114, 
+     32, 109,  97, 116, 114, 105, 
+    120,  32, 118, 105, 101, 119, 
+     59,  13,  10,  32,  32,  32, 
+     32, 109,  97, 116, 114, 105, 
+    120,  32, 112, 114, 111, 106, 
+    101,  99, 116, 105, 111, 110, 
      59,  13,  10, 125,  59,  13, 
-     10,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  76, 105, 
-    103, 104, 116,  67, 111, 117, 
-    110, 116,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 105, 
-    110, 116,  32, 100, 105, 102, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116,  67, 111, 117, 
-    110, 116,  59,  13,  10,  32, 
-     32,  32,  32, 105, 110, 116, 
-     32, 112, 111, 105, 110, 116, 
+     10,  13,  10,  47,  47,  32, 
+     84, 104, 101,  32, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32, 111, 102,  32, 116, 104, 
+    101,  32, 107,  97, 109, 101, 
+    114,  97,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  75, 
+     97, 109, 101, 114,  97,  66, 
+    117, 102, 102, 101, 114,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  52,  32, 107,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10,  47,  47,  32, 
+    116, 104, 101, 115, 101,  32, 
+    118,  97, 108, 117, 101, 115, 
+     32, 115, 104, 111, 117, 108, 
+    100,  32, 115, 117, 109,  32, 
+    117, 112,  32, 116, 111,  32, 
+     49,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  77,  97, 
+    116, 101, 114, 105,  97, 108, 
+     13,  10, 123,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  32,  97, 109,  98, 
+    105, 101, 110, 116,  70,  97, 
+     99, 116, 111, 114,  59,  13, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  32, 100, 
+    105, 102, 102, 117, 115,  70, 
+     97,  99, 116, 111, 114,  59, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  32, 
+    115, 112, 101,  99, 117, 108, 
+     97, 114,  70,  97,  99, 116, 
+    111, 114,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10, 115, 
+    116, 114, 117,  99, 116,  32, 
+     76, 105, 103, 104, 116,  67, 
+    111, 117, 110, 116,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 105, 110, 116,  32, 100, 
+    105, 102, 102, 117, 115, 101, 
      76, 105, 103, 104, 116,  67, 
     111, 117, 110, 116,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10,  67, 111, 110, 115, 116, 
-     97, 110, 116,  66, 117, 102, 
-    102, 101, 114,  60,  75,  97, 
-    109, 101, 114,  97,  66, 117, 
-    102, 102, 101, 114,  50,  62, 
-     32,  75,  97, 109, 101, 114, 
-     97,  50,  32,  58,  32, 114, 
-    101, 103, 105, 115, 116, 101, 
-    114,  40,  32,  98,  48,  32, 
-     41,  59,  13,  10,  67, 111, 
-    110, 115, 116,  97, 110, 116, 
+     10,  32,  32,  32,  32, 105, 
+    110, 116,  32, 112, 111, 105, 
+    110, 116,  76, 105, 103, 104, 
+    116,  67, 111, 117, 110, 116, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10,  67, 111, 110, 
+    115, 116,  97, 110, 116,  66, 
+    117, 102, 102, 101, 114,  60, 
+     75,  97, 109, 101, 114,  97, 
      66, 117, 102, 102, 101, 114, 
-     60,  77,  97, 116, 114, 105, 
-    120,  66, 117, 102, 102, 101, 
-    114,  62,  32,  83, 107, 101, 
-    108, 101, 116, 116,  32,  58, 
+     50,  62,  32,  75,  97, 109, 
+    101, 114,  97,  50,  32,  58, 
      32, 114, 101, 103, 105, 115, 
     116, 101, 114,  40,  32,  98, 
-     49,  32,  41,  59,  13,  10, 
+     48,  32,  41,  59,  13,  10, 
      67, 111, 110, 115, 116,  97, 
     110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  75,  97, 109, 
-    101, 114,  97,  66, 117, 102, 
-    102, 101, 114,  62,  32,  75, 
-     97, 109, 101, 114,  97,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-     98,  50,  32,  41,  59,  13, 
-     10,  67, 111, 110, 115, 116, 
-     97, 110, 116,  66, 117, 102, 
-    102, 101, 114,  60,  77,  97, 
-    116, 101, 114, 105,  97, 108, 
-     62,  32,  79,  98, 106, 101, 
-     99, 116,  32,  58,  32, 114, 
-    101, 103, 105, 115, 116, 101, 
-    114,  40,  32,  98,  51,  32, 
-     41,  59,  13,  10,  67, 111, 
-    110, 115, 116,  97, 110, 116, 
-     66, 117, 102, 102, 101, 114, 
-     60,  76, 105, 103, 104, 116, 
-     67, 111, 117, 110, 116,  62, 
-     32,  76, 105, 103, 104, 116, 
+    101, 114,  60,  77,  97, 116, 
+    114, 105, 120,  66, 117, 102, 
+    102, 101, 114,  62,  32,  83, 
+    107, 101, 108, 101, 116, 116, 
      32,  58,  32, 114, 101, 103, 
     105, 115, 116, 101, 114,  40, 
-     32,  98,  52,  32,  41,  59, 
-     13,  10,  13,  10,  47,  47, 
-     32, 108, 105, 103, 104, 116, 
-    115,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  68, 105, 
-    102, 102, 117, 115, 101,  76, 
+     32,  98,  49,  32,  41,  59, 
+     13,  10,  67, 111, 110, 115, 
+    116,  97, 110, 116,  66, 117, 
+    102, 102, 101, 114,  60,  75, 
+     97, 109, 101, 114,  97,  66, 
+    117, 102, 102, 101, 114,  62, 
+     32,  75,  97, 109, 101, 114, 
+     97,  32,  58,  32, 114, 101, 
+    103, 105, 115, 116, 101, 114, 
+     40,  32,  98,  50,  32,  41, 
+     59,  13,  10,  67, 111, 110, 
+    115, 116,  97, 110, 116,  66, 
+    117, 102, 102, 101, 114,  60, 
+     77,  97, 116, 101, 114, 105, 
+     97, 108,  62,  32,  79,  98, 
+    106, 101,  99, 116,  32,  58, 
+     32, 114, 101, 103, 105, 115, 
+    116, 101, 114,  40,  32,  98, 
+     51,  32,  41,  59,  13,  10, 
+     67, 111, 110, 115, 116,  97, 
+    110, 116,  66, 117, 102, 102, 
+    101, 114,  60,  76, 105, 103, 
+    104, 116,  67, 111, 117, 110, 
+    116,  62,  32,  76, 105, 103, 
+    104, 116,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32,  98,  52,  32, 
+     41,  59,  13,  10,  13,  10, 
+     47,  47,  32, 108, 105, 103, 
+    104, 116, 115,  13,  10, 115, 
+    116, 114, 117,  99, 116,  32, 
+     68, 105, 102, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+     13,  10, 123,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  51,  32, 100, 105, 
+    114, 101,  99, 116, 105, 111, 
+    110,  59,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  51,  32,  99, 111, 108, 
+    111, 114,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10, 115, 
+    116, 114, 117,  99, 116,  32, 
+     80, 111, 105, 110, 116,  76, 
     105, 103, 104, 116,  13,  10, 
     123,  13,  10,  32,  32,  32, 
      32, 102, 108, 111,  97, 116, 
-     51,  32, 100, 105, 114, 101, 
-     99, 116, 105, 111, 110,  59, 
-     13,  10,  32,  32,  32,  32, 
-    102, 108, 111,  97, 116,  51, 
-     32,  99, 111, 108, 111, 114, 
-     59,  13,  10, 125,  59,  13, 
-     10,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  80, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116,  13,  10, 123,  13, 
+     51,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  59,  13, 
      10,  32,  32,  32,  32, 102, 
     108, 111,  97, 116,  51,  32, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32,  99, 111, 
-    108, 111, 114,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  32, 114,  97, 
-    100, 105, 117, 115,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10,  47,  47,  83, 116, 114, 
-    117,  99, 116, 117, 114, 101, 
-    100,  66, 117, 102, 102, 101, 
-    114,  60,  32,  68, 105, 102, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116,  32,  62,  32, 
-    100, 105, 102, 117, 115, 101, 
+     99, 111, 108, 111, 114,  59, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  32, 
+    114,  97, 100, 105, 117, 115, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10,  47,  47,  83, 
+    116, 114, 117,  99, 116, 117, 
+    114, 101, 100,  66, 117, 102, 
+    102, 101, 114,  60,  32,  68, 
+    105, 102, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116,  32, 
+     62,  32, 100, 105, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116, 115,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32, 116,  49,  32, 
+     41,  59,  13,  10,  47,  47, 
+     83, 116, 114, 117,  99, 116, 
+    117, 114, 101, 100,  66, 117, 
+    102, 102, 101, 114,  60,  32, 
+     80, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116,  32,  62, 
+     32, 112, 111, 105, 110, 116, 
      76, 105, 103, 104, 116, 115, 
      32,  58,  32, 114, 101, 103, 
     105, 115, 116, 101, 114,  40, 
-     32, 116,  49,  32,  41,  59, 
-     13,  10,  47,  47,  83, 116, 
-    114, 117,  99, 116, 117, 114, 
-    101, 100,  66, 117, 102, 102, 
-    101, 114,  60,  32,  80, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116,  32,  62,  32, 112, 
-    111, 105, 110, 116,  76, 105, 
-    103, 104, 116, 115,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  32, 116, 
-     50,  32,  41,  59,  13,  10, 
-     13,  10,  47,  47,  47,  47, 
+     32, 116,  50,  32,  41,  59, 
+     13,  10,  13,  10,  47,  47, 
+     47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1132,11 +1287,10 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  13,  10, 
-     47,  47,  32,  84,  89,  80, 
-     69,  68,  69,  70,  83,  32, 
-     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
+     13,  10,  47,  47,  32,  84, 
+     89,  80,  69,  68,  69,  70, 
+     83,  32,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1150,9 +1304,11 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  47,  47, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  13,  10, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
+     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1167,34 +1323,33 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  80, 105, 120, 
-    101, 108,  73, 110, 112, 117, 
-    116,  84, 121, 112, 101,  13, 
-     10, 123,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  52,  32, 119, 111, 114, 
-    108, 100,  80, 111, 115,  32, 
-     58,  32,  80,  79,  83,  73, 
-     84,  73,  79,  78,  59,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  52,  32, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  32,  58,  32,  83, 
-     86,  95,  80,  79,  83,  73, 
-     84,  73,  79,  78,  59,  13, 
+     32,  32,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  80, 
+    105, 120, 101, 108,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,  13,  10, 123,  13,  10, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  52,  32, 119, 
+    111, 114, 108, 100,  80, 111, 
+    115,  32,  58,  32,  80,  79, 
+     83,  73,  84,  73,  79,  78, 
+     59,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     52,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32,  58, 
+     32,  83,  86,  95,  80,  79, 
+     83,  73,  84,  73,  79,  78, 
+     59,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     50,  32, 116, 101, 120,  32, 
+     58,  32,  84,  69,  88,  67, 
+     79,  79,  82,  68,  59,  13, 
      10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  50,  32, 
-    116, 101, 120,  32,  58,  32, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32, 110, 111, 
-    114, 109,  97, 108,  32,  58, 
-     32,  78,  79,  82,  77,  65, 
-     76,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10,  47,  47, 
+    108, 111,  97, 116,  51,  32, 
+    110, 111, 114, 109,  97, 108, 
+     32,  58,  32,  78,  79,  82, 
+     77,  65,  76,  59,  13,  10, 
+    125,  59,  13,  10,  13,  10, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -1208,13 +1363,14 @@ const BYTE DX12PixelShaderBytes[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
+     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     13,  10,  47,  47,  32,  80, 
-    105, 120, 101, 108,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
+     32,  32,  13,  10,  47,  47, 
+     32,  80, 105, 120, 101, 108, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1229,8 +1385,7 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  13,  10, 
-     47,  47,  47,  47,  47,  47, 
+     13,  10,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -1243,48 +1398,70 @@ const BYTE DX12PixelShaderBytes[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  32,  32,  32,  32, 
+     47,  47,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10, 102, 108, 
-    111,  97, 116,  52,  32, 109, 
-     97, 105, 110,  40,  32,  80, 
-    105, 120, 101, 108,  73, 110, 
-    112, 117, 116,  84, 121, 112, 
-    101,  32, 105, 110, 112, 117, 
-    116,  32,  41,  32,  58,  32, 
-     83,  86,  95,  84,  65,  82, 
-     71,  69,  84,  13,  10, 123, 
+     32,  32,  32,  32,  13,  10, 
+    102, 108, 111,  97, 116,  52, 
+     32, 109,  97, 105, 110,  40, 
+     32,  80, 105, 120, 101, 108, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  32, 105, 110, 
+    112, 117, 116,  32,  41,  32, 
+     58,  32,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  51,  32, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  32,  61,  32, 
+    102, 108, 111,  97, 116,  51, 
+     40,  32,  48,  44,  32,  48, 
+     44,  32,  48,  32,  41,  59, 
      13,  10,  32,  32,  32,  32, 
     102, 108, 111,  97, 116,  51, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116,  32,  61,  32, 102, 108, 
-    111,  97, 116,  51,  40,  32, 
-     48,  44,  32,  48,  44,  32, 
-     48,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  51,  32, 115, 
-    112, 101,  99, 117, 108,  97, 
-    114,  76, 105, 103, 104, 116, 
-     32,  61,  32, 102, 108, 111, 
-     97, 116,  51,  40,  32,  48, 
-     44,  32,  48,  44,  32,  48, 
-     32,  41,  59,  13,  10,  32, 
-     32,  32,  47,  42,  32, 102, 
-    111, 114,  40,  32, 105, 110, 
-    116,  32, 106,  32,  61,  32, 
-     48,  59,  32, 106,  32,  60, 
-     32,  76, 105, 103, 104, 116, 
-     46, 100, 105, 102, 102, 117, 
+     32, 115, 112, 101,  99, 117, 
+    108,  97, 114,  76, 105, 103, 
+    104, 116,  32,  61,  32, 102, 
+    108, 111,  97, 116,  51,  40, 
+     32,  48,  44,  32,  48,  44, 
+     32,  48,  32,  41,  59,  13, 
+     10,  32,  32,  32,  47,  42, 
+     32, 102, 111, 114,  40,  32, 
+    105, 110, 116,  32, 106,  32, 
+     61,  32,  48,  59,  32, 106, 
+     32,  60,  32,  76, 105, 103, 
+    104, 116,  46, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  59,  32, 106,  43, 
+     43,  32,  41,  13,  10,  32, 
+     32,  32,  32, 123,  13,  10, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32, 105, 102,  40,  32, 
+    100, 111, 116,  40,  32, 105, 
+    110, 112, 117, 116,  46, 110, 
+    111, 114, 109,  97, 108,  44, 
+     32,  45, 100, 105, 102, 117, 
     115, 101,  76, 105, 103, 104, 
-    116,  67, 111, 117, 110, 116, 
-     59,  32, 106,  43,  43,  32, 
+    116, 115,  91,  32, 106,  32, 
+     93,  46, 100, 105, 114, 101, 
+     99, 116, 105, 111, 110,  32, 
+     41,  32,  60,  32,  48,  32, 
      41,  13,  10,  32,  32,  32, 
-     32, 123,  13,  10,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-    105, 102,  40,  32, 100, 111, 
+     32,  32,  32,  99, 111, 110, 
+    116, 105, 110, 117, 101,  59, 
+     13,  10,  32,  32,  32,  32, 
+     32,  32,  32,  32, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  32,  43, 
+     61,  32, 100, 105, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116, 115,  91,  32, 106,  32, 
+     93,  46,  99, 111, 108, 111, 
+    114,  32,  42,  32, 100, 111, 
     116,  40,  32, 105, 110, 112, 
     117, 116,  46, 110, 111, 114, 
     109,  97, 108,  44,  32,  45, 
@@ -1292,84 +1469,102 @@ const BYTE DX12PixelShaderBytes[] =
      76, 105, 103, 104, 116, 115, 
      91,  32, 106,  32,  93,  46, 
     100, 105, 114, 101,  99, 116, 
-    105, 111, 110,  32,  41,  32, 
-     60,  32,  48,  32,  41,  13, 
-     10,  32,  32,  32,  32,  32, 
+    105, 111, 110,  32,  41,  59, 
+     13,  10,  32,  32,  32,  32, 
+    125,  13,  10,  32,  32,  32, 
+     32, 102, 111, 114,  40,  32, 
+    105, 110, 116,  32, 105,  32, 
+     61,  32,  48,  59,  32, 105, 
+     32,  60,  32,  76, 105, 103, 
+    104, 116,  46, 112, 111, 105, 
+    110, 116,  76, 105, 103, 104, 
+    116,  67, 111, 117, 110, 116, 
+     59,  32, 105,  43,  43,  32, 
+     41,  13,  10,  32,  32,  32, 
+     32, 123,  13,  10,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  99, 111, 110, 116, 105, 
-    110, 117, 101,  59,  13,  10, 
+    102, 108, 111,  97, 116,  51, 
+     32, 108, 105, 103, 104, 116, 
+     68, 105, 114,  32,  61,  32, 
+    112, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116, 115,  91, 
+     32, 105,  32,  93,  46, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  32,  45,  32, 105, 110, 
+    112, 117, 116,  46, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
+     46, 120, 121, 122,  59,  13, 
+     10,  32,  32,  32,  32,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  32, 102,  97,  99, 
+    116, 111, 114,  32,  61,  32, 
+    112, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116, 115,  91, 
+     32, 105,  32,  93,  46, 114, 
+     97, 100, 105, 117, 115,  32, 
+     47,  32, 108, 101, 110, 103, 
+    116, 104,  40,  32, 108, 105, 
+    103, 104, 116,  68, 105, 114, 
+     32,  41,  59,  13,  10,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  32,  43,  61,  32, 
-    100, 105, 102, 117, 115, 101, 
-     76, 105, 103, 104, 116, 115, 
-     91,  32, 106,  32,  93,  46, 
-     99, 111, 108, 111, 114,  32, 
-     42,  32, 100, 111, 116,  40, 
-     32, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  44,  32,  45, 100, 105, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116, 115,  91,  32, 
-    106,  32,  93,  46, 100, 105, 
-    114, 101,  99, 116, 105, 111, 
-    110,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32, 125,  13, 
-     10,  32,  32,  32,  32, 102, 
-    111, 114,  40,  32, 105, 110, 
-    116,  32, 105,  32,  61,  32, 
-     48,  59,  32, 105,  32,  60, 
-     32,  76, 105, 103, 104, 116, 
-     46, 112, 111, 105, 110, 116, 
-     76, 105, 103, 104, 116,  67, 
-    111, 117, 110, 116,  59,  32, 
-    105,  43,  43,  32,  41,  13, 
-     10,  32,  32,  32,  32, 123, 
-     13,  10,  32,  32,  32,  32, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  51,  32, 108, 
+     32, 102, 108, 111,  97, 116, 
+     32, 102,  32,  61,  32, 100, 
+    111, 116,  40,  32, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  44,  32, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40,  32, 108, 
     105, 103, 104, 116,  68, 105, 
-    114,  32,  61,  32, 112, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116, 115,  91,  32, 105, 
-     32,  93,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
-     45,  32, 105, 110, 112, 117, 
-    116,  46, 119, 111, 114, 108, 
-    100,  80, 111, 115,  46, 120, 
-    121, 122,  59,  13,  10,  32, 
+    114,  32,  41,  32,  41,  59, 
+     13,  10,  32,  32,  32,  32, 
+     32,  32,  32,  32, 105, 102, 
+     40,  32, 102,  32,  62,  32, 
+     48,  32,  41,  13,  10,  32, 
      32,  32,  32,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
+     32, 123,  13,  10,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  32,  43, 
+     61,  32, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+    115,  91,  32, 105,  32,  93, 
+     46,  99, 111, 108, 111, 114, 
+     32,  42,  32, 102,  32,  42, 
      32, 102,  97,  99, 116, 111, 
-    114,  32,  61,  32, 112, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116, 115,  91,  32, 105, 
-     32,  93,  46, 114,  97, 100, 
-    105, 117, 115,  32,  47,  32, 
-    108, 101, 110, 103, 116, 104, 
-     40,  32, 108, 105, 103, 104, 
-    116,  68, 105, 114,  32,  41, 
-     59,  13,  10,  32,  32,  32, 
-     32,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  32, 102, 
-     32,  61,  32, 100, 111, 116, 
-     40,  32, 105, 110, 112, 117, 
-    116,  46, 110, 111, 114, 109, 
-     97, 108,  44,  32, 110, 111, 
-    114, 109,  97, 108, 105, 122, 
-    101,  40,  32, 108, 105, 103, 
+    114,  59,  13,  10,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32, 102,  32, 
+     61,  32, 100, 111, 116,  40, 
+     32, 110, 111, 114, 109,  97, 
+    108, 105, 122, 101,  40,  32, 
+    114, 101, 102, 108, 101,  99, 
+    116,  40,  32, 110, 111, 114, 
+    109,  97, 108, 105, 122, 101, 
+     40,  32,  45, 108, 105, 103, 
     104, 116,  68, 105, 114,  32, 
-     41,  32,  41,  59,  13,  10, 
+     41,  44,  32, 105, 110, 112, 
+    117, 116,  46, 110, 111, 114, 
+    109,  97, 108,  32,  41,  32, 
+     41,  44,  32, 110, 111, 114, 
+    109,  97, 108, 105, 122, 101, 
+     40,  32,  75,  97, 109, 101, 
+    114,  97,  46, 107,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+     46, 120, 121, 122,  32,  45, 
+     32, 105, 110, 112, 117, 116, 
+     46, 119, 111, 114, 108, 100, 
+     80, 111, 115,  46, 120, 121, 
+    122,  32,  41,  32,  41,  59, 
+     13,  10,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32, 105, 102,  40,  32, 
     102,  32,  62,  32,  48,  32, 
      41,  13,  10,  32,  32,  32, 
-     32,  32,  32,  32,  32, 123, 
-     13,  10,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
+     32,  32,  32,  32,  32,  32, 
+     32, 115, 112, 101,  99, 117, 
+    108,  97, 114,  76, 105, 103, 
     104, 116,  32,  43,  61,  32, 
     112, 111, 105, 110, 116,  76, 
     105, 103, 104, 116, 115,  91, 
@@ -1378,50 +1573,10 @@ const BYTE DX12PixelShaderBytes[] =
      32, 102,  32,  42,  32, 102, 
      97,  99, 116, 111, 114,  59, 
      13,  10,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32, 102,  32,  61,  32, 
-    100, 111, 116,  40,  32, 110, 
-    111, 114, 109,  97, 108, 105, 
-    122, 101,  40,  32, 114, 101, 
-    102, 108, 101,  99, 116,  40, 
-     32, 110, 111, 114, 109,  97, 
-    108, 105, 122, 101,  40,  32, 
-     45, 108, 105, 103, 104, 116, 
-     68, 105, 114,  32,  41,  44, 
-     32, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  32,  41,  32,  41,  44, 
-     32, 110, 111, 114, 109,  97, 
-    108, 105, 122, 101,  40,  32, 
-     75,  97, 109, 101, 114,  97, 
-     46, 107,  80, 111, 115, 105, 
-    116, 105, 111, 110,  46, 120, 
-    121, 122,  32,  45,  32, 105, 
-    110, 112, 117, 116,  46, 119, 
-    111, 114, 108, 100,  80, 111, 
-    115,  46, 120, 121, 122,  32, 
-     41,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-    105, 102,  40,  32, 102,  32, 
-     62,  32,  48,  32,  41,  13, 
-     10,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32, 115, 
-    112, 101,  99, 117, 108,  97, 
-    114,  76, 105, 103, 104, 116, 
-     32,  43,  61,  32, 112, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116, 115,  91,  32, 105, 
-     32,  93,  46,  99, 111, 108, 
-    111, 114,  32,  42,  32, 102, 
-     32,  42,  32, 102,  97,  99, 
-    116, 111, 114,  59,  13,  10, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32, 125,  13,  10,  32, 
-     32,  32,  32, 125,  42,  47, 
-     13,  10,  32,  32,  32,  32, 
-     47,  47, 102, 108, 111,  97, 
+     32,  32,  32,  32, 125,  13, 
+     10,  32,  32,  32,  32, 125, 
+     42,  47,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
     116,  52,  32, 109,  97, 116, 
     101, 114, 105,  97, 108,  67, 
     111, 108, 111, 114,  32,  61, 
@@ -1433,70 +1588,59 @@ const BYTE DX12PixelShaderBytes[] =
     121, 112, 101,  44,  32, 105, 
     110, 112, 117, 116,  46, 116, 
     101, 120,  32,  41,  59,  13, 
-     10,  32,  32,  32,  32,  47, 
-     47, 102, 108, 111,  97, 116, 
-     52,  32, 116, 101, 120, 116, 
-    117, 114, 101,  67, 111, 108, 
-    111, 114,  32,  61,  32, 115, 
-     97, 116, 117, 114,  97, 116, 
-    101,  40,  32, 109,  97, 116, 
-    101, 114, 105,  97, 108,  67, 
-    111, 108, 111, 114,  32,  42, 
-     32,  79,  98, 106, 101,  99, 
-    116,  46,  97, 109,  98, 105, 
-    101, 110, 116,  70,  97,  99, 
-    116, 111, 114,  32,  43,  32, 
-    102, 108, 111,  97, 116,  52, 
-     40,  32, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  46, 120,  44,  32, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  52,  32, 
+    116, 101, 120, 116, 117, 114, 
+    101,  67, 111, 108, 111, 114, 
+     32,  61,  32, 115,  97, 116, 
+    117, 114,  97, 116, 101,  40, 
+     32, 109,  97, 116, 101, 114, 
+    105,  97, 108,  67, 111, 108, 
+    111, 114,  32,  42,  32,  79, 
+     98, 106, 101,  99, 116,  46, 
+     97, 109,  98, 105, 101, 110, 
+    116,  70,  97,  99, 116, 111, 
+    114,  32,  43,  32, 102, 108, 
+    111,  97, 116,  52,  40,  32, 
     100, 105, 102, 102, 117, 115, 
     101,  76, 105, 103, 104, 116, 
-     46, 121,  44,  32, 100, 105, 
+     46, 120,  44,  32, 100, 105, 
     102, 102, 117, 115, 101,  76, 
-    105, 103, 104, 116,  46, 122, 
-     44,  32,  48,  32,  41,  32, 
-     42,  32,  79,  98, 106, 101, 
-     99, 116,  46, 100, 105, 102, 
-    102, 117, 115,  70,  97,  99, 
-    116, 111, 114,  32,  43,  32, 
-    102, 108, 111,  97, 116,  52, 
-     40,  32, 115, 112, 101,  99, 
-    117, 108,  97, 114,  76, 105, 
-    103, 104, 116,  46, 120,  44, 
-     32, 115, 112, 101,  99, 117, 
-    108,  97, 114,  76, 105, 103, 
-    104, 116,  46, 121,  44,  32, 
+    105, 103, 104, 116,  46, 121, 
+     44,  32, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,  46, 122,  44,  32, 
+     48,  32,  41,  32,  42,  32, 
+     79,  98, 106, 101,  99, 116, 
+     46, 100, 105, 102, 102, 117, 
+    115,  70,  97,  99, 116, 111, 
+    114,  32,  43,  32, 102, 108, 
+    111,  97, 116,  52,  40,  32, 
     115, 112, 101,  99, 117, 108, 
      97, 114,  76, 105, 103, 104, 
-    116,  46, 122,  44,  32,  48, 
-     32,  41,  32,  42,  32,  79, 
-     98, 106, 101,  99, 116,  46, 
-    115, 112, 101,  99, 117, 108, 
-     97, 114,  70,  97,  99, 116, 
-    111, 114,  32,  41,  59,  13, 
-     10,  32,  32,  32,  32,  47, 
-     47, 116, 101, 120, 116, 117, 
-    114, 101,  67, 111, 108, 111, 
-    114,  46,  97,  32,  61,  32, 
-    109,  97, 116, 101, 114, 105, 
-     97, 108,  67, 111, 108, 111, 
-    114,  46,  97,  59,  13,  10, 
-     32,  32,  32,  32, 114, 101, 
-    116, 117, 114, 110,  32, 115, 
-    104,  97, 100, 101, 114,  84, 
-    101, 120, 116, 117, 114, 101, 
-     46,  83,  97, 109, 112, 108, 
-    101,  40,  32,  83,  97, 109, 
-    112, 108, 101,  84, 121, 112, 
-    101,  44,  32, 105, 110, 112, 
-    117, 116,  46, 116, 101, 120, 
+    116,  46, 120,  44,  32, 115, 
+    112, 101,  99, 117, 108,  97, 
+    114,  76, 105, 103, 104, 116, 
+     46, 121,  44,  32, 115, 112, 
+    101,  99, 117, 108,  97, 114, 
+     76, 105, 103, 104, 116,  46, 
+    122,  44,  32,  48,  32,  41, 
+     32,  42,  32,  79,  98, 106, 
+    101,  99, 116,  46, 115, 112, 
+    101,  99, 117, 108,  97, 114, 
+     70,  97,  99, 116, 111, 114, 
      32,  41,  59,  13,  10,  32, 
-     32,  32,  32,  47,  47, 114, 
-    101, 116, 117, 114, 110,  32, 
-    116, 101, 120, 116, 117, 114, 
-    101,  67, 111, 108, 111, 114, 
-     59,  13,  10, 125,   0,   0, 
+     32,  32,  32, 116, 101, 120, 
+    116, 117, 114, 101,  67, 111, 
+    108, 111, 114,  46,  97,  32, 
+     61,  32, 109,  97, 116, 101, 
+    114, 105,  97, 108,  67, 111, 
+    108, 111, 114,  46,  97,  59, 
+     13,  10,  32,  32,  32,  32, 
+    114, 101, 116, 117, 114, 110, 
+     32, 116, 101, 120, 116, 117, 
+    114, 101,  67, 111, 108, 111, 
+    114,  59,  13,  10, 125,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1546,43 +1690,53 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    254, 239, 254, 239,   1,   0, 
-      0,   0, 146,  15,   0,   0, 
-      0,  67,  58,  92,  85, 115, 
-    101, 114, 115,  92, 107, 111, 
-    108, 106,  97,  92,  79, 110, 
-    101,  68, 114, 105, 118, 101, 
-     92,  68, 101, 115, 107, 116, 
-    111, 112,  92,  75, 111, 108, 
-    106,  97,  45,  83, 116, 114, 
-    111, 104, 109,  45,  71,  97, 
-    109, 101, 115,  92,  65, 108, 
-    108, 103, 101, 109, 101, 105, 
-    110,  92,  70, 114,  97, 109, 
-    101, 119, 111, 114, 107,  92, 
-     68,  88,  49,  50,  80, 105, 
-    120, 101, 108,  83, 104,  97, 
-    100, 101, 114,  46, 104, 108, 
-    115, 108,   0,   0,  99,  58, 
-     92, 117, 115, 101, 114, 115, 
-     92, 107, 111, 108, 106,  97, 
-     92, 111, 110, 101, 100, 114, 
-    105, 118, 101,  92, 100, 101, 
-    115, 107, 116, 111, 112,  92, 
-    107, 111, 108, 106,  97,  45, 
-    115, 116, 114, 111, 104, 109, 
-     45, 103,  97, 109, 101, 115, 
-     92,  97, 108, 108, 103, 101, 
-    109, 101, 105, 110,  92, 102, 
-    114,  97, 109, 101, 119, 111, 
-    114, 107,  92, 100, 120,  49, 
-     50, 112, 105, 120, 101, 108, 
-    115, 104,  97, 100, 101, 114, 
-     46, 104, 108, 115, 108,   0, 
-     47,  47,  47,  47,  47,  47, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 254, 239, 254, 239, 
+      1,   0,   0,   0,  79,  15, 
+      0,   0,   0,  67,  58,  92, 
+     85, 115, 101, 114, 115,  92, 
+    107, 111, 108, 106,  97,  92, 
+     79, 110, 101,  68, 114, 105, 
+    118, 101,  92,  68, 101, 115, 
+    107, 116, 111, 112,  92,  75, 
+    111, 108, 106,  97,  45,  83, 
+    116, 114, 111, 104, 109,  45, 
+     71,  97, 109, 101, 115,  92, 
+     65, 108, 108, 103, 101, 109, 
+    101, 105, 110,  92,  70, 114, 
+     97, 109, 101, 119, 111, 114, 
+    107,  92,  68,  88,  49,  50, 
+     80, 105, 120, 101, 108,  83, 
+    104,  97, 100, 101, 114,  46, 
+    104, 108, 115, 108,   0,   0, 
+     99,  58,  92, 117, 115, 101, 
+    114, 115,  92, 107, 111, 108, 
+    106,  97,  92, 111, 110, 101, 
+    100, 114, 105, 118, 101,  92, 
+    100, 101, 115, 107, 116, 111, 
+    112,  92, 107, 111, 108, 106, 
+     97,  45, 115, 116, 114, 111, 
+    104, 109,  45, 103,  97, 109, 
+    101, 115,  92,  97, 108, 108, 
+    103, 101, 109, 101, 105, 110, 
+     92, 102, 114,  97, 109, 101, 
+    119, 111, 114, 107,  92, 100, 
+    120,  49,  50, 112, 105, 120, 
+    101, 108, 115, 104,  97, 100, 
+    101, 114,  46, 104, 108, 115, 
+    108,   0,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
+     47,  47,  47,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1596,10 +1750,11 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  47,  47, 
-     32,  71,  76,  79,  66,  65, 
-     76,  83,  32,  47,  47,  32, 
      32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  13,  10, 
+     47,  47,  32,  71,  76,  79, 
+     66,  65,  76,  83,  32,  47, 
+     47,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1614,9 +1769,9 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     13,  10,  47,  47,  47,  47, 
+     32,  32,  13,  10,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  32,  32,  32, 
+     47,  47,  47,  47,  47,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1631,10 +1786,10 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  27, 226,  48,   1, 
-    128,   0,   0,   0, 175,  84, 
-    182,   2, 240, 190, 212,   1, 
-      1,   0,   0,   0,   0,   0, 
+     32,  32,  32,  32,  27, 226, 
+     48,   1, 128,   0,   0,   0, 
+     10, 147,  75, 219, 250, 190, 
+    212,   1,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1642,15 +1797,15 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
       0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,  94,   0, 
+      0,   0,  40,   0,   0,   0, 
+     27, 226,  48,   1,  93, 204, 
+     68, 139, 149,  14,   0,   0, 
+      1,   0,   0,   0,  93,   0, 
       0,   0,  94,   0,   0,   0, 
-     40,   0,   0,   0,  27, 226, 
-     48,   1,  35,  96,  10, 107, 
-    216,  14,   0,   0,   1,   0, 
-      0,   0,  93,   0,   0,   0, 
-     94,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1716,145 +1871,286 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   4,   0, 
-      0,   0,  66,   0,  60,  17, 
-     16,   1,   0,   0,   0,   1, 
-     10,   0,   1,   0,  15,   0, 
-    171,  63,  10,   0,   1,   0, 
-     15,   0, 171,  63,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  40,  82,  41,  32, 
-     72,  76,  83,  76,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
-     67, 111, 109, 112, 105, 108, 
-    101, 114,  32,  49,  48,  46, 
-     49,   0,   0,   0,  54,   0, 
-     61,  17,   1, 104, 108, 115, 
-    108,  70, 108,  97, 103, 115, 
-      0,  48, 120,  53,   0, 104, 
-    108, 115, 108,  84,  97, 114, 
-    103, 101, 116,   0, 112, 115, 
-     95,  53,  95,  49,   0, 104, 
-    108, 115, 108,  69, 110, 116, 
-    114, 121,   0, 109,  97, 105, 
-    110,   0,   0,   0,   0,   0, 
-     42,   0,  16,  17,   0,   0, 
-      0,   0, 176,   2,   0,   0, 
-      0,   0,   0,   0,  48,   0, 
       0,   0,   0,   0,   0,   0, 
-     48,   0,   0,   0,   7,  16, 
-      0,   0,  88,   0,   0,   0, 
-      1,   0, 160, 109,  97, 105, 
-    110,   0,  46,   0,  62,  17, 
-      4,  16,   0,   0,   9,   0, 
-    105, 110, 112, 117, 116,   0, 
+      4,   0,   0,   0,  66,   0, 
+     60,  17,  16,   1,   0,   0, 
+      0,   1,  10,   0,   1,   0, 
+     15,   0, 171,  63,  10,   0, 
+      1,   0,  15,   0, 171,  63, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  40,  82, 
+     41,  32,  72,  76,  83,  76, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  67, 111, 109, 112, 
+    105, 108, 101, 114,  32,  49, 
+     48,  46,  49,   0,   0,   0, 
+     54,   0,  61,  17,   1, 104, 
+    108, 115, 108,  70, 108,  97, 
+    103, 115,   0,  48, 120,  53, 
+      0, 104, 108, 115, 108,  84, 
+     97, 114, 103, 101, 116,   0, 
+    112, 115,  95,  53,  95,  49, 
+      0, 104, 108, 115, 108,  69, 
+    110, 116, 114, 121,   0, 109, 
+     97, 105, 110,   0,   0,   0, 
+      0,   0,  42,   0,  16,  17, 
+      0,   0,   0,   0, 216,   4, 
       0,   0,   0,   0,   0,   0, 
+    160,   1,   0,   0,   0,   0, 
+      0,   0, 160,   1,   0,   0, 
+      7,  16,   0,   0, 124,   0, 
+      0,   0,   1,   0, 160, 109, 
+     97, 105, 110,   0,  46,   0, 
+     62,  17,   4,  16,   0,   0, 
+      9,   0, 105, 110, 112, 117, 
+    116,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,   0,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   0,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,   4,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   4,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,   8,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   8,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  12,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  12,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  16,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  16,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  20,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  20,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  24,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  24,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  28,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  28,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  32,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  32,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  36,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  36,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  40,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  48,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  44,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  52,   0, 
-      0,   0,  22,   0,  80,  17, 
-      1,   0,   5,   0,  48,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  56,   0, 
-      0,   0,  58,   0,  62,  17, 
-      6,  16,   0,   0, 136,   0, 
-     60, 109,  97, 105, 110,  32, 
-    114, 101, 116, 117, 114, 110, 
-     32, 118,  97, 108, 117, 101, 
-     62,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+      0,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+      4,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      4,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+      8,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      8,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     12,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     12,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     16,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     16,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     20,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     20,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     24,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     24,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     28,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     28,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     32,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     32,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     36,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     36,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     40,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     48,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     44,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     52,   0,   0,   0,  22,   0, 
+     80,  17,   1,   0,   5,   0, 
+     48,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     56,   0,   0,   0,  58,   0, 
+     62,  17,   6,  16,   0,   0, 
+    136,   0,  60, 109,  97, 105, 
+    110,  32, 114, 101, 116, 117, 
+    114, 110,  32, 118,  97, 108, 
+    117, 101,  62,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   2,   0,   5,   0, 
+      0,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   2,   0,   5,   0, 
+      4,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      4,   0,   0,   0,  22,   0, 
+     80,  17,   2,   0,   5,   0, 
+      8,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+      8,   0,   0,   0,  22,   0, 
+     80,  17,   2,   0,   5,   0, 
+     12,   0,   4,   0, 124,   0, 
+      0,   0,   1,   0, 160,   1, 
+     12,   0,   0,   0,  50,   0, 
+     62,  17,   2,  16,   0,   0, 
+      8,   0, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,  22,   0,  80,  17, 
-      2,   0,   5,   0,   0,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   0,   0, 
-      0,   0,  22,   0,  80,  17, 
-      2,   0,   5,   0,   4,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   4,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0, 156,   0,   0,   0, 
+      1,   0, 148,   0,   0,   0, 
       0,   0,  22,   0,  80,  17, 
-      2,   0,   5,   0,   8,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,   8,   0, 
+      0,   0,   5,   0,   4,   0, 
+      4,   0, 156,   0,   0,   0, 
+      1,   0, 148,   0,   4,   0, 
       0,   0,  22,   0,  80,  17, 
-      2,   0,   5,   0,  12,   0, 
-      4,   0,  88,   0,   0,   0, 
-      1,   0,  48,   0,  12,   0, 
-      0,   0,   2,   0,   6,   0, 
-    244,   0,   0,   0,  24,   0, 
-      0,   0,   1,   0,   0,   0, 
-     16,   1, 182,  90, 119,  81, 
-    172, 114, 236,  81, 169, 208, 
-      4,  74, 174,  77,  81, 105, 
-      0,   0, 242,   0,   0,   0, 
-     72,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   1,   0, 
-    136,   0,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     60,   0,   0,   0,  88,   0, 
-      0,   0, 103,   0,   0, 128, 
-     88,   0,   0,   0, 103,   0, 
-      0,   0, 132,   0,   0,   0, 
-    103,   0,   0, 128, 132,   0, 
+      0,   0,   5,   0,   8,   0, 
+      4,   0, 156,   0,   0,   0, 
+      1,   0, 148,   0,   8,   0, 
+      0,   0,  54,   0,  62,  17, 
+      2,  16,   0,   0,   8,   0, 
+    115, 112, 101,  99, 117, 108, 
+     97, 114,  76, 105, 103, 104, 
+    116,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      0,   0,   4,   0, 188,   0, 
+      0,   0,   1,   0, 180,   0, 
+     16,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      4,   0,   4,   0, 188,   0, 
+      0,   0,   1,   0, 180,   0, 
+     20,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      8,   0,   4,   0, 188,   0, 
+      0,   0,   1,   0, 180,   0, 
+     24,   0,   0,   0,  54,   0, 
+     62,  17,   0,  16,   0,   0, 
+      8,   0, 109,  97, 116, 101, 
+    114, 105,  97, 108,  67, 111, 
+    108, 111, 114,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+    232,   0,   0,   0,   1,   0, 
+     36,   0,  32,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   4,   0,   4,   0, 
+    232,   0,   0,   0,   1,   0, 
+     36,   0,  36,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   8,   0,   4,   0, 
+    232,   0,   0,   0,   1,   0, 
+     36,   0,  40,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  12,   0,   4,   0, 
+    232,   0,   0,   0,   1,   0, 
+     52,   1,  44,   0,   0,   0, 
+     50,   0,  62,  17,   0,  16, 
+      0,   0,   8,   0, 116, 101, 
+    120, 116, 117, 114, 101,  67, 
+    111, 108, 111, 114,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      0,   0,   4,   0, 220,   1, 
+      0,   0,   1,   0,  64,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      4,   0,   4,   0, 220,   1, 
+      0,   0,   1,   0,  64,   0, 
+      4,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+      8,   0,   4,   0, 220,   1, 
+      0,   0,   1,   0,  64,   0, 
+      8,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   5,   0, 
+     12,   0,   4,   0, 240,   1, 
+      0,   0,   1,   0,  44,   0, 
+     44,   0,   0,   0,   2,   0, 
+      6,   0, 244,   0,   0,   0, 
+     24,   0,   0,   0,   1,   0, 
+      0,   0,  16,   1, 160, 149, 
+     17,  16, 107, 217,  70,   1, 
+     90,  86,  79,  94, 158,  84, 
+     18, 160,   0,   0, 242,   0, 
+      0,   0, 104,   1,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      1,   0,  28,   2,   0,   0, 
+      0,   0,   0,   0,  28,   0, 
+      0,   0,  92,   1,   0,   0, 
+    124,   0,   0,   0,  79,   0, 
+      0, 128, 124,   0,   0,   0, 
+     79,   0,   0,   0, 156,   0, 
+      0,   0,  80,   0,   0, 128, 
+    156,   0,   0,   0,  80,   0, 
+      0,   0, 188,   0,   0,   0, 
+    100,   0,   0, 128, 188,   0, 
+      0,   0, 100,   0,   0,   0, 
+    232,   0,   0,   0, 101,   0, 
+      0, 128, 232,   0,   0,   0, 
+    101,   0,   0,   0,  12,   1, 
+      0,   0, 101,   0,   0, 128, 
+     12,   1,   0,   0, 101,   0, 
+      0,   0,  48,   1,   0,   0, 
+    101,   0,   0, 128,  48,   1, 
+      0,   0, 101,   0,   0,   0, 
+     76,   1,   0,   0, 101,   0, 
+      0, 128,  76,   1,   0,   0, 
+    101,   0,   0,   0, 112,   1, 
+      0,   0, 101,   0,   0, 128, 
+    112,   1,   0,   0, 101,   0, 
+      0,   0, 140,   1,   0,   0, 
+    101,   0,   0, 128, 140,   1, 
+      0,   0, 101,   0,   0,   0, 
+    180,   1,   0,   0, 101,   0, 
+      0, 128, 180,   1,   0,   0, 
+    101,   0,   0,   0, 220,   1, 
+      0,   0, 102,   0,   0, 128, 
+    220,   1,   0,   0, 102,   0, 
+      0,   0, 240,   1,   0,   0, 
+    103,   0,   0, 128, 240,   1, 
       0,   0, 103,   0,   0,   0, 
-      5,   0,  57,   0,  12,   0, 
-     56,   0,   5,   0,  57,   0, 
-      5,   0,  57,   0, 246,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,  12,   0, 
+      4,   2,   0,   0, 103,   0, 
+      0, 128,   4,   2,   0,   0, 
+    103,   0,   0,   0,  24,   2, 
+      0,   0, 103,   0,   0, 128, 
+     24,   2,   0,   0, 103,   0, 
+      0,   0,   5,   0,  44,   0, 
+     27,   0,  43,   0,   5,   0, 
+     45,   0,  28,   0,  44,   0, 
+      5,   0,  73,   0,  28,   0, 
+     72,   0,   5,   0, 248,   0, 
+     37,   0,  72,   0,   5,   0, 
+    248,   0,  76,   0, 156,   0, 
+      5,   0, 248,   0,  37,   0, 
+    156,   0,   5,   0, 248,   0, 
+    160,   0, 245,   0,   5,   0, 
+    248,   0,  37,   0, 245,   0, 
+      5,   0, 248,   0,  27,   0, 
+    247,   0,   5,   0, 248,   0, 
+     27,   0, 247,   0,   5,   0, 
+     37,   0,   5,   0,  36,   0, 
+      5,   0,  24,   0,   5,   0, 
+     24,   0,   5,   0,  24,   0, 
+      5,   0,  24,   0,   5,   0, 
+     24,   0,   5,   0,  24,   0, 
+    246,   0,   0,   0,   4,   0, 
       0,   0,   0,   0,   0,   0, 
-     20,   0,   0,   0,  60,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,  20,   0,   0,   0, 
+     60,   0,   0,   0, 100,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1887,67 +2183,37 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  11, 202,  49,   1, 
-     56,   0,   0,   0,   0,  16, 
-      0,   0,  14,  16,   0,   0, 
-     56,   1,   0,   0,  10,   0, 
-    255, 255,   4,   0,   0,   0, 
-    255, 255,   3,   0,   0,   0, 
-      0,   0,  56,   0,   0,   0, 
-     56,   0,   0,   0,   8,   0, 
-      0,   0,  64,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     27,  21,  64,   0,   0,   0, 
-      4,   0,   0,   0,  16,   0, 
-    102, 108, 111,  97, 116,  52, 
-      0, 243, 242, 241,  22,   0, 
-     27,  21,  64,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-    102, 108, 111,  97, 116,  50, 
-      0, 243, 242, 241,  22,   0, 
-     27,  21,  64,   0,   0,   0, 
-      3,   0,   0,   0,  12,   0, 
-    102, 108, 111,  97, 116,  51, 
-      0, 243, 242, 241,  78,   0, 
-      3,  18,  13,  21,   3,   0, 
-      0,  16,   0,   0,   0,   0, 
-    119, 111, 114, 108, 100,  80, 
-    111, 115,   0, 241,  13,  21, 
-      3,   0,   0,  16,   0,   0, 
-     16,   0, 112, 111, 115, 105, 
-    116, 105, 111, 110,   0, 241, 
-     13,  21,   3,   0,   1,  16, 
-      0,   0,  32,   0, 116, 101, 
-    120,   0, 242, 241,  13,  21, 
-      3,   0,   2,  16,   0,   0, 
-     40,   0, 110, 111, 114, 109, 
-     97, 108,   0, 243, 242, 241, 
-     38,   0,   5,  21,   4,   0, 
-      0,   0,   3,  16,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  52,   0,  80, 105, 
-    120, 101, 108,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-      0, 243, 242, 241,  10,   0, 
-      1,  18,   1,   0,   0,   0, 
-      4,  16,   0,   0,  10,   0, 
-     24,  21,   0,  16,   0,   0, 
-      1,   0,   1,   0,  14,   0, 
-      8,  16,   6,  16,   0,   0, 
-     23,   0,   1,   0,   5,  16, 
-      0,   0,  14,   0,  23,  21, 
-      0,  16,   0,   0,   3,   2, 
-    176,   3,   0,   0, 242, 241, 
-     10,   0,  24,  21,   8,  16, 
-      0,   0,   1,   0,   1,   0, 
-     10,   0,  24,  21,   9,  16, 
-      0,   0,   1,   0,   0,   2, 
-     14,   0,  23,  21,   0,   0, 
-      0,   0,  10,   2,   0,   0, 
-      0,   0, 242, 241,  10,   0, 
-     24,  21,  11,  16,   0,   0, 
-      1,   0,   1,   0,  10,   0, 
-     24,  21,  12,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  17,  16,   0,   0, 
       1,   0,   0,   2,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1972,13 +2238,158 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  11, 202, 
      49,   1,  56,   0,   0,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-     11,   0, 255, 255,   4,   0, 
+      0,  16,   0,   0,  19,  16, 
+      0,   0, 208,   1,   0,   0, 
+     10,   0, 255, 255,   4,   0, 
       0,   0, 255, 255,   3,   0, 
+      0,   0,   0,   0,  76,   0, 
+      0,   0,  76,   0,   0,   0, 
+      8,   0,   0,   0,  84,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  27,  21,  64,   0, 
+      0,   0,   4,   0,   0,   0, 
+     16,   0, 102, 108, 111,  97, 
+    116,  52,   0, 243, 242, 241, 
+     22,   0,  27,  21,  64,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0, 102, 108, 111,  97, 
+    116,  50,   0, 243, 242, 241, 
+     22,   0,  27,  21,  64,   0, 
+      0,   0,   3,   0,   0,   0, 
+     12,   0, 102, 108, 111,  97, 
+    116,  51,   0, 243, 242, 241, 
+     78,   0,   3,  18,  13,  21, 
+      3,   0,   0,  16,   0,   0, 
+      0,   0, 119, 111, 114, 108, 
+    100,  80, 111, 115,   0, 241, 
+     13,  21,   3,   0,   0,  16, 
+      0,   0,  16,   0, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0, 241,  13,  21,   3,   0, 
+      1,  16,   0,   0,  32,   0, 
+    116, 101, 120,   0, 242, 241, 
+     13,  21,   3,   0,   2,  16, 
+      0,   0,  40,   0, 110, 111, 
+    114, 109,  97, 108,   0, 243, 
+    242, 241,  38,   0,   5,  21, 
+      4,   0,   0,   0,   3,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  52,   0, 
+     80, 105, 120, 101, 108,  73, 
+    110, 112, 117, 116,  84, 121, 
+    112, 101,   0, 243, 242, 241, 
+     10,   0,   1,  18,   1,   0, 
+      0,   0,   4,  16,   0,   0, 
+     10,   0,  24,  21,   0,  16, 
+      0,   0,   1,   0,   1,   0, 
+     14,   0,   8,  16,   6,  16, 
+      0,   0,  23,   0,   1,   0, 
+      5,  16,   0,   0,  14,   0, 
+     23,  21,   0,  16,   0,   0, 
+      3,   2,  80,   3,   0,   0, 
+    242, 241,  10,   0,  24,  21, 
+      8,  16,   0,   0,   1,   0, 
+      1,   0,  10,   0,  24,  21, 
+      9,  16,   0,   0,   1,   0, 
+      0,   2,  14,   0,  23,  21, 
+      0,   0,   0,   0,  10,   2, 
+      0,   0,   0,   0, 242, 241, 
+     10,   0,  24,  21,  11,  16, 
+      0,   0,   1,   0,   1,   0, 
+     10,   0,  24,  21,  12,  16, 
+      0,   0,   1,   0,   0,   2, 
+     78,   0,   3,  18,  13,  21, 
+      3,   0,  64,   0,   0,   0, 
+      0,   0,  97, 109,  98, 105, 
+    101, 110, 116,  70,  97,  99, 
+    116, 111, 114,   0,  13,  21, 
+      3,   0,  64,   0,   0,   0, 
+      4,   0, 100, 105, 102, 102, 
+    117, 115,  70,  97,  99, 116, 
+    111, 114,   0, 241,  13,  21, 
+      3,   0,  64,   0,   0,   0, 
+      8,   0, 115, 112, 101,  99, 
+    117, 108,  97, 114,  70,  97, 
+     99, 116, 111, 114,   0, 243, 
+    242, 241,  30,   0,   5,  21, 
+      3,   0,   0,   0,  14,  16, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  12,   0, 
+     77,  97, 116, 101, 114, 105, 
+     97, 108,   0, 241,  10,   0, 
+     24,  21,  15,  16,   0,   0, 
+      1,   0,   1,   0,  14,   0, 
+     23,  21,  16,  16,   0,   0, 
+     36,   2,   0,   0,   0,   0, 
+    242, 241,  10,   0,  24,  21, 
+     11, 202,  49,   1,  56,   0, 
+      0,   0,   0,  16,   0,   0, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,  11,   0, 255, 255, 
+      4,   0,   0,   0, 255, 255, 
+      3,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2058,123 +2469,123 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     97, 116,  32, 115, 112, 101, 
-     99, 117, 108,  97, 114,  70, 
-     97,  99, 116, 111, 114,  59, 
-     13,  10, 125,  59,  13,  10, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  76, 105, 103, 
-    104, 116,  67, 111, 117, 110, 
-    116,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 105, 110, 
-    116,  32, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  67, 111, 117, 110, 
-    116,  59,  13,  10,  32,  32, 
-     32,  32, 105, 110, 116,  32, 
-    112, 111, 105, 110, 116,  76, 
+      0,   0,  97, 116,  32, 115, 
+    112, 101,  99, 117, 108,  97, 
+    114,  70,  97,  99, 116, 111, 
+    114,  59,  13,  10, 125,  59, 
+     13,  10,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  76, 
+    105, 103, 104, 116,  67, 111, 
+    117, 110, 116,  13,  10, 123, 
+     13,  10,  32,  32,  32,  32, 
+    105, 110, 116,  32, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
     105, 103, 104, 116,  67, 111, 
     117, 110, 116,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     67, 111, 110, 115, 116,  97, 
-    110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  75,  97, 109, 
-    101, 114,  97,  66, 117, 102, 
-    102, 101, 114,  50,  62,  32, 
+     32,  32,  32,  32, 105, 110, 
+    116,  32, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+     67, 111, 117, 110, 116,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  67, 111, 110, 115, 
+    116,  97, 110, 116,  66, 117, 
+    102, 102, 101, 114,  60,  75, 
+     97, 109, 101, 114,  97,  66, 
+    117, 102, 102, 101, 114,  50, 
+     62,  32,  75,  97, 109, 101, 
+    114,  97,  50,  32,  58,  32, 
+    114, 101, 103, 105, 115, 116, 
+    101, 114,  40,  32,  98,  48, 
+     32,  41,  59,  13,  10,  67, 
+    111, 110, 115, 116,  97, 110, 
+    116,  66, 117, 102, 102, 101, 
+    114,  60,  77,  97, 116, 114, 
+    105, 120,  66, 117, 102, 102, 
+    101, 114,  62,  32,  83, 107, 
+    101, 108, 101, 116, 116,  32, 
+     58,  32, 114, 101, 103, 105, 
+    115, 116, 101, 114,  40,  32, 
+     98,  49,  32,  41,  59,  13, 
+     10,  67, 111, 110, 115, 116, 
+     97, 110, 116,  66, 117, 102, 
+    102, 101, 114,  60,  75,  97, 
+    109, 101, 114,  97,  66, 117, 
+    102, 102, 101, 114,  62,  32, 
      75,  97, 109, 101, 114,  97, 
-     50,  32,  58,  32, 114, 101, 
-    103, 105, 115, 116, 101, 114, 
-     40,  32,  98,  48,  32,  41, 
-     59,  13,  10,  67, 111, 110, 
-    115, 116,  97, 110, 116,  66, 
-    117, 102, 102, 101, 114,  60, 
-     77,  97, 116, 114, 105, 120, 
-     66, 117, 102, 102, 101, 114, 
-     62,  32,  83, 107, 101, 108, 
-    101, 116, 116,  32,  58,  32, 
+     32,  58,  32, 114, 101, 103, 
+    105, 115, 116, 101, 114,  40, 
+     32,  98,  50,  32,  41,  59, 
+     13,  10,  67, 111, 110, 115, 
+    116,  97, 110, 116,  66, 117, 
+    102, 102, 101, 114,  60,  77, 
+     97, 116, 101, 114, 105,  97, 
+    108,  62,  32,  79,  98, 106, 
+    101,  99, 116,  32,  58,  32, 
     114, 101, 103, 105, 115, 116, 
-    101, 114,  40,  32,  98,  49, 
+    101, 114,  40,  32,  98,  51, 
      32,  41,  59,  13,  10,  67, 
     111, 110, 115, 116,  97, 110, 
     116,  66, 117, 102, 102, 101, 
-    114,  60,  75,  97, 109, 101, 
-    114,  97,  66, 117, 102, 102, 
-    101, 114,  62,  32,  75,  97, 
-    109, 101, 114,  97,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  32,  98, 
-     50,  32,  41,  59,  13,  10, 
-     67, 111, 110, 115, 116,  97, 
-    110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  77,  97, 116, 
-    101, 114, 105,  97, 108,  62, 
-     32,  79,  98, 106, 101,  99, 
+    114,  60,  76, 105, 103, 104, 
+    116,  67, 111, 117, 110, 116, 
+     62,  32,  76, 105, 103, 104, 
     116,  32,  58,  32, 114, 101, 
     103, 105, 115, 116, 101, 114, 
-     40,  32,  98,  51,  32,  41, 
-     59,  13,  10,  67, 111, 110, 
-    115, 116,  97, 110, 116,  66, 
-    117, 102, 102, 101, 114,  60, 
-     76, 105, 103, 104, 116,  67, 
-    111, 117, 110, 116,  62,  32, 
-     76, 105, 103, 104, 116,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-     98,  52,  32,  41,  59,  13, 
-     10,  13,  10,  47,  47,  32, 
-    108, 105, 103, 104, 116, 115, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  68, 105, 102, 
-    102, 117, 115, 101,  76, 105, 
+     40,  32,  98,  52,  32,  41, 
+     59,  13,  10,  13,  10,  47, 
+     47,  32, 108, 105, 103, 104, 
+    116, 115,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  68, 
+    105, 102, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  51,  32, 100, 105, 114, 
+    101,  99, 116, 105, 111, 110, 
+     59,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     51,  32,  99, 111, 108, 111, 
+    114,  59,  13,  10, 125,  59, 
+     13,  10,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  80, 
+    111, 105, 110, 116,  76, 105, 
     103, 104, 116,  13,  10, 123, 
      13,  10,  32,  32,  32,  32, 
     102, 108, 111,  97, 116,  51, 
-     32, 100, 105, 114, 101,  99, 
-    116, 105, 111, 110,  59,  13, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  59,  13,  10, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  51,  32,  99, 
+    111, 108, 111, 114,  59,  13, 
      10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  51,  32, 
-     99, 111, 108, 111, 114,  59, 
+    108, 111,  97, 116,  32, 114, 
+     97, 100, 105, 117, 115,  59, 
      13,  10, 125,  59,  13,  10, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  80, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  51,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  59,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  51,  32,  99, 111, 108, 
-    111, 114,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  32, 114,  97, 100, 
-    105, 117, 115,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     47,  47,  83, 116, 114, 117, 
-     99, 116, 117, 114, 101, 100, 
-     66, 117, 102, 102, 101, 114, 
-     60,  32,  68, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  32,  62,  32, 100, 
-    105, 102, 117, 115, 101,  76, 
+     13,  10,  47,  47,  83, 116, 
+    114, 117,  99, 116, 117, 114, 
+    101, 100,  66, 117, 102, 102, 
+    101, 114,  60,  32,  68, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  32,  62, 
+     32, 100, 105, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+    115,  32,  58,  32, 114, 101, 
+    103, 105, 115, 116, 101, 114, 
+     40,  32, 116,  49,  32,  41, 
+     59,  13,  10,  47,  47,  83, 
+    116, 114, 117,  99, 116, 117, 
+    114, 101, 100,  66, 117, 102, 
+    102, 101, 114,  60,  32,  80, 
+    111, 105, 110, 116,  76, 105, 
+    103, 104, 116,  32,  62,  32, 
+    112, 111, 105, 110, 116,  76, 
     105, 103, 104, 116, 115,  32, 
      58,  32, 114, 101, 103, 105, 
     115, 116, 101, 114,  40,  32, 
-    116,  49,  32,  41,  59,  13, 
-     10,  47,  47,  83, 116, 114, 
-    117,  99, 116, 117, 114, 101, 
-    100,  66, 117, 102, 102, 101, 
-    114,  60,  32,  80, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116,  32,  62,  32, 112, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116, 115,  32,  58,  32, 
-    114, 101, 103, 105, 115, 116, 
-    101, 114,  40,  32, 116,  50, 
-     32,  41,  59,  13,  10,  13, 
-     10,  47,  47,  47,  47,  47, 
+    116,  50,  32,  41,  59,  13, 
+     10,  13,  10,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  32,  32,  32, 
+     47,  47,  47,  47,  47,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2189,10 +2600,10 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  13,  10,  47, 
-     47,  32,  84,  89,  80,  69, 
-     68,  69,  70,  83,  32,  47, 
-     47,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  13, 
+     10,  47,  47,  32,  84,  89, 
+     80,  69,  68,  69,  70,  83, 
+     32,  47,  47,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2207,9 +2618,10 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10,  47,  47,  47, 
+     32,  32,  32,  13,  10,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  47,  32, 
+     47,  47,  47,  47,  47,  47, 
+     47,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2224,34 +2636,33 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10, 115, 116, 114, 117,  99, 
-    116,  32,  80, 105, 120, 101, 
-    108,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  13,  10, 
-    123,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     52,  32, 119, 111, 114, 108, 
-    100,  80, 111, 115,  32,  58, 
-     32,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  52,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32,  58,  32,  83,  86, 
-     95,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
+     32,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  80, 105, 
+    120, 101, 108,  73, 110, 112, 
+    117, 116,  84, 121, 112, 101, 
+     13,  10, 123,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  52,  32, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
+     32,  58,  32,  80,  79,  83, 
+     73,  84,  73,  79,  78,  59, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  52, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  58,  32, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,  59, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  50, 
+     32, 116, 101, 120,  32,  58, 
+     32,  84,  69,  88,  67,  79, 
+     79,  82,  68,  59,  13,  10, 
      32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  50,  32, 116, 
-    101, 120,  32,  58,  32,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,  59,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  51,  32, 110, 111, 114, 
-    109,  97, 108,  32,  58,  32, 
-     78,  79,  82,  77,  65,  76, 
-     59,  13,  10, 125,  59,  13, 
-     10,  13,  10,  47,  47,  47, 
+    111,  97, 116,  51,  32, 110, 
+    111, 114, 109,  97, 108,  32, 
+     58,  32,  78,  79,  82,  77, 
+     65,  76,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -2264,14 +2675,14 @@ const BYTE DX12PixelShaderBytes[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  47,  32, 
+     47,  47,  47,  47,  47,  47, 
+     47,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,  47,  47,  32,  80, 105, 
-    120, 101, 108,  32,  83, 104, 
-     97, 100, 101, 114,  32,  32, 
+     32,  13,  10,  47,  47,  32, 
+     80, 105, 120, 101, 108,  32, 
+     83, 104,  97, 100, 101, 114, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2286,8 +2697,8 @@ const BYTE DX12PixelShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  13,  10,  47, 
-     47,  47,  47,  47,  47,  47, 
+     32,  32,  32,  32,  32,  13, 
+     10,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -2300,48 +2711,70 @@ const BYTE DX12PixelShaderBytes[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  32,  32,  32,  32,  32, 
+     47,  47,  47,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10, 102, 108, 111, 
-     97, 116,  52,  32, 109,  97, 
-    105, 110,  40,  32,  80, 105, 
-    120, 101, 108,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-     32, 105, 110, 112, 117, 116, 
-     32,  41,  32,  58,  32,  83, 
-     86,  95,  84,  65,  82,  71, 
-     69,  84,  13,  10, 123,  13, 
+     32,  32,  32,  13,  10, 102, 
+    108, 111,  97, 116,  52,  32, 
+    109,  97, 105, 110,  40,  32, 
+     80, 105, 120, 101, 108,  73, 
+    110, 112, 117, 116,  84, 121, 
+    112, 101,  32, 105, 110, 112, 
+    117, 116,  32,  41,  32,  58, 
+     32,  83,  86,  95,  84,  65, 
+     82,  71,  69,  84,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     51,  32, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,  32,  61,  32, 102, 
+    108, 111,  97, 116,  51,  40, 
+     32,  48,  44,  32,  48,  44, 
+     32,  48,  32,  41,  59,  13, 
      10,  32,  32,  32,  32, 102, 
     108, 111,  97, 116,  51,  32, 
-    100, 105, 102, 102, 117, 115, 
-    101,  76, 105, 103, 104, 116, 
-     32,  61,  32, 102, 108, 111, 
-     97, 116,  51,  40,  32,  48, 
-     44,  32,  48,  44,  32,  48, 
-     32,  41,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32, 115, 112, 
-    101,  99, 117, 108,  97, 114, 
-     76, 105, 103, 104, 116,  32, 
-     61,  32, 102, 108, 111,  97, 
-    116,  51,  40,  32,  48,  44, 
-     32,  48,  44,  32,  48,  32, 
-     41,  59,  13,  10,  32,  32, 
-     32,  47,  42,  32, 102, 111, 
-    114,  40,  32, 105, 110, 116, 
-     32, 106,  32,  61,  32,  48, 
-     59,  32, 106,  32,  60,  32, 
-     76, 105, 103, 104, 116,  46, 
-    100, 105, 102, 102, 117, 115, 
+    115, 112, 101,  99, 117, 108, 
+     97, 114,  76, 105, 103, 104, 
+    116,  32,  61,  32, 102, 108, 
+    111,  97, 116,  51,  40,  32, 
+     48,  44,  32,  48,  44,  32, 
+     48,  32,  41,  59,  13,  10, 
+     32,  32,  32,  47,  42,  32, 
+    102, 111, 114,  40,  32, 105, 
+    110, 116,  32, 106,  32,  61, 
+     32,  48,  59,  32, 106,  32, 
+     60,  32,  76, 105, 103, 104, 
+    116,  46, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,  67, 111, 117, 110, 
+    116,  59,  32, 106,  43,  43, 
+     32,  41,  13,  10,  32,  32, 
+     32,  32, 123,  13,  10,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32, 105, 102,  40,  32, 100, 
+    111, 116,  40,  32, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  44,  32, 
+     45, 100, 105, 102, 117, 115, 
     101,  76, 105, 103, 104, 116, 
-     67, 111, 117, 110, 116,  59, 
-     32, 106,  43,  43,  32,  41, 
+    115,  91,  32, 106,  32,  93, 
+     46, 100, 105, 114, 101,  99, 
+    116, 105, 111, 110,  32,  41, 
+     32,  60,  32,  48,  32,  41, 
      13,  10,  32,  32,  32,  32, 
-    123,  13,  10,  32,  32,  32, 
-     32,  32,  32,  32,  32, 105, 
-    102,  40,  32, 100, 111, 116, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  99, 111, 110, 116, 
+    105, 110, 117, 101,  59,  13, 
+     10,  32,  32,  32,  32,  32, 
+     32,  32,  32, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  32,  43,  61, 
+     32, 100, 105, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+    115,  91,  32, 106,  32,  93, 
+     46,  99, 111, 108, 111, 114, 
+     32,  42,  32, 100, 111, 116, 
      40,  32, 105, 110, 112, 117, 
     116,  46, 110, 111, 114, 109, 
      97, 108,  44,  32,  45, 100, 
@@ -2349,84 +2782,102 @@ const BYTE DX12PixelShaderBytes[] =
     105, 103, 104, 116, 115,  91, 
      32, 106,  32,  93,  46, 100, 
     105, 114, 101,  99, 116, 105, 
-    111, 110,  32,  41,  32,  60, 
-     32,  48,  32,  41,  13,  10, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     99, 111, 110, 116, 105, 110, 
-    117, 101,  59,  13,  10,  32, 
+    111, 110,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32, 125, 
+     13,  10,  32,  32,  32,  32, 
+    102, 111, 114,  40,  32, 105, 
+    110, 116,  32, 105,  32,  61, 
+     32,  48,  59,  32, 105,  32, 
+     60,  32,  76, 105, 103, 104, 
+    116,  46, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+     67, 111, 117, 110, 116,  59, 
+     32, 105,  43,  43,  32,  41, 
+     13,  10,  32,  32,  32,  32, 
+    123,  13,  10,  32,  32,  32, 
+     32,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  51,  32, 
+    108, 105, 103, 104, 116,  68, 
+    105, 114,  32,  61,  32, 112, 
+    111, 105, 110, 116,  76, 105, 
+    103, 104, 116, 115,  91,  32, 
+    105,  32,  93,  46, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32,  45,  32, 105, 110, 112, 
+    117, 116,  46, 119, 111, 114, 
+    108, 100,  80, 111, 115,  46, 
+    120, 121, 122,  59,  13,  10, 
      32,  32,  32,  32,  32,  32, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116,  32,  43,  61,  32, 100, 
-    105, 102, 117, 115, 101,  76, 
-    105, 103, 104, 116, 115,  91, 
-     32, 106,  32,  93,  46,  99, 
-    111, 108, 111, 114,  32,  42, 
-     32, 100, 111, 116,  40,  32, 
-    105, 110, 112, 117, 116,  46, 
-    110, 111, 114, 109,  97, 108, 
-     44,  32,  45, 100, 105, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116, 115,  91,  32, 106, 
-     32,  93,  46, 100, 105, 114, 
-    101,  99, 116, 105, 111, 110, 
-     32,  41,  59,  13,  10,  32, 
-     32,  32,  32, 125,  13,  10, 
-     32,  32,  32,  32, 102, 111, 
-    114,  40,  32, 105, 110, 116, 
-     32, 105,  32,  61,  32,  48, 
-     59,  32, 105,  32,  60,  32, 
-     76, 105, 103, 104, 116,  46, 
-    112, 111, 105, 110, 116,  76, 
-    105, 103, 104, 116,  67, 111, 
-    117, 110, 116,  59,  32, 105, 
-     43,  43,  32,  41,  13,  10, 
-     32,  32,  32,  32, 123,  13, 
-     10,  32,  32,  32,  32,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32, 108, 105, 
-    103, 104, 116,  68, 105, 114, 
-     32,  61,  32, 112, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116, 115,  91,  32, 105,  32, 
-     93,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  45, 
-     32, 105, 110, 112, 117, 116, 
-     46, 119, 111, 114, 108, 100, 
-     80, 111, 115,  46, 120, 121, 
-    122,  59,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  32, 102,  97,  99, 116, 
+    111, 114,  32,  61,  32, 112, 
+    111, 105, 110, 116,  76, 105, 
+    103, 104, 116, 115,  91,  32, 
+    105,  32,  93,  46, 114,  97, 
+    100, 105, 117, 115,  32,  47, 
+     32, 108, 101, 110, 103, 116, 
+    104,  40,  32, 108, 105, 103, 
+    104, 116,  68, 105, 114,  32, 
+     41,  59,  13,  10,  32,  32, 
      32,  32,  32,  32,  32,  32, 
     102, 108, 111,  97, 116,  32, 
+    102,  32,  61,  32, 100, 111, 
+    116,  40,  32, 105, 110, 112, 
+    117, 116,  46, 110, 111, 114, 
+    109,  97, 108,  44,  32, 110, 
+    111, 114, 109,  97, 108, 105, 
+    122, 101,  40,  32, 108, 105, 
+    103, 104, 116,  68, 105, 114, 
+     32,  41,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32,  32, 
+     32,  32,  32, 105, 102,  40, 
+     32, 102,  32,  62,  32,  48, 
+     32,  41,  13,  10,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+    123,  13,  10,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  32,  43,  61, 
+     32, 112, 111, 105, 110, 116, 
+     76, 105, 103, 104, 116, 115, 
+     91,  32, 105,  32,  93,  46, 
+     99, 111, 108, 111, 114,  32, 
+     42,  32, 102,  32,  42,  32, 
     102,  97,  99, 116, 111, 114, 
-     32,  61,  32, 112, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116, 115,  91,  32, 105,  32, 
-     93,  46, 114,  97, 100, 105, 
-    117, 115,  32,  47,  32, 108, 
-    101, 110, 103, 116, 104,  40, 
-     32, 108, 105, 103, 104, 116, 
-     68, 105, 114,  32,  41,  59, 
-     13,  10,  32,  32,  32,  32, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  32, 102,  32, 
-     61,  32, 100, 111, 116,  40, 
-     32, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  44,  32, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40,  32, 108, 105, 103, 104, 
+     59,  13,  10,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32, 102,  32,  61, 
+     32, 100, 111, 116,  40,  32, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40,  32, 114, 
+    101, 102, 108, 101,  99, 116, 
+     40,  32, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+     32,  45, 108, 105, 103, 104, 
     116,  68, 105, 114,  32,  41, 
-     32,  41,  59,  13,  10,  32, 
+     44,  32, 105, 110, 112, 117, 
+    116,  46, 110, 111, 114, 109, 
+     97, 108,  32,  41,  32,  41, 
+     44,  32, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+     32,  75,  97, 109, 101, 114, 
+     97,  46, 107,  80, 111, 115, 
+    105, 116, 105, 111, 110,  46, 
+    120, 121, 122,  32,  45,  32, 
+    105, 110, 112, 117, 116,  46, 
+    119, 111, 114, 108, 100,  80, 
+    111, 115,  46, 120, 121, 122, 
+     32,  41,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32, 105, 102,  40,  32, 102, 
      32,  62,  32,  48,  32,  41, 
      13,  10,  32,  32,  32,  32, 
-     32,  32,  32,  32, 123,  13, 
-     10,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
+     32,  32,  32,  32,  32,  32, 
+    115, 112, 101,  99, 117, 108, 
+     97, 114,  76, 105, 103, 104, 
     116,  32,  43,  61,  32, 112, 
     111, 105, 110, 116,  76, 105, 
     103, 104, 116, 115,  91,  32, 
@@ -2435,50 +2886,10 @@ const BYTE DX12PixelShaderBytes[] =
     102,  32,  42,  32, 102,  97, 
      99, 116, 111, 114,  59,  13, 
      10,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32, 102,  32,  61,  32, 100, 
-    111, 116,  40,  32, 110, 111, 
-    114, 109,  97, 108, 105, 122, 
-    101,  40,  32, 114, 101, 102, 
-    108, 101,  99, 116,  40,  32, 
-    110, 111, 114, 109,  97, 108, 
-    105, 122, 101,  40,  32,  45, 
-    108, 105, 103, 104, 116,  68, 
-    105, 114,  32,  41,  44,  32, 
-    105, 110, 112, 117, 116,  46, 
-    110, 111, 114, 109,  97, 108, 
-     32,  41,  32,  41,  44,  32, 
-    110, 111, 114, 109,  97, 108, 
-    105, 122, 101,  40,  32,  75, 
-     97, 109, 101, 114,  97,  46, 
-    107,  80, 111, 115, 105, 116, 
-    105, 111, 110,  46, 120, 121, 
-    122,  32,  45,  32, 105, 110, 
-    112, 117, 116,  46, 119, 111, 
-    114, 108, 100,  80, 111, 115, 
-     46, 120, 121, 122,  32,  41, 
-     32,  41,  59,  13,  10,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32, 105, 
-    102,  40,  32, 102,  32,  62, 
-     32,  48,  32,  41,  13,  10, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32, 115, 112, 
-    101,  99, 117, 108,  97, 114, 
-     76, 105, 103, 104, 116,  32, 
-     43,  61,  32, 112, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116, 115,  91,  32, 105,  32, 
-     93,  46,  99, 111, 108, 111, 
-    114,  32,  42,  32, 102,  32, 
-     42,  32, 102,  97,  99, 116, 
-    111, 114,  59,  13,  10,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32, 125,  13,  10,  32,  32, 
-     32,  32, 125,  42,  47,  13, 
-     10,  32,  32,  32,  32,  47, 
-     47, 102, 108, 111,  97, 116, 
+     32,  32,  32, 125,  13,  10, 
+     32,  32,  32,  32, 125,  42, 
+     47,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
      52,  32, 109,  97, 116, 101, 
     114, 105,  97, 108,  67, 111, 
     108, 111, 114,  32,  61,  32, 
@@ -2490,76 +2901,66 @@ const BYTE DX12PixelShaderBytes[] =
     112, 101,  44,  32, 105, 110, 
     112, 117, 116,  46, 116, 101, 
     120,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32,  47,  47, 
-    102, 108, 111,  97, 116,  52, 
-     32, 116, 101, 120, 116, 117, 
-    114, 101,  67, 111, 108, 111, 
-    114,  32,  61,  32, 115,  97, 
-    116, 117, 114,  97, 116, 101, 
-     40,  32, 109,  97, 116, 101, 
-    114, 105,  97, 108,  67, 111, 
-    108, 111, 114,  32,  42,  32, 
-     79,  98, 106, 101,  99, 116, 
-     46,  97, 109,  98, 105, 101, 
-    110, 116,  70,  97,  99, 116, 
-    111, 114,  32,  43,  32, 102, 
-    108, 111,  97, 116,  52,  40, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116,  46, 120,  44,  32, 100, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  52,  32, 116, 
+    101, 120, 116, 117, 114, 101, 
+     67, 111, 108, 111, 114,  32, 
+     61,  32, 115,  97, 116, 117, 
+    114,  97, 116, 101,  40,  32, 
+    109,  97, 116, 101, 114, 105, 
+     97, 108,  67, 111, 108, 111, 
+    114,  32,  42,  32,  79,  98, 
+    106, 101,  99, 116,  46,  97, 
+    109,  98, 105, 101, 110, 116, 
+     70,  97,  99, 116, 111, 114, 
+     32,  43,  32, 102, 108, 111, 
+     97, 116,  52,  40,  32, 100, 
     105, 102, 102, 117, 115, 101, 
      76, 105, 103, 104, 116,  46, 
-    121,  44,  32, 100, 105, 102, 
+    120,  44,  32, 100, 105, 102, 
     102, 117, 115, 101,  76, 105, 
-    103, 104, 116,  46, 122,  44, 
-     32,  48,  32,  41,  32,  42, 
-     32,  79,  98, 106, 101,  99, 
-    116,  46, 100, 105, 102, 102, 
-    117, 115,  70,  97,  99, 116, 
-    111, 114,  32,  43,  32, 102, 
-    108, 111,  97, 116,  52,  40, 
-     32, 115, 112, 101,  99, 117, 
-    108,  97, 114,  76, 105, 103, 
-    104, 116,  46, 120,  44,  32, 
-    115, 112, 101,  99, 117, 108, 
-     97, 114,  76, 105, 103, 104, 
-    116,  46, 121,  44,  32, 115, 
+    103, 104, 116,  46, 121,  44, 
+     32, 100, 105, 102, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116,  46, 122,  44,  32,  48, 
+     32,  41,  32,  42,  32,  79, 
+     98, 106, 101,  99, 116,  46, 
+    100, 105, 102, 102, 117, 115, 
+     70,  97,  99, 116, 111, 114, 
+     32,  43,  32, 102, 108, 111, 
+     97, 116,  52,  40,  32, 115, 
     112, 101,  99, 117, 108,  97, 
     114,  76, 105, 103, 104, 116, 
-     46, 122,  44,  32,  48,  32, 
-     41,  32,  42,  32,  79,  98, 
-    106, 101,  99, 116,  46, 115, 
-    112, 101,  99, 117, 108,  97, 
-    114,  70,  97,  99, 116, 111, 
-    114,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32,  47,  47, 
+     46, 120,  44,  32, 115, 112, 
+    101,  99, 117, 108,  97, 114, 
+     76, 105, 103, 104, 116,  46, 
+    121,  44,  32, 115, 112, 101, 
+     99, 117, 108,  97, 114,  76, 
+    105, 103, 104, 116,  46, 122, 
+     44,  32,  48,  32,  41,  32, 
+     42,  32,  79,  98, 106, 101, 
+     99, 116,  46, 115, 112, 101, 
+     99, 117, 108,  97, 114,  70, 
+     97,  99, 116, 111, 114,  32, 
+     41,  59,  13,  10,  32,  32, 
+     32,  32, 116, 101, 120, 116, 
+    117, 114, 101,  67, 111, 108, 
+    111, 114,  46,  97,  32,  61, 
+     32, 109,  97, 116, 101, 114, 
+    105,  97, 108,  67, 111, 108, 
+    111, 114,  46,  97,  59,  13, 
+     10,  32,  32,  32,  32, 114, 
+    101, 116, 117, 114, 110,  32, 
     116, 101, 120, 116, 117, 114, 
     101,  67, 111, 108, 111, 114, 
-     46,  97,  32,  61,  32, 109, 
-     97, 116, 101, 114, 105,  97, 
-    108,  67, 111, 108, 111, 114, 
-     46,  97,  59,  13,  10,  32, 
-     32,  32,  32, 114, 101, 116, 
-    117, 114, 110,  32, 115, 104, 
-     97, 100, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,  46, 
-     83,  97, 109, 112, 108, 101, 
-     40,  32,  83,  97, 109, 112, 
-    108, 101,  84, 121, 112, 101, 
-     44,  32, 105, 110, 112, 117, 
-    116,  46, 116, 101, 120,  32, 
-     41,  59,  13,  10,  32,  32, 
-     32,  32,  47,  47, 114, 101, 
-    116, 117, 114, 110,  32, 116, 
-    101, 120, 116, 117, 114, 101, 
-     67, 111, 108, 111, 114,  59, 
-     13,  10, 125,   0,   7,   0, 
+     59,  13,  10, 125,   0,   7, 
+      0,   0,   0,  94,   0,   0, 
+      0,  93,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     93,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0, 186,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    186,   0,   0,   0,   1,   0, 
-      0,   0,  94,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2570,23 +2971,23 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     68,  51,  68,  83,  72,  68, 
-     82,   0, 136,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     32,   0,   0,  96,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  68,  51,  68,  83, 
+     72,  68,  82,   0,  28,   2, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  32,   0,   0,  96, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2655,35 +3056,37 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 255, 255, 255, 255, 
-     26,   9,  47, 241,  24,   0, 
-      0,   0,  16,   2,   0,   0, 
-     21,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,  61,   0, 
-      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,  26,   9,  47, 241, 
+     32,   0,   0,   0,  20,   2, 
+      0,   0,  21,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+    101,   0,   0,   0,   1,   0, 
+      0,   0,  61,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2744,21 +3147,22 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 128,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  16,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  12,   0, 
-      0,   0,  24,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0, 128,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  12,   0,   0,   0, 
+     24,   0,   0,   0,  36,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2826,30 +3230,36 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     18,   0,  37,  17,   0,   0, 
-      0,   0, 128,   0,   0,   0, 
-      1,   0, 109,  97, 105, 110, 
-      0,   0,  38,   0, 100,  17, 
-     10,  16,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   7,   0, 115, 104, 
-     97, 100, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,   0, 
-     38,   0, 100,  17,  13,  16, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      6,   0,  83,  97, 109, 112, 
-    108, 101,  84, 121, 112, 101, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  18,   0,  37,  17, 
+      0,   0,   0,   0, 128,   0, 
+      0,   0,   1,   0, 109,  97, 
+    105, 110,   0,   0,  38,   0, 
+    100,  17,  10,  16,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   7,   0, 
+    115, 104,  97, 100, 101, 114, 
+     84, 101, 120, 116, 117, 114, 
+    101,   0,  38,   0, 100,  17, 
+     13,  16,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,  83,  97, 
+    109, 112, 108, 101,  84, 121, 
+    112, 101,   0,   0,   0,   0, 
+     34,   0, 100,  17,  18,  16, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,  79,  98, 106, 101, 
+     99, 116,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2911,14 +3321,14 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    255, 255, 255, 255,  26,   9, 
-     47, 241,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+     26,   9,  47, 241,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2996,70 +3406,70 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 255, 255, 
-    255, 255, 119,   9,  49,   1, 
-      1,   0,   0,   0,  13,   0, 
-     10, 140,  14,   0, 180, 156, 
-     15,   0,  11,   0,  76,   0, 
-      0,   0,  32,   0,   0,   0, 
-     44,   0,   0,   0, 104,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-      0,   0,  25,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255, 119,   9, 
+     49,   1,   1,   0,   0,   0, 
+     13,   0,  10, 140,  14,   0, 
+    180, 156,  15,   0,  11,   0, 
+     76,   0,   0,   0,  32,   0, 
+      0,   0,  44,   0,   0,   0, 
+    104,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,  51,   1,   0,   0, 
-      0,   0, 136,   0,   0,   0, 
+     22,   0,   0,   0,  25,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,  28,   2, 
+      0,   0,  32,   0,   0,  96, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   9,   0, 220,   4, 
+      0,   0,   0,   0,   0,   0, 
+    156,   1,   0,   0,   1,   0, 
+      0,   0, 104, 121, 202,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 109,  97, 105, 110, 
+      0, 110, 111, 110, 101,   0, 
+      0,   0,  45, 186,  46, 241, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  28,   2,   0,   0, 
      32,   0,   0,  96,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   2,   0, 
-      9,   0, 180,   2,   0,   0, 
-      0,   0,   0,   0, 124,   0, 
-      0,   0,   1,   0,   0,   0, 
-     88, 122, 161,   3,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    109,  97, 105, 110,   0, 110, 
-    111, 110, 101,   0,   0,   0, 
-     45, 186,  46, 241,   1,   0, 
-     51,   1,   0,   0,   0,   0, 
-    136,   0,   0,   0,  32,   0, 
-      0,  96,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   2,   0, 
-      7,   0,   0,   0,   0,   0, 
-      1,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0, 136,   0, 
-      0,   0,   8,   2,   0,   0, 
-      0,   0,   0,   0, 255, 255, 
+      2,   0,   7,   0,   0,   0, 
+      0,   0,   1,   0, 255, 255, 
     255, 255,   0,   0,   0,   0, 
-    255, 255, 255, 255,   1,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,  67,  58, 
-     92,  85, 115, 101, 114, 115, 
-     92, 107, 111, 108, 106,  97, 
-     92,  79, 110, 101,  68, 114, 
-    105, 118, 101,  92,  68, 101, 
-    115, 107, 116, 111, 112,  92, 
-     75, 111, 108, 106,  97,  45, 
-     83, 116, 114, 111, 104, 109, 
-     45,  71,  97, 109, 101, 115, 
-     92,  65, 108, 108, 103, 101, 
-    109, 101, 105, 110,  92,  70, 
-    114,  97, 109, 101, 119, 111, 
-    114, 107,  92,  68,  88,  49, 
-     50,  80, 105, 120, 101, 108, 
-     83, 104,  97, 100, 101, 114, 
-     46, 104, 108, 115, 108,   0, 
-    254, 239, 254, 239,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255, 255,  12, 
-      0, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255, 255,   0, 
+     28,   2,   0,   0,   8,   2, 
       0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      1,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+     67,  58,  92,  85, 115, 101, 
+    114, 115,  92, 107, 111, 108, 
+    106,  97,  92,  79, 110, 101, 
+     68, 114, 105, 118, 101,  92, 
+     68, 101, 115, 107, 116, 111, 
+    112,  92,  75, 111, 108, 106, 
+     97,  45,  83, 116, 114, 111, 
+    104, 109,  45,  71,  97, 109, 
+    101, 115,  92,  65, 108, 108, 
+    103, 101, 109, 101, 105, 110, 
+     92,  70, 114,  97, 109, 101, 
+    119, 111, 114, 107,  92,  68, 
+     88,  49,  50,  80, 105, 120, 
+    101, 108,  83, 104,  97, 100, 
+    101, 114,  46, 104, 108, 115, 
+    108,   0, 254, 239, 254, 239, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   1,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 255, 255, 255, 
+    255, 255, 255, 255, 255, 255, 
+    255,  12,   0, 255, 255, 255, 
+    255, 255, 255, 255, 255, 255, 
+    255,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3082,47 +3492,46 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    148,  46,  49,   1,  58,  62, 
-     92,  92,   1,   0,   0,   0, 
-    116,  17,  92, 154, 100,  80, 
-    124,  74, 180,  71, 202, 147, 
-    113, 214,  11,  18, 137,   0, 
-      0,   0,  47,  76, 105, 110, 
-    107,  73, 110, 102, 111,   0, 
-     47, 110,  97, 109, 101, 115, 
-      0,  47, 115, 114,  99,  47, 
-    104, 101,  97, 100, 101, 114, 
-     98, 108, 111,  99, 107,   0, 
-     47, 115, 114,  99,  47, 102, 
-    105, 108, 101, 115,  47,  99, 
-     58,  92, 117, 115, 101, 114, 
-    115,  92, 107, 111, 108, 106, 
-     97,  92, 111, 110, 101, 100, 
-    114, 105, 118, 101,  92, 100, 
-    101, 115, 107, 116, 111, 112, 
-     92, 107, 111, 108, 106,  97, 
-     45, 115, 116, 114, 111, 104, 
-    109,  45, 103,  97, 109, 101, 
-    115,  92,  97, 108, 108, 103, 
-    101, 109, 101, 105, 110,  92, 
-    102, 114,  97, 109, 101, 119, 
-    111, 114, 107,  92, 100, 120, 
-     49,  50, 112, 105, 120, 101, 
-    108, 115, 104,  97, 100, 101, 
-    114,  46, 104, 108, 115, 108, 
-      0,   4,   0,   0,   0,   6, 
-      0,   0,   0,   1,   0,   0, 
-      0,  58,   0,   0,   0,   0, 
-      0,   0,   0,  17,   0,   0, 
-      0,   7,   0,   0,   0,  10, 
-      0,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   0,   5, 
-      0,   0,   0,  34,   0,   0, 
-      0,   8,   0,   0,   0,   0, 
-      0,   0,   0, 220,  81,  51, 
-      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0, 148,  46,  49,   1, 
+    109,  80,  92,  92,   1,   0, 
+      0,   0,  60, 197, 217, 234, 
+    105,   6, 196,  75, 178,   2, 
+     71,   5, 221, 121, 202,   5, 
+    137,   0,   0,   0,  47,  76, 
+    105, 110, 107,  73, 110, 102, 
+    111,   0,  47, 110,  97, 109, 
+    101, 115,   0,  47, 115, 114, 
+     99,  47, 104, 101,  97, 100, 
+    101, 114,  98, 108, 111,  99, 
+    107,   0,  47, 115, 114,  99, 
+     47, 102, 105, 108, 101, 115, 
+     47,  99,  58,  92, 117, 115, 
+    101, 114, 115,  92, 107, 111, 
+    108, 106,  97,  92, 111, 110, 
+    101, 100, 114, 105, 118, 101, 
+     92, 100, 101, 115, 107, 116, 
+    111, 112,  92, 107, 111, 108, 
+    106,  97,  45, 115, 116, 114, 
+    111, 104, 109,  45, 103,  97, 
+    109, 101, 115,  92,  97, 108, 
+    108, 103, 101, 109, 101, 105, 
+    110,  92, 102, 114,  97, 109, 
+    101, 119, 111, 114, 107,  92, 
+    100, 120,  49,  50, 112, 105, 
+    120, 101, 108, 115, 104,  97, 
+    100, 101, 114,  46, 104, 108, 
+    115, 108,   0,   4,   0,   0, 
+      0,   6,   0,   0,   0,   1, 
+      0,   0,   0,  58,   0,   0, 
+      0,   0,   0,   0,   0,  17, 
+      0,   0,   0,   7,   0,   0, 
+      0,  10,   0,   0,   0,   6, 
       0,   0,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  34, 
+      0,   0,   0,   8,   0,   0, 
+      0,   0,   0,   0,   0, 220, 
+     81,  51,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3167,26 +3576,29 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-     32,   0,   0,   0, 229,   0, 
-      0,   0, 112,   1,   0,   0, 
-    111,   1,   0,   0,  56,   0, 
       0,   0,   0,   0,   0,   0, 
-    194,  15,   0,   0, 128,   0, 
-      0,   0, 216,  14,   0,   0, 
-     64,   3,   0,   0,  64,   0, 
       0,   0,   0,   0,   0,   0, 
-     40,   0,   0,   0,  56,   2, 
-      0,   0,  44,   0,   0,   0, 
-    100,   0,   0,   0,   3,   0, 
-      0,   0,  34,   0,   0,   0, 
-     20,   0,   0,   0,  33,   0, 
-      0,   0,  21,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,  32,   0,   0,   0, 
+    229,   0,   0,   0,   8,   2, 
+      0,   0, 111,   1,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0, 127,  15,   0,   0, 
+    128,   0,   0,   0, 149,  14, 
+      0,   0, 140,   6,   0,   0, 
+     84,   0,   0,   0,   0,   0, 
+      0,   0,  40,   0,   0,   0, 
+     68,   2,   0,   0,  44,   0, 
+      0,   0, 136,   0,   0,   0, 
+      3,   0,   0,   0,  37,   0, 
+      0,   0,  23,   0,   0,   0, 
+     22,   0,   0,   0,  36,   0, 
+      0,   0,  24,   0,   0,   0, 
      16,   0,   0,   0,   6,   0, 
-      0,   0,  22,   0,   0,   0, 
-     23,   0,   0,   0,  24,   0, 
       0,   0,  25,   0,   0,   0, 
      26,   0,   0,   0,  27,   0, 
+      0,   0,  28,   0,   0,   0, 
+     29,   0,   0,   0,  30,   0, 
       0,   0,  17,   0,   0,   0, 
       8,   0,   0,   0,   9,   0, 
       0,   0,  10,   0,   0,   0, 
@@ -3194,11 +3606,97 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,  13,   0,   0,   0, 
      14,   0,   0,   0,  15,   0, 
       0,   0,  18,   0,   0,   0, 
-     19,   0,   0,   0,   7,   0, 
-      0,   0,  28,   0,   0,   0, 
-     29,   0,   0,   0,  30,   0, 
+     19,   0,   0,   0,  20,   0, 
+      0,   0,  21,   0,   0,   0, 
+      7,   0,   0,   0,  31,   0, 
       0,   0,  32,   0,   0,   0, 
-     31,   0,   0,   0,   0,   0, 
+     33,   0,   0,   0,  35,   0, 
+      0,   0,  34,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     38,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3252,7 +3750,6 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  35,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3508,5 +4005,5 @@ const BYTE DX12PixelShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0
+      0,   0
 };

+ 4 - 5
DX12PixelShader.hlsl

@@ -97,9 +97,8 @@ float4 main( PixelInputType input ) : SV_TARGET
                 specularLight += pointLights[ i ].color * f * factor;
         }
     }*/
-    //float4 materialColor = shaderTexture.Sample( SampleType, input.tex );
-    //float4 textureColor = saturate( materialColor * Object.ambientFactor + float4( diffuseLight.x, diffuseLight.y, diffuseLight.z, 0 ) * Object.diffusFactor + float4( specularLight.x, specularLight.y, specularLight.z, 0 ) * Object.specularFactor );
-    //textureColor.a = materialColor.a;
-    return shaderTexture.Sample( SampleType, input.tex );
-    //return textureColor;
+    float4 materialColor = shaderTexture.Sample( SampleType, input.tex );
+    float4 textureColor = saturate( materialColor * Object.ambientFactor + float4( diffuseLight.x, diffuseLight.y, diffuseLight.z, 0 ) * Object.diffusFactor + float4( specularLight.x, specularLight.y, specularLight.z, 0 ) * Object.specularFactor );
+    textureColor.a = materialColor.a;
+    return textureColor;
 }

+ 1625 - 1512
DX12VertexShader.h

@@ -5,6 +5,19 @@
 //
 // Buffer Definitions: 
 //
+// cbuffer Kamera
+// {
+//
+//   struct KameraBuffer
+//   {
+//       
+//       float4x4 view;                 // Offset:    0
+//       float4x4 projection;           // Offset:   64
+//
+//   } Kamera;                          // Offset:    0 Size:   128
+//
+// }
+//
 // cbuffer Skelett
 // {
 //
@@ -22,7 +35,8 @@
 //
 // Name                                 Type  Format         Dim      ID      HLSL Bind  Count
 // ------------------------------ ---------- ------- ----------- ------- -------------- ------
-// Skelett                           cbuffer      NA          NA     CB0            cb1      1 
+// Kamera                            cbuffer      NA          NA     CB0            cb0      1 
+// Skelett                           cbuffer      NA          NA     CB1            cb1      1 
 //
 //
 //
@@ -47,7 +61,8 @@
 //
 vs_5_1
 dcl_globalFlags refactoringAllowed | skipOptimization
-dcl_constantbuffer CB0[1:1][512], dynamicIndexed, space=0
+dcl_constantbuffer CB0[0:0][8], immediateIndexed, space=0
+dcl_constantbuffer CB1[1:1][512], dynamicIndexed, space=0
 dcl_input v0.xyz
 dcl_input v1.xy
 dcl_input v2.xyz
@@ -56,7 +71,7 @@ dcl_output o0.xyzw
 dcl_output_siv o1.xyzw, position
 dcl_output o2.xy
 dcl_output o3.xyz
-dcl_temps 4
+dcl_temps 5
 //
 // Initial variable locations:
 //   v0.x <- input.position.x; v0.y <- input.position.y; v0.z <- input.position.z; 
@@ -70,9 +85,9 @@ dcl_temps 4
 //
 #line 64 "C:\Users\kolja\OneDrive\Desktop\Kolja-Strohm-Games\Allgemein\Framework\DX12VertexShader.hlsl"
 imul null, r0.x, v3.x, l(4)
-dp3 r1.x, v2.xyzx, CB0[1][r0.x + 0].xyzx
-dp3 r1.y, v2.xyzx, CB0[1][r0.x + 1].xyzx
-dp3 r1.z, v2.xyzx, CB0[1][r0.x + 2].xyzx
+dp3 r1.x, v2.xyzx, CB1[1][r0.x + 0].xyzx
+dp3 r1.y, v2.xyzx, CB1[1][r0.x + 1].xyzx
+dp3 r1.z, v2.xyzx, CB1[1][r0.x + 2].xyzx
 dp3 r0.x, r1.xyzx, r1.xyzx
 rsq r0.x, r0.x
 mul r0.xyz, r0.xxxx, r1.xyzx  // r0.x <- output.normal.x; r0.y <- output.normal.y; r0.z <- output.normal.z
@@ -86,84 +101,133 @@ mov r2.xy, v1.xyxx  // r2.x <- output.tex.x; r2.y <- output.tex.y
 
 #line 72
 imul null, r0.w, v3.x, l(4)
-dp4 r3.x, r1.xyzw, CB0[1][r0.w + 0].xyzw  // r3.x <- output.worldPos.x
-dp4 r3.y, r1.xyzw, CB0[1][r0.w + 1].xyzw  // r3.y <- output.worldPos.y
-dp4 r3.z, r1.xyzw, CB0[1][r0.w + 2].xyzw  // r3.z <- output.worldPos.z
-dp4 r3.w, r1.xyzw, CB0[1][r0.w + 3].xyzw  // r3.w <- output.worldPos.w
+dp4 r3.x, r1.xyzw, CB1[1][r0.w + 0].xyzw  // r3.x <- output.worldPos.x
+dp4 r3.y, r1.xyzw, CB1[1][r0.w + 1].xyzw  // r3.y <- output.worldPos.y
+dp4 r3.z, r1.xyzw, CB1[1][r0.w + 2].xyzw  // r3.z <- output.worldPos.z
+dp4 r3.w, r1.xyzw, CB1[1][r0.w + 3].xyzw  // r3.w <- output.worldPos.w
 
-#line 75
-mov r1.xyzw, r1.xyzw  // r1.x <- output.position.x; r1.y <- output.position.y; r1.z <- output.position.z; r1.w <- output.position.w
+#line 73
+dp4 r1.x, r3.xyzw, CB0[0][0].xyzw  // r1.x <- output.position.x
+dp4 r1.y, r3.xyzw, CB0[0][1].xyzw  // r1.y <- output.position.y
+dp4 r1.z, r3.xyzw, CB0[0][2].xyzw  // r1.z <- output.position.z
+dp4 r1.w, r3.xyzw, CB0[0][3].xyzw  // r1.w <- output.position.w
+
+#line 74
+dp4 r4.x, r1.xyzw, CB0[0][4].xyzw  // r4.x <- output.position.x
+dp4 r4.y, r1.xyzw, CB0[0][5].xyzw  // r4.y <- output.position.y
+dp4 r4.z, r1.xyzw, CB0[0][6].xyzw  // r4.z <- output.position.z
+dp4 r4.w, r1.xyzw, CB0[0][7].xyzw  // r4.w <- output.position.w
 
-#line 78
+#line 75
 mov o0.xyzw, r3.xyzw
-mov o1.xyzw, r1.xyzw
+mov o1.xyzw, r4.xyzw
 mov o3.xyz, r0.xyzx
 mov o2.xy, r2.xyxx
 ret 
-// Approximately 21 instruction slots used
+// Approximately 28 instruction slots used
 #endif
 
 const BYTE DX12VertexShaderBytes[] =
 {
-     68,  88,  66,  67, 107,  51, 
-    214,   0, 120, 210, 146, 133, 
-    150,  28, 129, 212,  17, 179, 
-    157, 255,   1,   0,   0,   0, 
-     84,  76,   0,   0,   6,   0, 
+     68,  88,  66,  67,  36, 204, 
+    208, 224, 238, 174,  33, 216, 
+    120, 252,  26,  84, 187, 114, 
+     54, 217,   1,   0,   0,   0, 
+    108,  78,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
-    140,   1,   0,   0,  32,   2, 
-      0,   0, 184,   2,   0,   0, 
-    176,   5,   0,   0,  76,   6, 
+    124,   2,   0,   0,  16,   3, 
+      0,   0, 168,   3,   0,   0, 
+    200,   7,   0,   0, 100,   8, 
       0,   0,  82,  68,  69,  70, 
-     76,   1,   0,   0,   1,   0, 
-      0,   0, 108,   0,   0,   0, 
-      1,   0,   0,   0,  60,   0, 
+     60,   2,   0,   0,   2,   0, 
+      0,   0, 156,   0,   0,   0, 
+      2,   0,   0,   0,  60,   0, 
       0,   0,   1,   5, 254, 255, 
-      5,   5,   0,   0,  36,   1, 
+      5,   5,   0,   0,  20,   2, 
       0,   0,  19,  19,  68,  37, 
      60,   0,   0,   0,  24,   0, 
       0,   0,  40,   0,   0,   0, 
      40,   0,   0,   0,  36,   0, 
       0,   0,  12,   0,   0,   0, 
-      0,   0,   0,   0, 100,   0, 
+      0,   0,   0,   0, 140,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 147,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     75,  97, 109, 101, 114,  97, 
+      0,  83, 107, 101, 108, 101, 
+    116, 116,   0, 171, 140,   0, 
+      0,   0,   1,   0,   0,   0, 
+    204,   0,   0,   0, 128,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  83, 107, 101, 108, 
-    101, 116, 116,   0, 100,   0, 
+      0,   0,   0,   0, 147,   0, 
       0,   0,   1,   0,   0,   0, 
-    132,   0,   0,   0,   0,  32, 
+    124,   1,   0,   0,   0,  32, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 100,   0, 
+      0,   0,   0,   0, 140,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,  32,   0,   0,   2,   0, 
-      0,   0,   0,   1,   0,   0, 
+    128,   0,   0,   0,   2,   0, 
+      0,   0,  88,   1,   0,   0, 
       0,   0,   0,   0, 255, 255, 
     255, 255,   0,   0,   0,   0, 
     255, 255, 255, 255,   0,   0, 
-      0,   0,  77,  97, 116, 114, 
-    105, 120,  66, 117, 102, 102, 
-    101, 114,   0, 107, 110, 111, 
-     99, 104, 101, 110,  77,  97, 
-    116, 114, 105, 120,   0, 102, 
-    108, 111,  97, 116,  52, 120, 
-     52,   0,   3,   0,   3,   0, 
+      0,   0,  75,  97, 109, 101, 
+    114,  97,  66, 117, 102, 102, 
+    101, 114,   0, 118, 105, 101, 
+    119,   0, 102, 108, 111,  97, 
+    116,  52, 120,  52,   0, 171, 
+      3,   0,   3,   0,   4,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   1,   0,   0, 
+    112, 114, 111, 106, 101,  99, 
+    116, 105, 111, 110,   0, 171, 
+      1,   1,   0,   0,  16,   1, 
+      0,   0,   0,   0,   0,   0, 
+     52,   1,   0,   0,  16,   1, 
+      0,   0,  64,   0,   0,   0, 
+      5,   0,   0,   0,   1,   0, 
+     32,   0,   0,   0,   2,   0, 
+     64,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 244,   0,   0,   0, 
+    147,   0,   0,   0,   0,   0, 
+      0,   0,   0,  32,   0,   0, 
+      2,   0,   0,   0, 240,   1, 
+      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,  77,  97, 
+    116, 114, 105, 120,  66, 117, 
+    102, 102, 101, 114,   0, 107, 
+    110, 111,  99, 104, 101, 110, 
+     77,  97, 116, 114, 105, 120, 
+      0, 171,   3,   0,   3,   0, 
       4,   0,   4,   0, 128,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 199,   0, 
-      0,   0, 185,   0,   0,   0, 
-    208,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   6,   1, 
+      0,   0, 177,   1,   0,   0, 
+    192,   1,   0,   0,   0,   0, 
       0,   0,   5,   0,   0,   0, 
       1,   0,   0,   8,   0,   0, 
-      1,   0, 244,   0,   0,   0, 
+      1,   0, 228,   1,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0, 164,   1, 
       0,   0,  77, 105,  99, 114, 
     111, 115, 111, 102, 116,  32, 
      40,  82,  41,  32,  72,  76, 
@@ -221,139 +285,189 @@ const BYTE DX12VertexShaderBytes[] =
      69,  88,  67,  79,  79,  82, 
      68,   0,  78,  79,  82,  77, 
      65,  76,   0, 171, 171, 171, 
-     83,  72,  69,  88, 240,   2, 
+     83,  72,  69,  88,  24,   4, 
       0,   0,  81,   0,   1,   0, 
-    188,   0,   0,   0, 106, 136, 
-      0,   1,  89,   8,   0,   7, 
+      6,   1,   0,   0, 106, 136, 
+      0,   1,  89,   0,   0,   7, 
      70, 142,  48,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   2, 
       0,   0,   0,   0,   0,   0, 
-     95,   0,   0,   3, 114,  16, 
-     16,   0,   0,   0,   0,   0, 
-     95,   0,   0,   3,  50,  16, 
+      0,   0,   0,   0,   8,   0, 
+      0,   0,   0,   0,   0,   0, 
+     89,   8,   0,   7,  70, 142, 
+     48,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,  95,   0, 
+      0,   3, 114,  16,  16,   0, 
+      0,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0,  95,   0, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0,  95,   0, 
+      0,   3,  18,  16,  16,   0, 
+      3,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 103,   0, 
+      0,   4, 242,  32,  16,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+     50,  32,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    114,  32,  16,   0,   3,   0, 
+      0,   0, 104,   0,   0,   2, 
+      5,   0,   0,   0,  38,   0, 
+      0,   8,   0, 208,   0,   0, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  10,  16,  16,   0, 
+      3,   0,   0,   0,   1,  64, 
+      0,   0,   4,   0,   0,   0, 
+     16,   0,   0,  10,  18,   0, 
      16,   0,   1,   0,   0,   0, 
-     95,   0,   0,   3, 114,  16, 
+     70,  18,  16,   0,   2,   0, 
+      0,   0,  70, 130,  48,  32, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,  11,  34,   0,  16,   0, 
+      1,   0,   0,   0,  70,  18, 
      16,   0,   2,   0,   0,   0, 
-     95,   0,   0,   3,  18,  16, 
-     16,   0,   3,   0,   0,   0, 
-    101,   0,   0,   3, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-    103,   0,   0,   4, 242,  32, 
-     16,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3,  50,  32,  16,   0, 
-      2,   0,   0,   0, 101,   0, 
-      0,   3, 114,  32,  16,   0, 
-      3,   0,   0,   0, 104,   0, 
-      0,   2,   4,   0,   0,   0, 
-     38,   0,   0,   8,   0, 208, 
-      0,   0,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,  16, 
-     16,   0,   3,   0,   0,   0, 
-      1,  64,   0,   0,   4,   0, 
-      0,   0,  16,   0,   0,  10, 
-     18,   0,  16,   0,   1,   0, 
-      0,   0,  70,  18,  16,   0, 
-      2,   0,   0,   0,  70, 130, 
-     48,  32,   0,   0,   0,   0, 
+     70, 130,  48,  48,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
       1,   0,   0,   0,  10,   0, 
      16,   0,   0,   0,   0,   0, 
-     16,   0,   0,  11,  34,   0, 
+     16,   0,   0,  11,  66,   0, 
      16,   0,   1,   0,   0,   0, 
      70,  18,  16,   0,   2,   0, 
       0,   0,  70, 130,  48,  48, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
      10,   0,  16,   0,   0,   0, 
-      0,   0,  16,   0,   0,  11, 
-     66,   0,  16,   0,   1,   0, 
-      0,   0,  70,  18,  16,   0, 
-      2,   0,   0,   0,  70, 130, 
-     48,  48,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  70,   2, 
-     16,   0,   1,   0,   0,   0, 
-     70,   2,  16,   0,   1,   0, 
-      0,   0,  68,   0,   0,   5, 
+      0,   0,  16,   0,   0,   7, 
      18,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   7, 114,   0,  16,   0, 
-      0,   0,   0,   0,   6,   0, 
+      0,   0,  70,   2,  16,   0, 
+      1,   0,   0,   0,  70,   2, 
+     16,   0,   1,   0,   0,   0, 
+     68,   0,   0,   5,  18,   0, 
      16,   0,   0,   0,   0,   0, 
-     70,   2,  16,   0,   1,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   7, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,   6,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 114,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,  18,  16,   0,   0,   0, 
       0,   0,  54,   0,   0,   5, 
-    114,   0,  16,   0,   1,   0, 
-      0,   0,  70,  18,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 130,   0,  16,   0, 
-      1,   0,   0,   0,   1,  64, 
-      0,   0,   0,   0, 128,  63, 
-     54,   0,   0,   5,  50,   0, 
-     16,   0,   2,   0,   0,   0, 
-     70,  16,  16,   0,   1,   0, 
-      0,   0,  38,   0,   0,   8, 
-      0, 208,   0,   0, 130,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,  16,  16,   0,   3,   0, 
+    130,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
-      4,   0,   0,   0,  17,   0, 
-      0,  10,  18,   0,  16,   0, 
-      3,   0,   0,   0,  70,  14, 
+      0,   0, 128,  63,  54,   0, 
+      0,   5,  50,   0,  16,   0, 
+      2,   0,   0,   0,  70,  16, 
      16,   0,   1,   0,   0,   0, 
-     70, 142,  48,  32,   0,   0, 
+     38,   0,   0,   8,   0, 208, 
+      0,   0, 130,   0,  16,   0, 
+      0,   0,   0,   0,  10,  16, 
+     16,   0,   3,   0,   0,   0, 
+      1,  64,   0,   0,   4,   0, 
+      0,   0,  17,   0,   0,  10, 
+     18,   0,  16,   0,   3,   0, 
+      0,   0,  70,  14,  16,   0, 
+      1,   0,   0,   0,  70, 142, 
+     48,  32,   1,   0,   0,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     17,   0,   0,  11,  34,   0, 
+     16,   0,   3,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70, 142,  48,  48, 
+      1,   0,   0,   0,   1,   0, 
       0,   0,   1,   0,   0,   0, 
      58,   0,  16,   0,   0,   0, 
       0,   0,  17,   0,   0,  11, 
-     34,   0,  16,   0,   3,   0, 
+     66,   0,  16,   0,   3,   0, 
       0,   0,  70,  14,  16,   0, 
       1,   0,   0,   0,  70, 142, 
-     48,  48,   0,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
+     48,  48,   1,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
       0,   0,  58,   0,  16,   0, 
       0,   0,   0,   0,  17,   0, 
-      0,  11,  66,   0,  16,   0, 
+      0,  11, 130,   0,  16,   0, 
       3,   0,   0,   0,  70,  14, 
      16,   0,   1,   0,   0,   0, 
-     70, 142,  48,  48,   0,   0, 
+     70, 142,  48,  48,   1,   0, 
       0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,  58,   0, 
+      3,   0,   0,   0,  58,   0, 
      16,   0,   0,   0,   0,   0, 
-     17,   0,   0,  11, 130,   0, 
-     16,   0,   3,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  70, 142,  48,  48, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-     58,   0,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   5, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   3,   0,   0,   0, 
-     54,   0,   0,   5, 242,  32, 
+     17,   0,   0,   9,  18,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     17,   0,   0,   9,  34,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     17,   0,   0,   9,  66,   0, 
      16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     17,   0,   0,   9, 130,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     17,   0,   0,   9,  18,   0, 
+     16,   0,   4,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     17,   0,   0,   9,  34,   0, 
+     16,   0,   4,   0,   0,   0, 
      70,  14,  16,   0,   1,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     17,   0,   0,   9,  66,   0, 
+     16,   0,   4,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     17,   0,   0,   9, 130,   0, 
+     16,   0,   4,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70, 142,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   3,   0, 
       0,   0,  54,   0,   0,   5, 
-    114,  32,  16,   0,   3,   0, 
-      0,   0,  70,   2,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5,  50,  32,  16,   0, 
-      2,   0,   0,   0,  70,   0, 
+    242,  32,  16,   0,   1,   0, 
+      0,   0,  70,  14,  16,   0, 
+      4,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      3,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  50,  32, 
      16,   0,   2,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 148,   0,   0,   0, 
-     21,   0,   0,   0,   4,   0, 
+     70,   0,  16,   0,   2,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 148,   0, 
+      0,   0,  28,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   8,   0,   0,   0, 
+     18,   0,   0,   0,   2,   0, 
       0,   0,   0,   0,   0,   0, 
-      8,   0,   0,   0,  10,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
+      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -361,7 +475,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   8,   0, 
+      7,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -373,18 +487,17 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  83,  80, 
-     68,  66,   0,  70,   0,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  67,  47, 
-     67,  43,  43,  32,  77,  83, 
-     70,  32,  55,  46,  48,  48, 
-     13,  10,  26,  68,  83,   0, 
-      0,   0,   0,   2,   0,   0, 
-      2,   0,   0,   0,  35,   0, 
-      0,   0, 176,   0,   0,   0, 
-      0,   0,   0,   0,  33,   0, 
+     83,  80,  68,  66,   0,  70, 
+      0,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     67,  47,  67,  43,  43,  32, 
+     77,  83,  70,  32,  55,  46, 
+     48,  48,  13,  10,  26,  68, 
+     83,   0,   0,   0,   0,   2, 
+      0,   0,   2,   0,   0,   0, 
+     35,   0,   0,   0, 180,   0, 
       0,   0,   0,   0,   0,   0, 
+     34,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -460,7 +573,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 192, 255, 255, 255, 
+      0,   0,   0,   0, 192, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
@@ -545,9 +658,8 @@ const BYTE DX12VertexShaderBytes[] =
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255,  56,   0, 
-      0,   0, 252, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
+     56,   0,   0,   0, 248, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
@@ -631,12 +743,13 @@ const BYTE DX12VertexShaderBytes[] =
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
-      5,   0,   0,   0,  32,   0, 
-      0,   0,  60,   0,   0,   0, 
-      0,   0,   0,   0, 255, 255, 
-    255, 255,   0,   0,   0,   0, 
-      6,   0,   0,   0,   5,   0, 
+    255, 255, 255, 255, 255, 255, 
+    255, 255,   5,   0,   0,   0, 
+     32,   0,   0,   0,  60,   0, 
       0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -716,7 +829,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -801,19 +914,17 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 148,  46, 
-     49,   1, 137,  68,  92,  92, 
-      1,   0,   0,   0, 248, 217, 
-    147, 230, 253,  12,  60,  66, 
-    137, 115, 217, 221, 222, 101, 
-    140, 223,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    148,  46,  49,   1,  93,  77, 
+     92,  92,   1,   0,   0,   0, 
+    237, 145,  12,  54,  31, 175, 
+     89,  67, 175, 250, 125,  30, 
+     25,   2, 146, 240,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    220,  81,  51,   1,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0, 220,  81,  51,   1, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -887,106 +998,109 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     47,  32,  84, 104, 101,  32, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  32, 111, 102,  32, 
-    116, 104, 101,  32, 107,  97, 
-    109, 101, 114,  97,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  75,  97, 109, 101, 114, 
-     97,  66, 117, 102, 102, 101, 
-    114,  50,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  52,  32, 
-    107,  80, 111, 115, 105, 116, 
-    105, 111, 110,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     47,  47,  32, 116, 104, 101, 
-    115, 101,  32, 118,  97, 108, 
-    117, 101, 115,  32, 115, 104, 
-    111, 117, 108, 100,  32, 115, 
-    117, 109,  32, 117, 112,  32, 
-    116, 111,  32,  49,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  77,  97, 116, 101, 114, 
-    105,  97, 108,  13,  10, 123, 
-     13,  10,  32,  32,  32,  32, 
-    102, 108, 111,  97, 116,  32, 
-     97, 109,  98, 105, 101, 110, 
-    116,  70,  97,  99, 116, 111, 
-    114,  59,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  32, 100, 105, 102, 102, 
-    117, 115,  70,  97,  99, 116, 
-    111, 114,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  32, 115, 112, 101, 
-     99, 117, 108,  97, 114,  70, 
-     97,  99, 116, 111, 114,  59, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  47,  32,  84, 104, 
+    101,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32, 111, 
+    102,  32, 116, 104, 101,  32, 
+    107,  97, 109, 101, 114,  97, 
+     13,  10, 115, 116, 114, 117, 
+     99, 116,  32,  75,  97, 109, 
+    101, 114,  97,  66, 117, 102, 
+    102, 101, 114,  50,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     52,  32, 107,  80, 111, 115, 
+    105, 116, 105, 111, 110,  59, 
      13,  10, 125,  59,  13,  10, 
+     13,  10,  47,  47,  32, 116, 
+    104, 101, 115, 101,  32, 118, 
+     97, 108, 117, 101, 115,  32, 
+    115, 104, 111, 117, 108, 100, 
+     32, 115, 117, 109,  32, 117, 
+    112,  32, 116, 111,  32,  49, 
      13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  76, 105, 103, 
-    104, 116,  67, 111, 117, 110, 
-    116,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 105, 110, 
-    116,  32, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  67, 111, 117, 110, 
-    116,  59,  13,  10,  32,  32, 
-     32,  32, 105, 110, 116,  32, 
-    112, 111, 105, 110, 116,  76, 
+     99, 116,  32,  77,  97, 116, 
+    101, 114, 105,  97, 108,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  32,  97, 109,  98, 105, 
+    101, 110, 116,  70,  97,  99, 
+    116, 111, 114,  59,  13,  10, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  32, 100, 105, 
+    102, 102, 117, 115,  70,  97, 
+     99, 116, 111, 114,  59,  13, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  32, 115, 
+    112, 101,  99, 117, 108,  97, 
+    114,  70,  97,  99, 116, 111, 
+    114,  59,  13,  10, 125,  59, 
+     13,  10,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  76, 
+    105, 103, 104, 116,  67, 111, 
+    117, 110, 116,  13,  10, 123, 
+     13,  10,  32,  32,  32,  32, 
+    105, 110, 116,  32, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
     105, 103, 104, 116,  67, 111, 
     117, 110, 116,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-     67, 111, 110, 115, 116,  97, 
-    110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  75,  97, 109, 
-    101, 114,  97,  66, 117, 102, 
-    102, 101, 114,  62,  32,  75, 
-     97, 109, 101, 114,  97,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-     98,  48,  32,  41,  59,  13, 
-     10,  67, 111, 110, 115, 116, 
-     97, 110, 116,  66, 117, 102, 
-    102, 101, 114,  60,  77,  97, 
-    116, 114, 105, 120,  66, 117, 
-    102, 102, 101, 114,  62,  32, 
-     83, 107, 101, 108, 101, 116, 
-    116,  32,  58,  32, 114, 101, 
+     32,  32,  32,  32, 105, 110, 
+    116,  32, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+     67, 111, 117, 110, 116,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  67, 111, 110, 115, 
+    116,  97, 110, 116,  66, 117, 
+    102, 102, 101, 114,  60,  75, 
+     97, 109, 101, 114,  97,  66, 
+    117, 102, 102, 101, 114,  62, 
+     32,  75,  97, 109, 101, 114, 
+     97,  32,  58,  32, 114, 101, 
     103, 105, 115, 116, 101, 114, 
-     40,  32,  98,  49,  32,  41, 
+     40,  32,  98,  48,  32,  41, 
      59,  13,  10,  67, 111, 110, 
     115, 116,  97, 110, 116,  66, 
     117, 102, 102, 101, 114,  60, 
-     75,  97, 109, 101, 114,  97, 
+     77,  97, 116, 114, 105, 120, 
      66, 117, 102, 102, 101, 114, 
-     50,  62,  32,  75,  97, 109, 
-    101, 114,  97,  50,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  32,  98, 
-     50,  32,  41,  59,  13,  10, 
-     67, 111, 110, 115, 116,  97, 
-    110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  77,  97, 116, 
-    101, 114, 105,  97, 108,  62, 
-     32,  79,  98, 106, 101,  99, 
-    116,  32,  58,  32, 114, 101, 
-    103, 105,  76, 232,   3,   0, 
-    117, 131,   1,   0, 149,  77, 
-      0,   0, 146, 183,   2,   0, 
-     38, 247,   2,   0, 198,  90, 
-      0,   0,   4,  71,   2,   0, 
-     43, 236,   3,   0, 217,  42, 
-      2,   0,  18,  44,   0,   0, 
-    103, 159,   1,   0, 206,  21, 
-      0,   0,  41, 201,   3,   0, 
-    207, 193,   1,   0, 209,  10, 
-      2,   0, 233, 214,   1,   0, 
-    125, 218,   1,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+     62,  32,  83, 107, 101, 108, 
+    101, 116, 116,  32,  58,  32, 
+    114, 101, 103, 105, 115, 116, 
+    101, 114,  40,  32,  98,  49, 
+     32,  41,  59,  13,  10,  67, 
+    111, 110, 115, 116,  97, 110, 
+    116,  66, 117, 102, 102, 101, 
+    114,  60,  75,  97, 109, 101, 
+    114,  97,  66, 117, 102, 102, 
+    101, 114,  50,  62,  32,  75, 
+     97, 109, 101, 114,  97,  50, 
+     32,  58,  32, 114, 101, 103, 
+    105, 115, 116, 101, 114,  40, 
+     32,  98,  50,  32,  41,  59, 
+     13,  10,  67, 111, 110, 115, 
+    116,  97, 110, 116,  66, 117, 
+    102, 102, 101, 114,  60,  77, 
+     97, 116, 101, 114, 105,  97, 
+    108,  62,  32,  79,  98, 106, 
+    101,  99, 116,  32,  58,  32, 
+    114, 101, 103, 105,  76, 232, 
+      3,   0, 117, 131,   1,   0, 
+    149,  77,   0,   0, 146, 183, 
+      2,   0,  38, 247,   2,   0, 
+    198,  90,   0,   0,   4,  71, 
+      2,   0,  43, 236,   3,   0, 
+    217,  42,   2,   0,  18,  44, 
+      0,   0, 103, 159,   1,   0, 
+    179, 120,   1,   0, 238,  97, 
+      2,   0,  90,  28,   0,   0, 
+    254,  33,   3,   0,  53, 174, 
+      3,   0, 206,  21,   0,   0, 
+    193, 205,   3,   0, 207, 193, 
+      1,   0,  62,   3,   3,   0, 
+    134, 200,   2,   0, 118, 199, 
+      0,   0,   0,  16,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1057,166 +1171,197 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  13,  10, 
+     13,  10,  84, 101, 120, 116, 
+    117, 114, 101,  50,  68,  32, 
+    115, 104,  97, 100, 101, 114, 
      84, 101, 120, 116, 117, 114, 
-    101,  50,  68,  32, 115, 104, 
-     97, 100, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-    116,  48,  32,  41,  59,  13, 
-     10,  83,  97, 109, 112, 108, 
-    101, 114,  83, 116,  97, 116, 
-    101,  32,  83,  97, 109, 112, 
-    108, 101,  84, 121, 112, 101, 
-     32,  58,  32, 114, 101, 103, 
-    105, 115, 116, 101, 114,  40, 
-     32, 115,  48,  32,  41,  59, 
-     13,  10,  13,  10,  47,  47, 
-     32,  77,  97, 116, 114, 105, 
-    122, 101, 110,  32, 102, 252, 
-    114,  32, 100, 105, 101,  32, 
-    101, 105, 110, 122, 101, 108, 
-    110, 101, 110,  32,  75, 110, 
-    111,  99, 104, 101, 110,  32, 
-    100, 101, 115,  32,  77, 111, 
-    100, 101, 108, 108, 115,  13, 
-     10, 115, 116, 114, 117,  99, 
-    116,  32,  77,  97, 116, 114, 
-    105, 120,  66, 117, 102, 102, 
-    101, 114,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 109, 
-     97, 116, 114, 105, 120,  32, 
-    107, 110, 111,  99, 104, 101, 
-    110,  77,  97, 116, 114, 105, 
-    120,  91,  32,  49,  50,  56, 
-     32,  93,  59,  13,  10, 125, 
-     59,  13,  10,  13,  10,  47, 
-     47,  32,  84, 104, 101,  32, 
-    112, 114, 111, 106, 101,  99, 
-    116, 105, 111, 110,  32,  97, 
-    110, 100,  32, 118, 105, 101, 
-    119,  32, 109,  97, 116, 114, 
-    105, 120,  13,  10, 115, 116, 
-    114, 117,  99, 116,  32,  75, 
-     97, 109, 101, 114,  97,  66, 
-    117, 102, 102, 101, 114,  13, 
-     10, 123,  13,  10,  32,  32, 
-     32,  32, 109,  97, 116, 114, 
-    105, 120,  32, 118, 105, 101, 
-    119,  59,  13,  10,  32,  32, 
-     32,  32, 109,  97, 116, 114, 
-    105, 120,  32, 112, 114, 111, 
-    106, 101,  99, 116, 105, 111, 
-    110,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10,  47,  47, 
-     32,  84, 104, 101,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32, 111, 102,  32, 116, 
-    104, 101,  32, 107,  97, 109, 
-    101, 114,  97,  13,  10, 115, 
-    116, 114, 117,  99, 116,  32, 
-     75,  97, 109, 101, 114,  97, 
-     66, 117, 102, 102, 101, 114, 
-     50,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  52,  32, 107, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,  59,  13,  10, 125, 
-     59,  13,  10,  13,  10,  47, 
-     47,  32, 116, 104, 101, 115, 
-    101,  32, 118,  97, 108, 117, 
-    101, 115,  32, 115, 104, 111, 
-    117, 108, 100,  32, 115, 117, 
-    109,  32, 117, 112,  32, 116, 
-    111,  32,  49,  13,  10, 115, 
-    116, 114, 117,  99, 116,  32, 
-     77,  97, 116, 101, 114, 105, 
-     97, 108,  13,  10, 123,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  32,  97, 
-    109,  98, 105, 101, 110, 116, 
-     70,  97,  99, 116, 111, 114, 
-     59,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     32, 100, 105, 102, 102, 117, 
-    115,  70,  97,  99, 116, 111, 
-    114,  59,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  32, 115, 112, 101,  99, 
-    117, 108,  97, 114,  70,  97, 
-     99, 116, 111, 114,  59,  13, 
+    101,  32,  58,  32, 114, 101, 
+    103, 105, 115, 116, 101, 114, 
+     40,  32, 116,  48,  32,  41, 
+     59,  13,  10,  83,  97, 109, 
+    112, 108, 101, 114,  83, 116, 
+     97, 116, 101,  32,  83,  97, 
+    109, 112, 108, 101,  84, 121, 
+    112, 101,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32, 115,  48,  32, 
+     41,  59,  13,  10,  13,  10, 
+     47,  47,  32,  77,  97, 116, 
+    114, 105, 122, 101, 110,  32, 
+    102, 252, 114,  32, 100, 105, 
+    101,  32, 101, 105, 110, 122, 
+    101, 108, 110, 101, 110,  32, 
+     75, 110, 111,  99, 104, 101, 
+    110,  32, 100, 101, 115,  32, 
+     77, 111, 100, 101, 108, 108, 
+    115,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  77,  97, 
+    116, 114, 105, 120,  66, 117, 
+    102, 102, 101, 114,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 109,  97, 116, 114, 105, 
+    120,  32, 107, 110, 111,  99, 
+    104, 101, 110,  77,  97, 116, 
+    114, 105, 120,  91,  32,  49, 
+     50,  56,  32,  93,  59,  13, 
      10, 125,  59,  13,  10,  13, 
+     10,  47,  47,  32,  84, 104, 
+    101,  32, 112, 114, 111, 106, 
+    101,  99, 116, 105, 111, 110, 
+     32,  97, 110, 100,  32, 118, 
+    105, 101, 119,  32, 109,  97, 
+    116, 114, 105, 120,  13,  10, 
+    115, 116, 114, 117,  99, 116, 
+     32,  75,  97, 109, 101, 114, 
+     97,  66, 117, 102, 102, 101, 
+    114,  13,  10, 123,  13,  10, 
+     32,  32,  32,  32, 109,  97, 
+    116, 114, 105, 120,  32, 118, 
+    105, 101, 119,  59,  13,  10, 
+     32,  32,  32,  32, 109,  97, 
+    116, 114, 105, 120,  32, 112, 
+    114, 111, 106, 101,  99, 116, 
+    105, 111, 110,  59,  13,  10, 
+    125,  59,  13,  10,  13,  10, 
+     47,  47,  32,  84, 104, 101, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32, 111, 102, 
+     32, 116, 104, 101,  32, 107, 
+     97, 109, 101, 114,  97,  13, 
      10, 115, 116, 114, 117,  99, 
-    116,  32,  76, 105, 103, 104, 
-    116,  67, 111, 117, 110, 116, 
-     13,  10, 123,  13,  10,  32, 
-     32,  32,  32, 105, 110, 116, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116,  67, 111, 117, 110, 116, 
-     59,  13,  10,  32,  32,  32, 
-     32, 105, 110, 116,  32, 112, 
-    111, 105, 110, 116,  76, 105, 
-    103, 104, 116,  67, 111, 117, 
-    110, 116,  59,  13,  10, 125, 
-     59,  13,  10,  13,  10,  67, 
-    111, 110, 115, 116,  97, 110, 
-    116,  66, 117, 102, 102, 101, 
-    114,  60,  75,  97, 109, 101, 
+    116,  32,  75,  97, 109, 101, 
     114,  97,  66, 117, 102, 102, 
-    101, 114,  62,  32,  75,  97, 
-    109, 101, 114,  97,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  32,  98, 
-     48,  32,  41,  59,  13,  10, 
-     67, 111, 110, 115, 116,  97, 
-    110, 116,  66, 117, 102, 102, 
-    101, 114,  60,  77,  97, 116, 
-    114, 105, 120,  66, 117, 102, 
-    102, 101, 114,  62,  32,  83, 
-    107, 101, 108, 101, 116, 116, 
+    101, 114,  50,  13,  10, 123, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  52, 
+     32, 107,  80, 111, 115, 105, 
+    116, 105, 111, 110,  59,  13, 
+     10, 125,  59,  13,  10,  13, 
+     10,  47,  47,  32, 116, 104, 
+    101, 115, 101,  32, 118,  97, 
+    108, 117, 101, 115,  32, 115, 
+    104, 111, 117, 108, 100,  32, 
+    115, 117, 109,  32, 117, 112, 
+     32, 116, 111,  32,  49,  13, 
+     10, 115, 116, 114, 117,  99, 
+    116,  32,  77,  97, 116, 101, 
+    114, 105,  97, 108,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     32,  97, 109,  98, 105, 101, 
+    110, 116,  70,  97,  99, 116, 
+    111, 114,  59,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  32, 100, 105, 102, 
+    102, 117, 115,  70,  97,  99, 
+    116, 111, 114,  59,  13,  10, 
+     32,  32,  32,  32, 102, 108, 
+    111,  97, 116,  32, 115, 112, 
+    101,  99, 117, 108,  97, 114, 
+     70,  97,  99, 116, 111, 114, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  13,  10, 123,  13, 
+     10,  32,  32,  32,  32, 105, 
+    110, 116,  32, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  59,  13,  10,  32, 
+     32,  32,  32, 105, 110, 116, 
+     32, 112, 111, 105, 110, 116, 
+     76, 105, 103, 104, 116,  67, 
+    111, 117, 110, 116,  59,  13, 
+     10, 125,  59,  13,  10,  13, 
+     10,  67, 111, 110, 115, 116, 
+     97, 110, 116,  66, 117, 102, 
+    102, 101, 114,  60,  75,  97, 
+    109, 101, 114,  97,  66, 117, 
+    102, 102, 101, 114,  62,  32, 
+     75,  97, 109, 101, 114,  97, 
      32,  58,  32, 114, 101, 103, 
     105, 115, 116, 101, 114,  40, 
-     32,  98,  49,  32,  41,  59, 
+     32,  98,  48,  32,  41,  59, 
      13,  10,  67, 111, 110, 115, 
     116,  97, 110, 116,  66, 117, 
-    102, 102, 101, 114,  60,  75, 
-     97, 109, 101, 114,  97,  66, 
-    117, 102, 102, 101, 114,  50, 
-     62,  32,  75,  97, 109, 101, 
-    114,  97,  50,  32,  58,  32, 
-    114, 101, 103, 105, 115, 116, 
-    101, 114,  40,  32,  98,  50, 
-     32,  41,  59,  13,  10,  67, 
-    111, 110, 115, 116,  97, 110, 
-    116,  66, 117, 102, 102, 101, 
-    114,  60,  77,  97, 116, 101, 
-    114, 105,  97, 108,  62,  32, 
-     79,  98, 106, 101,  99, 116, 
+    102, 102, 101, 114,  60,  77, 
+     97, 116, 114, 105, 120,  66, 
+    117, 102, 102, 101, 114,  62, 
+     32,  83, 107, 101, 108, 101, 
+    116, 116,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32,  98,  49,  32, 
+     41,  59,  13,  10,  67, 111, 
+    110, 115, 116,  97, 110, 116, 
+     66, 117, 102, 102, 101, 114, 
+     60,  75,  97, 109, 101, 114, 
+     97,  66, 117, 102, 102, 101, 
+    114,  50,  62,  32,  75,  97, 
+    109, 101, 114,  97,  50,  32, 
+     58,  32, 114, 101, 103, 105, 
+    115, 116, 101, 114,  40,  32, 
+     98,  50,  32,  41,  59,  13, 
+     10,  67, 111, 110, 115, 116, 
+     97, 110, 116,  66, 117, 102, 
+    102, 101, 114,  60,  77,  97, 
+    116, 101, 114, 105,  97, 108, 
+     62,  32,  79,  98, 106, 101, 
+     99, 116,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32,  98,  51,  32, 
+     41,  59,  13,  10,  67, 111, 
+    110, 115, 116,  97, 110, 116, 
+     66, 117, 102, 102, 101, 114, 
+     60,  76, 105, 103, 104, 116, 
+     67, 111, 117, 110, 116,  62, 
+     32,  76, 105, 103, 104, 116, 
      32,  58,  32, 114, 101, 103, 
     105, 115, 116, 101, 114,  40, 
-     32,  98,  51,  32,  41,  59, 
-     13,  10,  67, 111, 110, 115, 
-    116,  97, 110, 116,  66, 117, 
-    102, 102, 101, 114,  60,  76, 
-    105, 103, 104, 116,  67, 111, 
-    117, 110, 116,  62,  32,  76, 
-    105, 103, 104, 116,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  32,  98, 
-     52,  32,  41,  59,  13,  10, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  86, 101, 114, 
-    116, 101, 120,  73, 110, 112, 
+     32,  98,  52,  32,  41,  59, 
+     13,  10,  13,  10, 115, 116, 
+    114, 117,  99, 116,  32,  86, 
+    101, 114, 116, 101, 120,  73, 
+    110, 112, 117, 116,  84, 121, 
+    112, 101,  13,  10, 123,  13, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  51,  32, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  32,  58,  32,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,  59,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  50,  32, 116, 101, 120, 
+     32,  58,  32,  84,  69,  88, 
+     67,  79,  79,  82,  68,  59, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  51, 
+     32, 110, 111, 114, 109,  97, 
+    108,  32,  58,  32,  78,  79, 
+     82,  77,  65,  76,  59,  13, 
+     10,  32,  32,  32,  32, 117, 
+    105, 110, 116,  32, 107, 110, 
+    111,  99, 104, 101, 110,  32, 
+     58,  32,  75,  78,  79,  67, 
+     72,  69,  78,  95,  73,  68, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  80, 105, 
+    120, 101, 108,  73, 110, 112, 
     117, 116,  84, 121, 112, 101, 
      13,  10, 123,  13,  10,  32, 
      32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
+     97, 116,  52,  32, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
      32,  58,  32,  80,  79,  83, 
      73,  84,  73,  79,  78,  59, 
      13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  52, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  58,  32, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,  59, 
+     13,  10,  32,  32,  32,  32, 
     102, 108, 111,  97, 116,  50, 
      32, 116, 101, 120,  32,  58, 
      32,  84,  69,  88,  67,  79, 
@@ -1225,53 +1370,20 @@ const BYTE DX12VertexShaderBytes[] =
     111,  97, 116,  51,  32, 110, 
     111, 114, 109,  97, 108,  32, 
      58,  32,  78,  79,  82,  77, 
-     65,  76,  59,  13,  10,  32, 
-     32,  32,  32, 117, 105, 110, 
-    116,  32, 107, 110, 111,  99, 
-    104, 101, 110,  32,  58,  32, 
-     75,  78,  79,  67,  72,  69, 
-     78,  95,  73,  68,  59,  13, 
-     10, 125,  59,  13,  10,  13, 
-     10, 115, 116, 114, 117,  99, 
-    116,  32,  80, 105, 120, 101, 
-    108,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  13,  10, 
-    123,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     52,  32, 119, 111, 114, 108, 
-    100,  80, 111, 115,  32,  58, 
-     32,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  52,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32,  58,  32,  83,  86, 
-     95,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  50,  32, 116, 
-    101, 120,  32,  58,  32,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,  59,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  51,  32, 110, 111, 114, 
-    109,  97, 108,  32,  58,  32, 
-     78,  79,  82,  77,  65,  76, 
-     59,  13,  10, 125,  59,  13, 
-     10,  13,  10,  80, 105, 120, 
-    101, 108,  73, 110, 112, 117, 
+     65,  76,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10,  80, 
+    105, 120, 101, 108,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,  32, 109,  97, 105, 110, 
+     40,  32,  86, 101, 114, 116, 
+    101, 120,  73, 110, 112, 117, 
     116,  84, 121, 112, 101,  32, 
-    109,  97, 105, 110,  40,  32, 
-     86, 101, 114, 116, 101, 120, 
-     73, 110, 112, 117, 116,  84, 
-    121, 112, 101,  32, 105, 110, 
-    112, 117, 116,  32,  41,  13, 
-     10, 123,  13,  10,  32,  32, 
-     32,  32,  47,  47, 114, 101, 
-    116, 117, 114, 110,  32, 105, 
-    110, 112, 117, 116,  59,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
+    105, 110, 112, 117, 116,  32, 
+     41,  13,  10, 123,  13,  10, 
+     32,  32,  32,  32,  47,  47, 
+    114, 101, 116, 117, 114, 110, 
+     32, 105, 110, 112, 117, 116, 
+     59,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1281,164 +1393,136 @@ const BYTE DX12VertexShaderBytes[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  32,  32, 
-     32,  32,  80, 105, 120, 101, 
-    108,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  32, 111, 
-    117, 116, 112, 117, 116,  59, 
-     13,  10,  32,  32,  32,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  32,  61,  32, 110, 111, 
-    114, 109,  97, 108, 105, 122, 
-    101,  40,  32, 109, 117, 108, 
-     40,  32, 105, 110, 112, 117, 
-    116,  46, 110, 111, 114, 109, 
-     97, 108,  44,  32,  40,  32, 
-    102, 108, 111,  97, 116,  51, 
-    120,  51,  32,  41,  83, 107, 
-    101, 108, 101, 116, 116,  46, 
-    107, 110, 111,  99, 104, 101, 
-    110,  77,  97, 116, 114, 105, 
-    120,  91,  32, 105, 110, 112, 
-    117, 116,  46, 107, 110, 111, 
-     99, 104, 101, 110,  32,  93, 
-     32,  41,  32,  41,  59,  13, 
-     10,  13,  10,  32,  32,  32, 
-     32,  47,  47,  32,  67, 104, 
-     97, 110, 103, 101,  32, 116, 
-    104, 101,  32, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
-    118, 101,  99, 116, 111, 114, 
-     32, 116, 111,  32,  98, 101, 
-     32,  52,  32, 117, 110, 105, 
-    116, 115,  32, 102, 111, 114, 
-     32, 112, 114, 111, 112, 101, 
-    114,  32, 109,  97, 116, 114, 
-    105, 120,  32,  99,  97, 108, 
-     99, 117, 108,  97, 116, 105, 
-    111, 110, 115,  46,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     52,  32, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  61, 
-     32, 102, 108, 111,  97, 116, 
-     52,  40,  32, 105, 110, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  46, 
-    120,  44,  32, 105, 110, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  46, 
-    121,  44,  32, 105, 110, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  46, 
-    122,  44,  32,  49,  46, 102, 
-     32,  41,  59,  13,  10,  32, 
+     32,  32,  32,  32,  13,  10, 
+     32,  32,  32,  32,  80, 105, 
+    120, 101, 108,  73, 110, 112, 
+    117, 116,  84, 121, 112, 101, 
+     32, 111, 117, 116, 112, 117, 
+    116,  59,  13,  10,  32,  32, 
+     32,  32, 111, 117, 116, 112, 
+    117, 116,  46, 110, 111, 114, 
+    109,  97, 108,  32,  61,  32, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40,  32, 109, 
+    117, 108,  40,  32, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  44,  32, 
+     40,  32, 102, 108, 111,  97, 
+    116,  51, 120,  51,  32,  41, 
+     83, 107, 101, 108, 101, 116, 
+    116,  46, 107, 110, 111,  99, 
+    104, 101, 110,  77,  97, 116, 
+    114, 105, 120,  91,  32, 105, 
+    110, 112, 117, 116,  46, 107, 
+    110, 111,  99, 104, 101, 110, 
+     32,  93,  32,  41,  32,  41, 
+     59,  13,  10,  13,  10,  32, 
      32,  32,  32,  47,  47,  32, 
-     83, 116, 111, 114, 101,  32, 
-    116, 104, 101,  32, 116, 101, 
-    120, 116, 117, 114, 101,  32, 
-     99, 111, 111, 114, 100, 105, 
-    110,  97, 116, 101, 115,  32, 
-    102, 111, 114,  32, 116, 104, 
-    101,  32, 112, 105, 120, 101, 
-    108,  32, 115, 104,  97, 100, 
-    101, 114,  46,  32,  32,  32, 
+     67, 104,  97, 110, 103, 101, 
+     32, 116, 104, 101,  32, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  32, 118, 101,  99, 116, 
+    111, 114,  32, 116, 111,  32, 
+     98, 101,  32,  52,  32, 117, 
+    110, 105, 116, 115,  32, 102, 
+    111, 114,  32, 112, 114, 111, 
+    112, 101, 114,  32, 109,  97, 
+    116, 114, 105, 120,  32,  99, 
+     97, 108,  99, 117, 108,  97, 
+    116, 105, 111, 110, 115,  46, 
      32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  52,  32, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32,  61,  32, 102, 108, 111, 
+     97, 116,  52,  40,  32, 105, 
+    110, 112, 117, 116,  46, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  46, 120,  44,  32, 105, 
+    110, 112, 117, 116,  46, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  46, 121,  44,  32, 105, 
+    110, 112, 117, 116,  46, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  46, 122,  44,  32,  49, 
+     46, 102,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32,  47, 
+     47,  32,  83, 116, 111, 114, 
+    101,  32, 116, 104, 101,  32, 
+    116, 101, 120, 116, 117, 114, 
+    101,  32,  99, 111, 111, 114, 
+    100, 105, 110,  97, 116, 101, 
+    115,  32, 102, 111, 114,  32, 
+    116, 104, 101,  32, 112, 105, 
+    120, 101, 108,  32, 115, 104, 
+     97, 100, 101, 114,  46,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  13,  10,  32, 
-     32,  32,  32, 111, 117, 116, 
-    112, 117, 116,  46, 116, 101, 
-    120,  32,  61,  32, 105, 110, 
-    112, 117, 116,  46, 116, 101, 
-    120,  59,  13,  10,  13,  10, 
-     32,  32,  32,  32,  47,  47, 
-     32,  67,  97, 108,  99, 117, 
-    108,  97, 116, 101,  32, 116, 
-    104, 101,  32, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
-    111, 102,  32, 116, 104, 101, 
-     32, 118, 101, 114, 116, 101, 
-    120,  32,  97, 103,  97, 105, 
-    110, 115, 116,  32, 116, 104, 
-    101,  32, 119, 111, 114, 108, 
-    100,  44,  32, 118, 105, 101, 
-    119,  44,  32,  97, 110, 100, 
-     32, 112, 114, 111, 106, 101, 
-     99, 116, 105, 111, 110,  32, 
-    109,  97, 116, 114, 105,  99, 
-    101, 115,  46,  32,  13,  10, 
-     32,  32,  32,  32, 111, 117, 
-    116, 112, 117, 116,  46, 119, 
-    111, 114, 108, 100,  80, 111, 
-    115,  32,  61,  32, 109, 117, 
-    108,  40,  32, 112, 111, 115, 
-    105, 116, 105, 111, 110,  44, 
-     32,  83, 107, 101, 108, 101, 
-    116, 116,  46, 107, 110, 111, 
-     99, 104, 101, 110,  77,  97, 
-    116, 114, 105, 120,  91,  32, 
-    105, 110, 112, 117, 116,  46, 
-    107, 110, 111,  99, 104, 101, 
-    110,  32,  93,  32,  41,  59, 
-     13,  10,  32,  32,  32,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32,  61,  32, 
-    109, 117, 108,  40,  32, 111, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  13, 
+     10,  32,  32,  32,  32, 111, 
     117, 116, 112, 117, 116,  46, 
-    119, 111, 114, 108, 100,  80, 
-    111, 115,  44,  32,  75,  97, 
-    109, 101, 114,  97,  46, 118, 
-    105, 101, 119,  32,  41,  59, 
+    116, 101, 120,  32,  61,  32, 
+    105, 110, 112, 117, 116,  46, 
+    116, 101, 120,  59,  13,  10, 
      13,  10,  32,  32,  32,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32,  61,  32, 
-    109, 117, 108,  40,  32, 111, 
-    117, 116, 112, 117, 116,  46, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  44,  32,  75,  97, 
-    109, 101, 114,  97,  46, 112, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,  32,  41,  59, 
+     47,  47,  32,  67,  97, 108, 
+     99, 117, 108,  97, 116, 101, 
+     32, 116, 104, 101,  32, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  32, 111, 102,  32, 116, 
+    104, 101,  32, 118, 101, 114, 
+    116, 101, 120,  32,  97, 103, 
+     97, 105, 110, 115, 116,  32, 
+    116, 104, 101,  32, 119, 111, 
+    114, 108, 100,  44,  32, 118, 
+    105, 101, 119,  44,  32,  97, 
+    110, 100,  32, 112, 114, 111, 
+    106, 101,  99, 116, 105, 111, 
+    110,  32, 109,  97, 116, 114, 
+    105,  99, 101, 115,  46,  32, 
      13,  10,  32,  32,  32,  32, 
     111, 117, 116, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32,  61,  32, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  59,  13,  10,  32, 
-     32,  32,  47,  47,  32, 111, 
-    117, 116, 112, 117, 116,  46, 
-    116, 101, 120,  46, 120,  32, 
-     61,  32,  83, 107, 101, 108, 
-    101, 116, 116,  46, 107, 110, 
-    111,  99, 104, 101, 110,  77, 
-     97, 116, 114, 105, 120,  91, 
-     32, 105, 110, 112, 117, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  32,  93,  91,  32, 
-     48,  32,  93,  91,  32,  50, 
-     32,  93,  59,  13,  10,  32, 
-     32,  32,  47,  47,  32, 111, 
-    117, 116, 112, 117, 116,  46, 
-    116, 101, 120,  46, 121,  32, 
-     61,  32,  83, 107, 101, 108, 
-    101, 116, 116,  46, 107, 110, 
-    111,  99, 104, 101, 110,  77, 
-     97, 116, 114, 105, 120,  91, 
-     32, 105, 110, 112, 117, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  32,  93,  91,  32, 
-     48,  32,  93,  91,  32,  51, 
-     32,  93,  59,  13,  10,  32, 
-     32,  32,  32, 114, 101, 116, 
-    117, 114, 110,  32, 111, 117, 
-    116, 112, 117, 116,  59,  13, 
-     10, 125,   0,   0,   0,   0, 
+     46, 119, 111, 114, 108, 100, 
+     80, 111, 115,  32,  61,  32, 
+    109, 117, 108,  40,  32, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  44,  32,  83, 107, 101, 
+    108, 101, 116, 116,  46, 107, 
+    110, 111,  99, 104, 101, 110, 
+     77,  97, 116, 114, 105, 120, 
+     91,  32, 105, 110, 112, 117, 
+    116,  46, 107, 110, 111,  99, 
+    104, 101, 110,  32,  93,  32, 
+     41,  59,  13,  10,  32,  32, 
+     32,  32, 111, 117, 116, 112, 
+    117, 116,  46, 112, 111, 115, 
+    105, 116, 105, 111, 110,  32, 
+     61,  32, 109, 117, 108,  40, 
+     32, 111, 117, 116, 112, 117, 
+    116,  46, 119, 111, 114, 108, 
+    100,  80, 111, 115,  44,  32, 
+     75,  97, 109, 101, 114,  97, 
+     46, 118, 105, 101, 119,  32, 
+     41,  59,  13,  10,  32,  32, 
+     32,  32, 111, 117, 116, 112, 
+    117, 116,  46, 112, 111, 115, 
+    105, 116, 105, 111, 110,  32, 
+     61,  32, 109, 117, 108,  40, 
+     32, 111, 117, 116, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  44,  32, 
+     75,  97, 109, 101, 114,  97, 
+     46, 112, 114, 111, 106, 101, 
+     99, 116, 105, 111, 110,  32, 
+     41,  59,  13,  10,  32,  32, 
+     32,  32, 114, 101, 116, 117, 
+    114, 110,  32, 111, 117, 116, 
+    112, 117, 116,  59,  13,  10, 
+    125,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1484,95 +1568,6 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 254, 239, 254, 239, 
-      1,   0,   0,   0, 168,   9, 
-      0,   0,   0,  67,  58,  92, 
-     85, 115, 101, 114, 115,  92, 
-    107, 111, 108, 106,  97,  92, 
-     79, 110, 101,  68, 114, 105, 
-    118, 101,  92,  68, 101, 115, 
-    107, 116, 111, 112,  92,  75, 
-    111, 108, 106,  97,  45,  83, 
-    116, 114, 111, 104, 109,  45, 
-     71,  97, 109, 101, 115,  92, 
-     65, 108, 108, 103, 101, 109, 
-    101, 105, 110,  92,  70, 114, 
-     97, 109, 101, 119, 111, 114, 
-    107,  92,  68,  88,  49,  50, 
-     86, 101, 114, 116, 101, 120, 
-     83, 104,  97, 100, 101, 114, 
-     46, 104, 108, 115, 108,   0, 
-      0,  99,  58,  92, 117, 115, 
-    101, 114, 115,  92, 107, 111, 
-    108, 106,  97,  92, 111, 110, 
-    101, 100, 114, 105, 118, 101, 
-     92, 100, 101, 115, 107, 116, 
-    111, 112,  92, 107, 111, 108, 
-    106,  97,  45, 115, 116, 114, 
-    111, 104, 109,  45, 103,  97, 
-    109, 101, 115,  92,  97, 108, 
-    108, 103, 101, 109, 101, 105, 
-    110,  92, 102, 114,  97, 109, 
-    101, 119, 111, 114, 107,  92, 
-    100, 120,  49,  50, 118, 101, 
-    114, 116, 101, 120, 115, 104, 
-     97, 100, 101, 114,  46, 104, 
-    108, 115, 108,   0,  13,  10, 
-     84, 101, 120, 116, 117, 114, 
-    101,  50,  68,  32, 115, 104, 
-     97, 100, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-    116,  48,  32,  41,  59,  13, 
-     10,  83,  97, 109, 112, 108, 
-    101, 114,  83, 116,  97, 116, 
-    101,  32,  83,  97, 109, 112, 
-    108, 101,  84, 121, 112, 101, 
-     32,  58,  32, 114, 101, 103, 
-    105, 115, 116, 101, 114,  40, 
-     32, 115,  48,  32,  41,  59, 
-     13,  10,  13,  10,  47,  47, 
-     32,  77,  97, 116, 114, 105, 
-    122, 101, 110,  32, 102, 114, 
-     32, 100, 105, 101,  32, 101, 
-    105, 110, 122, 101, 108, 110, 
-    101, 110,  32,  75, 110, 111, 
-     99, 104, 101, 110,  32, 100, 
-    101, 115,  32,  77, 111, 100, 
-    101, 108, 108, 115,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  77,  97, 116, 114, 105, 
-    120,  66, 117, 102, 102, 101, 
-    114,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 109,  97, 
-    116, 114, 105, 120,  32, 107, 
-    110, 111,  99, 104, 101, 110, 
-     77,  97, 116, 114, 105, 120, 
-     91,  32,  49,  50,  56,  32, 
-     93,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10,  47,  47, 
-     32,  84, 104, 101,  32, 112, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,  32,  97, 110, 
-    100,  32, 118, 105, 101, 119, 
-     32, 109,  97, 116, 114, 105, 
-    120,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  75,  97, 
-    109, 101, 114,  97,  66, 117, 
-    102, 102, 101, 114,  13,  10, 
-    123,  13,  10,  32,  32,  32, 
-     32, 109,  97, 116, 114, 105, 
-    120,  32, 118, 105, 101, 119, 
-     59,  13,  10,  32,  32,  32, 
-     32, 109,  97, 116, 114, 105, 
-    120,  32, 112, 114, 111, 106, 
-    101,  99, 116, 105, 111, 110, 
-     59,  13,  10, 125,  59,  13, 
-     10,  13,  10,  47,  27, 226, 
-     48,   1, 128,   0,   0,   0, 
-    181, 224,  25, 197, 243, 190, 
-    212,   1,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1580,15 +1575,6 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,  95,   0, 
-      0,   0,  40,   0,   0,   0, 
-     27, 226,  48,   1,  52,  89, 
-     71, 101, 236,   8,   0,   0, 
-      1,   0,   0,   0,  94,   0, 
-      0,   0,  95,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1611,6 +1597,95 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 254, 239, 
+    254, 239,   1,   0,   0,   0, 
+    247,   8,   0,   0,   0,  67, 
+     58,  92,  85, 115, 101, 114, 
+    115,  92, 107, 111, 108, 106, 
+     97,  92,  79, 110, 101,  68, 
+    114, 105, 118, 101,  92,  68, 
+    101, 115, 107, 116, 111, 112, 
+     92,  75, 111, 108, 106,  97, 
+     45,  83, 116, 114, 111, 104, 
+    109,  45,  71,  97, 109, 101, 
+    115,  92,  65, 108, 108, 103, 
+    101, 109, 101, 105, 110,  92, 
+     70, 114,  97, 109, 101, 119, 
+    111, 114, 107,  92,  68,  88, 
+     49,  50,  86, 101, 114, 116, 
+    101, 120,  83, 104,  97, 100, 
+    101, 114,  46, 104, 108, 115, 
+    108,   0,   0,  99,  58,  92, 
+    117, 115, 101, 114, 115,  92, 
+    107, 111, 108, 106,  97,  92, 
+    111, 110, 101, 100, 114, 105, 
+    118, 101,  92, 100, 101, 115, 
+    107, 116, 111, 112,  92, 107, 
+    111, 108, 106,  97,  45, 115, 
+    116, 114, 111, 104, 109,  45, 
+    103,  97, 109, 101, 115,  92, 
+     97, 108, 108, 103, 101, 109, 
+    101, 105, 110,  92, 102, 114, 
+     97, 109, 101, 119, 111, 114, 
+    107,  92, 100, 120,  49,  50, 
+    118, 101, 114, 116, 101, 120, 
+    115, 104,  97, 100, 101, 114, 
+     46, 104, 108, 115, 108,   0, 
+     13,  10,  84, 101, 120, 116, 
+    117, 114, 101,  50,  68,  32, 
+    115, 104,  97, 100, 101, 114, 
+     84, 101, 120, 116, 117, 114, 
+    101,  32,  58,  32, 114, 101, 
+    103, 105, 115, 116, 101, 114, 
+     40,  32, 116,  48,  32,  41, 
+     59,  13,  10,  83,  97, 109, 
+    112, 108, 101, 114,  83, 116, 
+     97, 116, 101,  32,  83,  97, 
+    109, 112, 108, 101,  84, 121, 
+    112, 101,  32,  58,  32, 114, 
+    101, 103, 105, 115, 116, 101, 
+    114,  40,  32, 115,  48,  32, 
+     41,  59,  13,  10,  13,  10, 
+     47,  47,  32,  77,  97, 116, 
+    114, 105, 122, 101, 110,  32, 
+    102, 114,  32, 100, 105, 101, 
+     32, 101, 105, 110, 122, 101, 
+    108, 110, 101, 110,  32,  75, 
+    110, 111,  99, 104, 101, 110, 
+     32, 100, 101, 115,  32,  77, 
+    111, 100, 101, 108, 108, 115, 
+     13,  10, 115, 116, 114, 117, 
+     99, 116,  32,  77,  97, 116, 
+    114, 105, 120,  66, 117, 102, 
+    102, 101, 114,  13,  10, 123, 
+     13,  10,  32,  32,  32,  32, 
+    109,  97, 116, 114, 105, 120, 
+     32, 107, 110, 111,  99, 104, 
+    101, 110,  77,  97, 116, 114, 
+    105, 120,  91,  32,  49,  50, 
+     56,  32,  93,  59,  13,  10, 
+    125,  59,  13,  10,  13,  10, 
+     47,  47,  32,  84, 104, 101, 
+     32, 112, 114, 111, 106, 101, 
+     99, 116, 105, 111, 110,  32, 
+     97, 110, 100,  32, 118, 105, 
+    101, 119,  32, 109,  97, 116, 
+    114, 105, 120,  13,  10, 115, 
+    116, 114, 117,  99, 116,  32, 
+     75,  97, 109, 101, 114,  97, 
+     66, 117, 102, 102, 101, 114, 
+     13,  10, 123,  13,  10,  32, 
+     32,  32,  32, 109,  97, 116, 
+    114, 105, 120,  32, 118, 105, 
+    101, 119,  59,  13,  10,  32, 
+     32,  32,  32, 109,  97, 116, 
+    114, 105, 120,  32, 112, 114, 
+    111, 106, 101,  99, 116, 105, 
+    111, 110,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10,  47, 
+     27, 226,  48,   1, 128,   0, 
+      0,   0,  62, 219, 253,   7, 
+    249, 190, 212,   1,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1618,7 +1693,15 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
       0,   0,   0,   0,   0,   0, 
+     95,   0,   0,   0,  40,   0, 
+      0,   0,  27, 226,  48,   1, 
+     49, 125, 169, 169,  59,   8, 
+      0,   0,   1,   0,   0,   0, 
+     94,   0,   0,   0,  95,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1655,292 +1738,357 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,  66,   0, 
-     60,  17,  16,   1,   0,   0, 
-      0,   1,  10,   0,   1,   0, 
-     15,   0, 171,  63,  10,   0, 
-      1,   0,  15,   0, 171,  63, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  49, 
-     48,  46,  49,   0,   0,   0, 
-     54,   0,  61,  17,   1, 104, 
-    108, 115, 108,  70, 108,  97, 
-    103, 115,   0,  48, 120,  53, 
-      0, 104, 108, 115, 108,  84, 
-     97, 114, 103, 101, 116,   0, 
-    118, 115,  95,  53,  95,  49, 
-      0, 104, 108, 115, 108,  69, 
-    110, 116, 114, 121,   0, 109, 
-     97, 105, 110,   0,   0,   0, 
-      0,   0,  42,   0,  16,  17, 
-      0,   0,   0,   0,  32,   5, 
-      0,   0,   0,   0,   0,   0, 
-     92,   2,   0,   0,   0,   0, 
-      0,   0,  92,   2,   0,   0, 
-      9,  16,   0,   0, 148,   0, 
-      0,   0,   1,   0, 160, 109, 
-     97, 105, 110,   0,  46,   0, 
-     62,  17,   3,  16,   0,   0, 
-      9,   0, 105, 110, 112, 117, 
-    116,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-      0,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-      4,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      4,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-      8,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      8,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     12,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     16,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     16,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     20,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     20,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     32,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     24,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     36,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     28,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     40,   0,   0,   0,  22,   0, 
-     80,  17,   1,   0,   5,   0, 
-     32,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     48,   0,   0,   0,  58,   0, 
-     62,  17,   8,  16,   0,   0, 
-    136,   0,  60, 109,  97, 105, 
-    110,  32, 114, 101, 116, 117, 
-    114, 110,  32, 118,  97, 108, 
-    117, 101,  62,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     40,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     48,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     44,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     52,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     48,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     56,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     32,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     32,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     36,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     36,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     16,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     16,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     20,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     20,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     24,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     24,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     28,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     28,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-      0,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-      4,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      4,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-      8,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-      8,   0,   0,   0,  22,   0, 
-     80,  17,   2,   0,   5,   0, 
-     12,   0,   4,   0, 148,   0, 
-      0,   0,   1,   0,  92,   2, 
-     12,   0,   0,   0,  46,   0, 
-     62,  17,   7,  16,   0,   0, 
-      8,   0, 111, 117, 116, 112, 
-    117, 116,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     40,   0,   4,   0, 128,   1, 
-      0,   0,   1,   0, 112,   1, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     44,   0,   4,   0, 128,   1, 
-      0,   0,   1,   0, 112,   1, 
-      4,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     48,   0,   4,   0, 128,   1, 
-      0,   0,   1,   0, 112,   1, 
-      8,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     32,   0,   4,   0, 188,   1, 
-      0,   0,   1,   0,  52,   1, 
-     32,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     36,   0,   4,   0, 188,   1, 
-      0,   0,   1,   0,  52,   1, 
-     36,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0,   4,   2, 
-      0,   0,   1,   0, 236,   0, 
-     48,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0,  48,   2, 
-      0,   0,   1,   0, 192,   0, 
-     52,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0,  92,   2, 
-      0,   0,   1,   0, 148,   0, 
-     56,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     12,   0,   4,   0, 136,   2, 
-      0,   0,   1,   0, 104,   0, 
-     60,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     16,   0,   4,   0, 156,   2, 
-      0,   0,   1,   0,  84,   0, 
-     16,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     20,   0,   4,   0, 156,   2, 
-      0,   0,   1,   0,  84,   0, 
-     20,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     24,   0,   4,   0, 156,   2, 
-      0,   0,   1,   0,  84,   0, 
-     24,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     28,   0,   4,   0, 156,   2, 
-      0,   0,   1,   0,  84,   0, 
-     28,   0,   0,   0,  46,   0, 
-     62,  17,   5,  16,   0,   0, 
-      8,   0, 112, 111, 115, 105, 
-    116, 105, 111, 110,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0, 148,   1, 
-      0,   0,   1,   0,  92,   1, 
-     16,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0, 148,   1, 
-      0,   0,   1,   0,  92,   1, 
-     20,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0, 148,   1, 
-      0,   0,   1,   0,  92,   1, 
-     24,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     12,   0,   4,   0, 168,   1, 
-      0,   0,   1,   0,  72,   1, 
-     28,   0,   0,   0,   2,   0, 
-      6,   0, 244,   0,   0,   0, 
-     24,   0,   0,   0,   1,   0, 
-      0,   0,  16,   1, 230, 185, 
-    145,  92, 255, 224,  73, 107, 
-    176,  26,   8, 179, 165,  17, 
-    249,  18,   0,   0, 242,   0, 
-      0,   0,  16,   2,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      1,   0, 240,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     66,   0,  60,  17,  16,   1, 
+      0,   0,   0,   1,  10,   0, 
+      1,   0,  15,   0, 171,  63, 
+     10,   0,   1,   0,  15,   0, 
+    171,  63,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  49,  48,  46,  49,   0, 
+      0,   0,  54,   0,  61,  17, 
+      1, 104, 108, 115, 108,  70, 
+    108,  97, 103, 115,   0,  48, 
+    120,  53,   0, 104, 108, 115, 
+    108,  84,  97, 114, 103, 101, 
+    116,   0, 118, 115,  95,  53, 
+     95,  49,   0, 104, 108, 115, 
+    108,  69, 110, 116, 114, 121, 
+      0, 109,  97, 105, 110,   0, 
       0,   0,   0,   0,  42,   0, 
-      0,   0,   4,   2,   0,   0, 
-    148,   0,   0,   0,  64,   0, 
-      0, 128, 148,   0,   0,   0, 
-     64,   0,   0,   0, 180,   0, 
+     16,  17,   0,   0,   0,   0, 
+    128,   5,   0,   0,   0,   0, 
+      0,   0, 104,   3,   0,   0, 
+      0,   0,   0,   0, 104,   3, 
+      0,   0,   9,  16,   0,   0, 
+    176,   0,   0,   0,   1,   0, 
+    160, 109,  97, 105, 110,   0, 
+     46,   0,  62,  17,   3,  16, 
+      0,   0,   9,   0, 105, 110, 
+    112, 117, 116,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,   0,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   0,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,   4,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   4,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,   8,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   8,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  12,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  16,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  16,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  20,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  20,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  32,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  24,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  36,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  28,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  40,   0,   0,   0, 
+     22,   0,  80,  17,   1,   0, 
+      5,   0,  32,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  48,   0,   0,   0, 
+     58,   0,  62,  17,   8,  16, 
+      0,   0, 136,   0,  60, 109, 
+     97, 105, 110,  32, 114, 101, 
+    116, 117, 114, 110,  32, 118, 
+     97, 108, 117, 101,  62,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  40,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  48,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  44,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  52,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  48,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  56,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  32,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  32,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  36,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  36,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  16,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  16,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  20,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  20,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  24,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  24,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  28,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  28,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,   0,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   0,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,   4,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   4,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,   8,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,   8,   0,   0,   0, 
+     22,   0,  80,  17,   2,   0, 
+      5,   0,  12,   0,   4,   0, 
+    176,   0,   0,   0,   1,   0, 
+    104,   3,  12,   0,   0,   0, 
+     46,   0,  62,  17,   7,  16, 
+      0,   0,   8,   0, 111, 117, 
+    116, 112, 117, 116,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  40,   0,   4,   0, 
+    156,   1,   0,   0,   1,   0, 
+    124,   2,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  44,   0,   4,   0, 
+    156,   1,   0,   0,   1,   0, 
+    124,   2,   4,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  48,   0,   4,   0, 
+    156,   1,   0,   0,   1,   0, 
+    124,   2,   8,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  32,   0,   4,   0, 
+    216,   1,   0,   0,   1,   0, 
+     64,   2,  32,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  36,   0,   4,   0, 
+    216,   1,   0,   0,   1,   0, 
+     64,   2,  36,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+     32,   2,   0,   0,   1,   0, 
+    248,   1,  48,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   4,   0,   4,   0, 
+     76,   2,   0,   0,   1,   0, 
+    204,   1,  52,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   8,   0,   4,   0, 
+    120,   2,   0,   0,   1,   0, 
+    160,   1,  56,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  12,   0,   4,   0, 
+    164,   2,   0,   0,   1,   0, 
+    116,   1,  60,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  16,   0,   4,   0, 
+    200,   2,   0,   0,   1,   0, 
+    144,   0,  16,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  20,   0,   4,   0, 
+    236,   2,   0,   0,   1,   0, 
+    144,   0,  20,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  24,   0,   4,   0, 
+     16,   3,   0,   0,   1,   0, 
+    144,   0,  24,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  28,   0,   4,   0, 
+     52,   3,   0,   0,   1,   0, 
+    144,   0,  28,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  16,   0,   4,   0, 
+     88,   3,   0,   0,   1,   0, 
+    192,   0,  64,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  20,   0,   4,   0, 
+    124,   3,   0,   0,   1,   0, 
+    156,   0,  68,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  24,   0,   4,   0, 
+    160,   3,   0,   0,   1,   0, 
+    120,   0,  72,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  28,   0,   4,   0, 
+    196,   3,   0,   0,   1,   0, 
+     84,   0,  76,   0,   0,   0, 
+     46,   0,  62,  17,   5,  16, 
+      0,   0,   8,   0, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+    176,   1,   0,   0,   1,   0, 
+     24,   1,  16,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   4,   0,   4,   0, 
+    176,   1,   0,   0,   1,   0, 
+     60,   1,  20,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   8,   0,   4,   0, 
+    176,   1,   0,   0,   1,   0, 
+     96,   1,  24,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,  12,   0,   4,   0, 
+    196,   1,   0,   0,   1,   0, 
+    112,   1,  28,   0,   0,   0, 
+      2,   0,   6,   0, 244,   0, 
+      0,   0,  24,   0,   0,   0, 
+      1,   0,   0,   0,  16,   1, 
+     71, 121, 240, 176,  90,  57, 
+    156, 190, 127,  43, 112, 202, 
+     47, 188,  72, 217,   0,   0, 
+    242,   0,   0,   0, 184,   2, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   1,   0,  24,   4, 
+      0,   0,   0,   0,   0,   0, 
+     56,   0,   0,   0, 172,   2, 
+      0,   0, 176,   0,   0,   0, 
+     64,   0,   0, 128, 176,   0, 
+      0,   0,  64,   0,   0,   0, 
+    208,   0,   0,   0,  64,   0, 
+      0, 128, 208,   0,   0,   0, 
+     64,   0,   0,   0, 248,   0, 
       0,   0,  64,   0,   0, 128, 
-    180,   0,   0,   0,  64,   0, 
-      0,   0, 220,   0,   0,   0, 
-     64,   0,   0, 128, 220,   0, 
+    248,   0,   0,   0,  64,   0, 
+      0,   0,  36,   1,   0,   0, 
+     64,   0,   0, 128,  36,   1, 
       0,   0,  64,   0,   0,   0, 
-      8,   1,   0,   0,  64,   0, 
-      0, 128,   8,   1,   0,   0, 
-     64,   0,   0,   0,  52,   1, 
+     80,   1,   0,   0,  64,   0, 
+      0, 128,  80,   1,   0,   0, 
+     64,   0,   0,   0, 108,   1, 
       0,   0,  64,   0,   0, 128, 
-     52,   1,   0,   0,  64,   0, 
-      0,   0,  80,   1,   0,   0, 
-     64,   0,   0, 128,  80,   1, 
+    108,   1,   0,   0,  64,   0, 
+      0,   0, 128,   1,   0,   0, 
+     64,   0,   0, 128, 128,   1, 
       0,   0,  64,   0,   0,   0, 
-    100,   1,   0,   0,  64,   0, 
-      0, 128, 100,   1,   0,   0, 
-     64,   0,   0,   0, 128,   1, 
+    156,   1,   0,   0,  67,   0, 
+      0, 128, 156,   1,   0,   0, 
+     67,   0,   0,   0, 176,   1, 
       0,   0,  67,   0,   0, 128, 
-    128,   1,   0,   0,  67,   0, 
-      0,   0, 148,   1,   0,   0, 
-     67,   0,   0, 128, 148,   1, 
-      0,   0,  67,   0,   0,   0, 
-    168,   1,   0,   0,  69,   0, 
-      0, 128, 168,   1,   0,   0, 
-     69,   0,   0,   0, 188,   1, 
+    176,   1,   0,   0,  67,   0, 
+      0,   0, 196,   1,   0,   0, 
+     69,   0,   0, 128, 196,   1, 
+      0,   0,  69,   0,   0,   0, 
+    216,   1,   0,   0,  72,   0, 
+      0, 128, 216,   1,   0,   0, 
+     72,   0,   0,   0, 248,   1, 
       0,   0,  72,   0,   0, 128, 
-    188,   1,   0,   0,  72,   0, 
-      0,   0, 220,   1,   0,   0, 
-     72,   0,   0, 128, 220,   1, 
+    248,   1,   0,   0,  72,   0, 
+      0,   0,  32,   2,   0,   0, 
+     72,   0,   0, 128,  32,   2, 
       0,   0,  72,   0,   0,   0, 
-      4,   2,   0,   0,  72,   0, 
-      0, 128,   4,   2,   0,   0, 
-     72,   0,   0,   0,  48,   2, 
+     76,   2,   0,   0,  72,   0, 
+      0, 128,  76,   2,   0,   0, 
+     72,   0,   0,   0, 120,   2, 
       0,   0,  72,   0,   0, 128, 
-     48,   2,   0,   0,  72,   0, 
-      0,   0,  92,   2,   0,   0, 
-     72,   0,   0, 128,  92,   2, 
-      0,   0,  72,   0,   0,   0, 
-    136,   2,   0,   0,  75,   0, 
-      0, 128, 136,   2,   0,   0, 
-     75,   0,   0,   0, 156,   2, 
-      0,   0,  78,   0,   0, 128, 
-    156,   2,   0,   0,  78,   0, 
-      0,   0, 176,   2,   0,   0, 
-     78,   0,   0, 128, 176,   2, 
-      0,   0,  78,   0,   0,   0, 
-    196,   2,   0,   0,  78,   0, 
-      0, 128, 196,   2,   0,   0, 
-     78,   0,   0,   0, 216,   2, 
-      0,   0,  78,   0,   0, 128, 
-    216,   2,   0,   0,  78,   0, 
-      0,   0, 236,   2,   0,   0, 
-     78,   0,   0, 128, 236,   2, 
-      0,   0,  78,   0,   0,   0, 
+    120,   2,   0,   0,  72,   0, 
+      0,   0, 164,   2,   0,   0, 
+     73,   0,   0, 128, 164,   2, 
+      0,   0,  73,   0,   0,   0, 
+    200,   2,   0,   0,  73,   0, 
+      0, 128, 200,   2,   0,   0, 
+     73,   0,   0,   0, 236,   2, 
+      0,   0,  73,   0,   0, 128, 
+    236,   2,   0,   0,  73,   0, 
+      0,   0,  16,   3,   0,   0, 
+     73,   0,   0, 128,  16,   3, 
+      0,   0,  73,   0,   0,   0, 
+     52,   3,   0,   0,  74,   0, 
+      0, 128,  52,   3,   0,   0, 
+     74,   0,   0,   0,  88,   3, 
+      0,   0,  74,   0,   0, 128, 
+     88,   3,   0,   0,  74,   0, 
+      0,   0, 124,   3,   0,   0, 
+     74,   0,   0, 128, 124,   3, 
+      0,   0,  74,   0,   0,   0, 
+    160,   3,   0,   0,  74,   0, 
+      0, 128, 160,   3,   0,   0, 
+     74,   0,   0,   0, 196,   3, 
+      0,   0,  75,   0,   0, 128, 
+    196,   3,   0,   0,  75,   0, 
+      0,   0, 216,   3,   0,   0, 
+     75,   0,   0, 128, 216,   3, 
+      0,   0,  75,   0,   0,   0, 
+    236,   3,   0,   0,  75,   0, 
+      0, 128, 236,   3,   0,   0, 
+     75,   0,   0,   0,   0,   4, 
+      0,   0,  75,   0,   0, 128, 
+      0,   4,   0,   0,  75,   0, 
+      0,   0,  20,   4,   0,   0, 
+     75,   0,   0, 128,  20,   4, 
+      0,   0,  75,   0,   0,   0, 
       5,   0, 105,   0,  63,   0, 
     100,   0,   5,   0, 105,   0, 
      32,   0, 102,   0,   5,   0, 
@@ -1961,62 +2109,28 @@ const BYTE DX12VertexShaderBytes[] =
      77,   0,   5,   0,  78,   0, 
      23,   0,  77,   0,   5,   0, 
      78,   0,  23,   0,  77,   0, 
-      5,   0,  31,   0,   5,   0, 
-     30,   0,   5,   0,  18,   0, 
-      5,   0,  18,   0,   5,   0, 
+      5,   0,  58,   0,  23,   0, 
+     57,   0,   5,   0,  58,   0, 
+     23,   0,  57,   0,   5,   0, 
+     58,   0,  23,   0,  57,   0, 
+      5,   0,  58,   0,  23,   0, 
+     57,   0,   5,   0,  64,   0, 
+     23,   0,  63,   0,   5,   0, 
+     64,   0,  23,   0,  63,   0, 
+      5,   0,  64,   0,  23,   0, 
+     63,   0,   5,   0,  64,   0, 
+     23,   0,  63,   0,   5,   0, 
      18,   0,   5,   0,  18,   0, 
       5,   0,  18,   0,   5,   0, 
      18,   0,   5,   0,  18,   0, 
       5,   0,  18,   0,   5,   0, 
      18,   0,   5,   0,  18,   0, 
-    246,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      8,   0,   0,   0,   0,   0, 
-      0,   0,  20,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 116, 114, 105, 120, 
-     66, 117, 102, 102, 101, 114, 
-      0, 241,  10,   0,  24,  21, 
-     13,  16,   0,   0,   1,   0, 
-      1,   0,  14,   0,  23,  21, 
-     14,  16,   0,   0,  36,   2, 
-     96,  15,   0,   0, 242, 241, 
-     10,   0,  24,  21,  15,  16, 
-      0,   0,   1,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      5,   0,  18,   0,   5,   0, 
+     18,   0, 246,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,  12,   0,   0,   0, 
+      0,   0,   0,   0,  20,   0, 
+      0,   0,  56,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2081,121 +2195,35 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  11, 202, 
-     49,   1,  56,   0,   0,   0, 
-      0,  16,   0,   0,  17,  16, 
-      0,   0, 252,   1,   0,   0, 
-     10,   0, 255, 255,   4,   0, 
-      0,   0, 255, 255,   3,   0, 
-      0,   0,   0,   0,  68,   0, 
-      0,   0,  68,   0,   0,   0, 
-      8,   0,   0,   0,  76,   0, 
-      0,   0,   0,   0,   0,   0, 
-     22,   0,  27,  21,  64,   0, 
-      0,   0,   3,   0,   0,   0, 
-     12,   0, 102, 108, 111,  97, 
-    116,  51,   0, 243, 242, 241, 
-     22,   0,  27,  21,  64,   0, 
-      0,   0,   2,   0,   0,   0, 
-      8,   0, 102, 108, 111,  97, 
-    116,  50,   0, 243, 242, 241, 
-     78,   0,   3,  18,  13,  21, 
-      3,   0,   0,  16,   0,   0, 
-      0,   0, 112, 111, 115, 105, 
-    116, 105, 111, 110,   0, 241, 
-     13,  21,   3,   0,   1,  16, 
-      0,   0,  12,   0, 116, 101, 
-    120,   0, 242, 241,  13,  21, 
-      3,   0,   0,  16,   0,   0, 
-     20,   0, 110, 111, 114, 109, 
-     97, 108,   0, 243, 242, 241, 
-     13,  21,   3,   0, 117,   0, 
-      0,   0,  32,   0, 107, 110, 
-    111,  99, 104, 101, 110,   0, 
-    242, 241,  38,   0,   5,  21, 
-      4,   0,   0,   0,   2,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  36,   0, 
-     86, 101, 114, 116, 101, 120, 
-     73, 110, 112, 117, 116,  84, 
-    121, 112, 101,   0, 242, 241, 
-     10,   0,   1,  18,   1,   0, 
-      0,   0,   3,  16,   0,   0, 
-     22,   0,  27,  21,  64,   0, 
-      0,   0,   4,   0,   0,   0, 
-     16,   0, 102, 108, 111,  97, 
-    116,  52,   0, 243, 242, 241, 
-     78,   0,   3,  18,  13,  21, 
-      3,   0,   5,  16,   0,   0, 
-      0,   0, 119, 111, 114, 108, 
-    100,  80, 111, 115,   0, 241, 
-     13,  21,   3,   0,   5,  16, 
-      0,   0,  16,   0, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-      0, 241,  13,  21,   3,   0, 
-      1,  16,   0,   0,  32,   0, 
-    116, 101, 120,   0, 242, 241, 
-     13,  21,   3,   0,   0,  16, 
-      0,   0,  40,   0, 110, 111, 
-    114, 109,  97, 108,   0, 243, 
-    242, 241,  38,   0,   5,  21, 
-      4,   0,   0,   0,   6,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  52,   0, 
-     80, 105, 120, 101, 108,  73, 
-    110, 112, 117, 116,  84, 121, 
-    112, 101,   0, 243, 242, 241, 
-     10,   0,  24,  21,   7,  16, 
-      0,   0,   1,   0,   1,   0, 
-     14,   0,   8,  16,   8,  16, 
-      0,   0,  23,   0,   1,   0, 
-      4,  16,   0,   0,  30,   0, 
-     28,  21,  64,   0,   0,   0, 
-      4,   0,   0,   0,   4,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,  64,   0, 102, 108, 111, 
-     97, 116,  52, 120,  52,   0, 
+     66, 117, 102, 102, 101, 114, 
+      0, 241,  10,   0,  24,  21, 
+     12,  16,   0,   0,   1,   0, 
+      1,   0,  14,   0,  23,  21, 
+     13,  16,   0,   0,  36,   2, 
+     96,  15,   0,   0, 242, 241, 
+     10,   0,  24,  21,  14,  16, 
+      0,   0,   1,   0,   0,   2, 
      18,   0,  22,  21,  10,  16, 
       0,   0,  34,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
       0, 241,  26,   0,   3,  18, 
-     13,  21,   3,   0,  11,  16, 
+     13,  21,   3,   0,  16,  16, 
       0,   0,   0,   0, 107, 110, 
     111,  99, 104, 101, 110,  77, 
      97, 116, 114, 105, 120,   0, 
      34,   0,   5,  21,   1,   0, 
-      0,   0,  12,  16,   0,   0, 
+      0,   0,  17,  16,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,  32,  77,  97, 
-     11, 202,  49,   1,  56,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,  11,   0, 255, 255, 
-      4,   0,   0,   0, 255, 255, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    116, 114, 105, 120,  66, 117, 
+    102, 102, 101, 114,   0, 241, 
+     10,   0,  24,  21,  18,  16, 
+      0,   0,   1,   0,   1,   0, 
+     14,   0,  23,  21,  19,  16, 
+      0,   0,  36,   2,   0,   0, 
+      0,   0, 242, 241,  10,   0, 
+     24,  21,  20,  16,   0,   0, 
+      1,   0,   0,   2,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2252,269 +2280,115 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 115, 116, 101, 114, 
-     40,  32,  98,  51,  32,  41, 
-     59,  13,  10,  67, 111, 110, 
-    115, 116,  97, 110, 116,  66, 
-    117, 102, 102, 101, 114,  60, 
-     76, 105, 103, 104, 116,  67, 
-    111, 117, 110, 116,  62,  32, 
-     76, 105, 103, 104, 116,  32, 
-     58,  32, 114, 101, 103, 105, 
-    115, 116, 101, 114,  40,  32, 
-     98,  52,  32,  41,  59,  13, 
-     10,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  86, 101, 
-    114, 116, 101, 120,  73, 110, 
-    112, 117, 116,  84, 121, 112, 
-    101,  13,  10, 123,  13,  10, 
-     32,  32,  32,  32, 102, 108, 
-    111,  97, 116,  51,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32,  58,  32,  80,  79, 
-     83,  73,  84,  73,  79,  78, 
-     59,  13,  10,  32,  32,  32, 
-     32, 102, 108, 111,  97, 116, 
-     50,  32, 116, 101, 120,  32, 
-     58,  32,  84,  69,  88,  67, 
-     79,  79,  82,  68,  59,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  51,  32, 
-    110, 111, 114, 109,  97, 108, 
-     32,  58,  32,  78,  79,  82, 
-     77,  65,  76,  59,  13,  10, 
-     32,  32,  32,  32, 117, 105, 
-    110, 116,  32, 107, 110, 111, 
-     99, 104, 101, 110,  32,  58, 
-     32,  75,  78,  79,  67,  72, 
-     69,  78,  95,  73,  68,  59, 
-     13,  10, 125,  59,  13,  10, 
-     13,  10, 115, 116, 114, 117, 
-     99, 116,  32,  80, 105, 120, 
-    101, 108,  73, 110, 112, 117, 
-    116,  84, 121, 112, 101,  13, 
-     10, 123,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  52,  32, 119, 111, 114, 
-    108, 100,  80, 111, 115,  32, 
-     58,  32,  80,  79,  83,  73, 
-     84,  73,  79,  78,  59,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  52,  32, 
+      0,   0,  11, 202,  49,   1, 
+     56,   0,   0,   0,   0,  16, 
+      0,   0,  22,  16,   0,   0, 
+    116,   2,   0,   0,  10,   0, 
+    255, 255,   4,   0,   0,   0, 
+    255, 255,   3,   0,   0,   0, 
+      0,   0,  88,   0,   0,   0, 
+     88,   0,   0,   0,   8,   0, 
+      0,   0,  96,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      3,   0,   0,   0,  12,   0, 
+    102, 108, 111,  97, 116,  51, 
+      0, 243, 242, 241,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+    102, 108, 111,  97, 116,  50, 
+      0, 243, 242, 241,  78,   0, 
+      3,  18,  13,  21,   3,   0, 
+      0,  16,   0,   0,   0,   0, 
     112, 111, 115, 105, 116, 105, 
-    111, 110,  32,  58,  32,  83, 
-     86,  95,  80,  79,  83,  73, 
-     84,  73,  79,  78,  59,  13, 
-     10,  32,  32,  32,  32, 102, 
-    108, 111,  97, 116,  50,  32, 
-    116, 101, 120,  32,  58,  32, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,  59,  13,  10,  32, 
-     32,  32,  32, 102, 108, 111, 
-     97, 116,  51,  32, 110, 111, 
-    114, 109,  97, 108,  32,  58, 
-     32,  78,  79,  82,  77,  65, 
-     76,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10,  80, 105, 
+    111, 110,   0, 241,  13,  21, 
+      3,   0,   1,  16,   0,   0, 
+     12,   0, 116, 101, 120,   0, 
+    242, 241,  13,  21,   3,   0, 
+      0,  16,   0,   0,  20,   0, 
+    110, 111, 114, 109,  97, 108, 
+      0, 243, 242, 241,  13,  21, 
+      3,   0, 117,   0,   0,   0, 
+     32,   0, 107, 110, 111,  99, 
+    104, 101, 110,   0, 242, 241, 
+     38,   0,   5,  21,   4,   0, 
+      0,   0,   2,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  36,   0,  86, 101, 
+    114, 116, 101, 120,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,   0, 242, 241,  10,   0, 
+      1,  18,   1,   0,   0,   0, 
+      3,  16,   0,   0,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      4,   0,   0,   0,  16,   0, 
+    102, 108, 111,  97, 116,  52, 
+      0, 243, 242, 241,  78,   0, 
+      3,  18,  13,  21,   3,   0, 
+      5,  16,   0,   0,   0,   0, 
+    119, 111, 114, 108, 100,  80, 
+    111, 115,   0, 241,  13,  21, 
+      3,   0,   5,  16,   0,   0, 
+     16,   0, 112, 111, 115, 105, 
+    116, 105, 111, 110,   0, 241, 
+     13,  21,   3,   0,   1,  16, 
+      0,   0,  32,   0, 116, 101, 
+    120,   0, 242, 241,  13,  21, 
+      3,   0,   0,  16,   0,   0, 
+     40,   0, 110, 111, 114, 109, 
+     97, 108,   0, 243, 242, 241, 
+     38,   0,   5,  21,   4,   0, 
+      0,   0,   6,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  52,   0,  80, 105, 
     120, 101, 108,  73, 110, 112, 
     117, 116,  84, 121, 112, 101, 
-     32, 109,  97, 105, 110,  40, 
-     32,  86, 101, 114, 116, 101, 
-    120,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  32, 105, 
-    110, 112, 117, 116,  32,  41, 
-     13,  10, 123,  13,  10,  32, 
-     32,  32,  32,  47,  47, 114, 
-    101, 116, 117, 114, 110,  32, 
-    105, 110, 112, 117, 116,  59, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  13,  10,  32, 
-     32,  32,  32,  80, 105, 120, 
-    101, 108,  73, 110, 112, 117, 
-    116,  84, 121, 112, 101,  32, 
-    111, 117, 116, 112, 117, 116, 
-     59,  13,  10,  32,  32,  32, 
-     32, 111, 117, 116, 112, 117, 
-    116,  46, 110, 111, 114, 109, 
-     97, 108,  32,  61,  32, 110, 
-    111, 114, 109,  97, 108, 105, 
-    122, 101,  40,  32, 109, 117, 
-    108,  40,  32, 105, 110, 112, 
-    117, 116,  46, 110, 111, 114, 
-    109,  97, 108,  44,  32,  40, 
-     32, 102, 108, 111,  97, 116, 
-     51, 120,  51,  32,  41,  83, 
-    107, 101, 108, 101, 116, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  77,  97, 116, 114, 
-    105, 120,  91,  32, 105, 110, 
-    112, 117, 116,  46, 107, 110, 
-    111,  99, 104, 101, 110,  32, 
-     93,  32,  41,  32,  41,  59, 
-     13,  10,  13,  10,  32,  32, 
-     32,  32,  47,  47,  32,  67, 
-    104,  97, 110, 103, 101,  32, 
-    116, 104, 101,  32, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     32, 118, 101,  99, 116, 111, 
-    114,  32, 116, 111,  32,  98, 
-    101,  32,  52,  32, 117, 110, 
-    105, 116, 115,  32, 102, 111, 
-    114,  32, 112, 114, 111, 112, 
-    101, 114,  32, 109,  97, 116, 
-    114, 105, 120,  32,  99,  97, 
-    108,  99, 117, 108,  97, 116, 
-    105, 111, 110, 115,  46,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  32,  32, 
-     32,  32, 102, 108, 111,  97, 
-    116,  52,  32, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
-     61,  32, 102, 108, 111,  97, 
-    116,  52,  40,  32, 105, 110, 
-    112, 117, 116,  46, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     46, 120,  44,  32, 105, 110, 
-    112, 117, 116,  46, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     46, 121,  44,  32, 105, 110, 
-    112, 117, 116,  46, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     46, 122,  44,  32,  49,  46, 
-    102,  32,  41,  59,  13,  10, 
-     32,  32,  32,  32,  47,  47, 
-     32,  83, 116, 111, 114, 101, 
-     32, 116, 104, 101,  32, 116, 
-    101, 120, 116, 117, 114, 101, 
-     32,  99, 111, 111, 114, 100, 
-    105, 110,  97, 116, 101, 115, 
-     32, 102, 111, 114,  32, 116, 
-    104, 101,  32, 112, 105, 120, 
-    101, 108,  32, 115, 104,  97, 
-    100, 101, 114,  46,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  13,  10, 
-     32,  32,  32,  32, 111, 117, 
-    116, 112, 117, 116,  46, 116, 
-    101, 120,  32,  61,  32, 105, 
-    110, 112, 117, 116,  46, 116, 
-    101, 120,  59,  13,  10,  13, 
-     10,  32,  32,  32,  32,  47, 
-     47,  32,  67,  97, 108,  99, 
-    117, 108,  97, 116, 101,  32, 
-    116, 104, 101,  32, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     32, 111, 102,  32, 116, 104, 
-    101,  32, 118, 101, 114, 116, 
-    101, 120,  32,  97, 103,  97, 
-    105, 110, 115, 116,  32, 116, 
-    104, 101,  32, 119, 111, 114, 
-    108, 100,  44,  32, 118, 105, 
-    101, 119,  44,  32,  97, 110, 
-    100,  32, 112, 114, 111, 106, 
-    101,  99, 116, 105, 111, 110, 
-     32, 109,  97, 116, 114, 105, 
-     99, 101, 115,  46,  32,  13, 
-     10,  32,  32,  32,  32, 111, 
-    117, 116, 112, 117, 116,  46, 
-    119, 111, 114, 108, 100,  80, 
-    111, 115,  32,  61,  32, 109, 
-    117, 108,  40,  32, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     44,  32,  83, 107, 101, 108, 
-    101, 116, 116,  46, 107, 110, 
-    111,  99, 104, 101, 110,  77, 
-     97, 116, 114, 105, 120,  91, 
-     32, 105, 110, 112, 117, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  32,  93,  32,  41, 
-     59,  13,  10,  32,  32,  32, 
-     32, 111, 117, 116, 112, 117, 
-    116,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  61, 
-     32, 109, 117, 108,  40,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 119, 111, 114, 108, 100, 
-     80, 111, 115,  44,  32,  75, 
-     97, 109, 101, 114,  97,  46, 
-    118, 105, 101, 119,  32,  41, 
-     59,  13,  10,  32,  32,  32, 
-     32, 111, 117, 116, 112, 117, 
-    116,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  61, 
-     32, 109, 117, 108,  40,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  44,  32,  75, 
-     97, 109, 101, 114,  97,  46, 
-    112, 114, 111, 106, 101,  99, 
-    116, 105, 111, 110,  32,  41, 
-     59,  13,  10,  32,  32,  32, 
-     32, 111, 117, 116, 112, 117, 
-    116,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  61, 
-     32, 112, 111, 115, 105, 116, 
-    105, 111, 110,  59,  13,  10, 
-     32,  32,  32,  47,  47,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 116, 101, 120,  46, 120, 
-     32,  61,  32,  83, 107, 101, 
-    108, 101, 116, 116,  46, 107, 
-    110, 111,  99, 104, 101, 110, 
-     77,  97, 116, 114, 105, 120, 
-     91,  32, 105, 110, 112, 117, 
-    116,  46, 107, 110, 111,  99, 
-    104, 101, 110,  32,  93,  91, 
-     32,  48,  32,  93,  91,  32, 
-     50,  32,  93,  59,  13,  10, 
-     32,  32,  32,  47,  47,  32, 
-    111, 117, 116, 112, 117, 116, 
-     46, 116, 101, 120,  46, 121, 
-     32,  61,  32,  83, 107, 101, 
-    108, 101, 116, 116,  46, 107, 
-    110, 111,  99, 104, 101, 110, 
-     77,  97, 116, 114, 105, 120, 
-     91,  32, 105, 110, 112, 117, 
-    116,  46, 107, 110, 111,  99, 
-    104, 101, 110,  32,  93,  91, 
-     32,  48,  32,  93,  91,  32, 
-     51,  32,  93,  59,  13,  10, 
-     32,  32,  32,  32, 114, 101, 
-    116, 117, 114, 110,  32, 111, 
-    117, 116, 112, 117, 116,  59, 
-     13,  10, 125,   0,   7,   0, 
-      0,   0,   0,   0,   0,   0, 
-     94,   0,   0,   0,   1,   0, 
-      0,   0,  95,   0,   0,   0, 
-      0,   0,   0,   0, 188,   0, 
+      0, 243, 242, 241,  10,   0, 
+     24,  21,   7,  16,   0,   0, 
+      1,   0,   1,   0,  14,   0, 
+      8,  16,   8,  16,   0,   0, 
+     23,   0,   1,   0,   4,  16, 
+      0,   0,  30,   0,  28,  21, 
+     64,   0,   0,   0,   4,   0, 
+      0,   0,   4,   0,   0,   0, 
+     16,   0,   0,   0,   0,  64, 
+      0, 102, 108, 111,  97, 116, 
+     52, 120,  52,   0,  42,   0, 
+      3,  18,  13,  21,   3,   0, 
+     10,  16,   0,   0,   0,   0, 
+    118, 105, 101, 119,   0, 241, 
+     13,  21,   3,   0,  10,  16, 
+      0,   0,  64,   0, 112, 114, 
+    111, 106, 101,  99, 116, 105, 
+    111, 110,   0, 243, 242, 241, 
+     34,   0,   5,  21,   2,   0, 
+      0,   0,  11,  16,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 128,   0,  75,  97, 
+    109, 101, 114,  97,  11, 202, 
+     49,   1,  56,   0,   0,   0, 
+      0,  16,   0,   0,   0,  16, 
+      0,   0,   0,   0,   0,   0, 
+     11,   0, 255, 255,   4,   0, 
+      0,   0, 255, 255,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  68,  51,  68,  83, 
-     72,  68,  82,   0, 240,   2, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  32,   0,   0,  96, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2577,6 +2451,232 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    115, 116, 101, 114,  40,  32, 
+     98,  51,  32,  41,  59,  13, 
+     10,  67, 111, 110, 115, 116, 
+     97, 110, 116,  66, 117, 102, 
+    102, 101, 114,  60,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  62,  32,  76, 105, 
+    103, 104, 116,  32,  58,  32, 
+    114, 101, 103, 105, 115, 116, 
+    101, 114,  40,  32,  98,  52, 
+     32,  41,  59,  13,  10,  13, 
+     10, 115, 116, 114, 117,  99, 
+    116,  32,  86, 101, 114, 116, 
+    101, 120,  73, 110, 112, 117, 
+    116,  84, 121, 112, 101,  13, 
+     10, 123,  13,  10,  32,  32, 
+     32,  32, 102, 108, 111,  97, 
+    116,  51,  32, 112, 111, 115, 
+    105, 116, 105, 111, 110,  32, 
+     58,  32,  80,  79,  83,  73, 
+     84,  73,  79,  78,  59,  13, 
+     10,  32,  32,  32,  32, 102, 
+    108, 111,  97, 116,  50,  32, 
+    116, 101, 120,  32,  58,  32, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,  59,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  51,  32, 110, 111, 
+    114, 109,  97, 108,  32,  58, 
+     32,  78,  79,  82,  77,  65, 
+     76,  59,  13,  10,  32,  32, 
+     32,  32, 117, 105, 110, 116, 
+     32, 107, 110, 111,  99, 104, 
+    101, 110,  32,  58,  32,  75, 
+     78,  79,  67,  72,  69,  78, 
+     95,  73,  68,  59,  13,  10, 
+    125,  59,  13,  10,  13,  10, 
+    115, 116, 114, 117,  99, 116, 
+     32,  80, 105, 120, 101, 108, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  13,  10, 123, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  52, 
+     32, 119, 111, 114, 108, 100, 
+     80, 111, 115,  32,  58,  32, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,  59,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  52,  32, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32,  58,  32,  83,  86,  95, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,  59,  13,  10,  32, 
+     32,  32,  32, 102, 108, 111, 
+     97, 116,  50,  32, 116, 101, 
+    120,  32,  58,  32,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+     59,  13,  10,  32,  32,  32, 
+     32, 102, 108, 111,  97, 116, 
+     51,  32, 110, 111, 114, 109, 
+     97, 108,  32,  58,  32,  78, 
+     79,  82,  77,  65,  76,  59, 
+     13,  10, 125,  59,  13,  10, 
+     13,  10,  80, 105, 120, 101, 
+    108,  73, 110, 112, 117, 116, 
+     84, 121, 112, 101,  32, 109, 
+     97, 105, 110,  40,  32,  86, 
+    101, 114, 116, 101, 120,  73, 
+    110, 112, 117, 116,  84, 121, 
+    112, 101,  32, 105, 110, 112, 
+    117, 116,  32,  41,  13,  10, 
+    123,  13,  10,  32,  32,  32, 
+     32,  47,  47, 114, 101, 116, 
+    117, 114, 110,  32, 105, 110, 
+    112, 117, 116,  59,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  13,  10,  32,  32,  32, 
+     32,  80, 105, 120, 101, 108, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  32, 111, 117, 
+    116, 112, 117, 116,  59,  13, 
+     10,  32,  32,  32,  32, 111, 
+    117, 116, 112, 117, 116,  46, 
+    110, 111, 114, 109,  97, 108, 
+     32,  61,  32, 110, 111, 114, 
+    109,  97, 108, 105, 122, 101, 
+     40,  32, 109, 117, 108,  40, 
+     32, 105, 110, 112, 117, 116, 
+     46, 110, 111, 114, 109,  97, 
+    108,  44,  32,  40,  32, 102, 
+    108, 111,  97, 116,  51, 120, 
+     51,  32,  41,  83, 107, 101, 
+    108, 101, 116, 116,  46, 107, 
+    110, 111,  99, 104, 101, 110, 
+     77,  97, 116, 114, 105, 120, 
+     91,  32, 105, 110, 112, 117, 
+    116,  46, 107, 110, 111,  99, 
+    104, 101, 110,  32,  93,  32, 
+     41,  32,  41,  59,  13,  10, 
+     13,  10,  32,  32,  32,  32, 
+     47,  47,  32,  67, 104,  97, 
+    110, 103, 101,  32, 116, 104, 
+    101,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32, 118, 
+    101,  99, 116, 111, 114,  32, 
+    116, 111,  32,  98, 101,  32, 
+     52,  32, 117, 110, 105, 116, 
+    115,  32, 102, 111, 114,  32, 
+    112, 114, 111, 112, 101, 114, 
+     32, 109,  97, 116, 114, 105, 
+    120,  32,  99,  97, 108,  99, 
+    117, 108,  97, 116, 105, 111, 
+    110, 115,  46,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     13,  10,  32,  32,  32,  32, 
+    102, 108, 111,  97, 116,  52, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  61,  32, 
+    102, 108, 111,  97, 116,  52, 
+     40,  32, 105, 110, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  46, 120, 
+     44,  32, 105, 110, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  46, 121, 
+     44,  32, 105, 110, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  46, 122, 
+     44,  32,  49,  46, 102,  32, 
+     41,  59,  13,  10,  32,  32, 
+     32,  32,  47,  47,  32,  83, 
+    116, 111, 114, 101,  32, 116, 
+    104, 101,  32, 116, 101, 120, 
+    116, 117, 114, 101,  32,  99, 
+    111, 111, 114, 100, 105, 110, 
+     97, 116, 101, 115,  32, 102, 
+    111, 114,  32, 116, 104, 101, 
+     32, 112, 105, 120, 101, 108, 
+     32, 115, 104,  97, 100, 101, 
+    114,  46,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  13,  10,  32,  32, 
+     32,  32, 111, 117, 116, 112, 
+    117, 116,  46, 116, 101, 120, 
+     32,  61,  32, 105, 110, 112, 
+    117, 116,  46, 116, 101, 120, 
+     59,  13,  10,  13,  10,  32, 
+     32,  32,  32,  47,  47,  32, 
+     67,  97, 108,  99, 117, 108, 
+     97, 116, 101,  32, 116, 104, 
+    101,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32, 111, 
+    102,  32, 116, 104, 101,  32, 
+    118, 101, 114, 116, 101, 120, 
+     32,  97, 103,  97, 105, 110, 
+    115, 116,  32, 116, 104, 101, 
+     32, 119, 111, 114, 108, 100, 
+     44,  32, 118, 105, 101, 119, 
+     44,  32,  97, 110, 100,  32, 
+    112, 114, 111, 106, 101,  99, 
+    116, 105, 111, 110,  32, 109, 
+     97, 116, 114, 105,  99, 101, 
+    115,  46,  32,  13,  10,  32, 
+     32,  32,  32, 111, 117, 116, 
+    112, 117, 116,  46, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
+     32,  61,  32, 109, 117, 108, 
+     40,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  44,  32, 
+     83, 107, 101, 108, 101, 116, 
+    116,  46, 107, 110, 111,  99, 
+    104, 101, 110,  77,  97, 116, 
+    114, 105, 120,  91,  32, 105, 
+    110, 112, 117, 116,  46, 107, 
+    110, 111,  99, 104, 101, 110, 
+     32,  93,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32, 111, 
+    117, 116, 112, 117, 116,  46, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  32,  61,  32, 109, 
+    117, 108,  40,  32, 111, 117, 
+    116, 112, 117, 116,  46, 119, 
+    111, 114, 108, 100,  80, 111, 
+    115,  44,  32,  75,  97, 109, 
+    101, 114,  97,  46, 118, 105, 
+    101, 119,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32, 111, 
+    117, 116, 112, 117, 116,  46, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  32,  61,  32, 109, 
+    117, 108,  40,  32, 111, 117, 
+    116, 112, 117, 116,  46, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  44,  32,  75,  97, 109, 
+    101, 114,  97,  46, 112, 114, 
+    111, 106, 101,  99, 116, 105, 
+    111, 110,  32,  41,  59,  13, 
+     10,  32,  32,  32,  32, 114, 
+    101, 116, 117, 114, 110,  32, 
+    111, 117, 116, 112, 117, 116, 
+     59,  13,  10, 125,   0,   7, 
+      0,   0,   0,   0,   0,   0, 
+      0,  94,   0,   0,   0,   1, 
+      0,   0,   0,  95,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 188,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2593,12 +2693,6 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 255, 255, 
-    255, 255,  26,   9,  47, 241, 
-     16,   0,   0,   0,  12,   2, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,  21,   0, 
-      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2610,14 +2704,16 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  32,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     68,  51,  68,  83,  72,  68, 
+     82,   0,  24,   4,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     32,   0,   0,  96,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2682,10 +2778,8 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  32,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  12,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2698,6 +2792,13 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+     26,   9,  47, 241,  24,   0, 
+      0,   0,  16,   2,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  21,   0,   0,   0, 
+      1,   0,   0,   0,  57,   0, 
+      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2709,6 +2810,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  32,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2744,6 +2846,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  16, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2764,16 +2867,8 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  18,   0,  37,  17, 
-      0,   0,   0,   0, 128,   0, 
-      0,   0,   1,   0, 109,  97, 
-    105, 110,   0,   0,  34,   0, 
-    100,  17,  16,  16,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   8,   0, 
-     83, 107, 101, 108, 101, 116, 
-    116,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2787,8 +2882,11 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  32,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  12,   0, 
+      0,   0,  24,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2849,13 +2947,10 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 255, 255, 255, 255, 
-     26,   9,  47, 241,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2868,9 +2963,21 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     18,   0,  37,  17,   0,   0, 
+      0,   0, 128,   0,   0,   0, 
+      1,   0, 109,  97, 105, 110, 
+      0,   0,  34,   0, 100,  17, 
+     15,  16,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   8,   0,  75,  97, 
+    109, 101, 114,  97,   0,   0, 
+      0,   0,  34,   0, 100,  17, 
+     21,  16,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   8,   0,  83, 107, 
+    101, 108, 101, 116, 116,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2935,68 +3042,19 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    255, 255, 255, 255, 119,   9, 
-     49,   1,   1,   0,   0,   0, 
-     13,   0,  10, 140,  14,   0, 
-    180, 156,  15,   0,  11,   0, 
-     76,   0,   0,   0,  32,   0, 
-      0,   0,  44,   0,   0,   0, 
-    108,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     22,   0,   0,   0,  25,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 240,   2, 
-      0,   0,  32,   0,   0,  96, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      2,   0,   9,   0,  36,   5, 
       0,   0,   0,   0,   0,   0, 
-     68,   2,   0,   0,   1,   0, 
-      0,   0,  56, 122,   2,   3, 
+      0,   0,  16,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 109,  97, 105, 110, 
-      0, 110, 111, 110, 101,   0, 
-      0,   0,  45, 186,  46, 241, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 240,   2,   0,   0, 
-     32,   0,   0,  96,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      2,   0,   7,   0,   0,   0, 
-      0,   0,   1,   0, 255, 255, 
-    255, 255,   0,   0,   0,   0, 
-    240,   2,   0,   0,   8,   2, 
       0,   0,   0,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0, 255, 255, 255, 255, 
-      1,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-     67,  58,  92,  85, 115, 101, 
-    114, 115,  92, 107, 111, 108, 
-    106,  97,  92,  79, 110, 101, 
-     68, 114, 105, 118, 101,  92, 
-     68, 101, 115, 107, 116, 111, 
-    112,  92,  75, 111, 108, 106, 
-     97,  45,  83, 116, 114, 111, 
-    104, 109,  45,  71,  97, 109, 
-    101, 115,  92,  65, 108, 108, 
-    103, 101, 109, 101, 105, 110, 
-     92,  70, 114,  97, 109, 101, 
-    119, 111, 114, 107,  92,  68, 
-     88,  49,  50,  86, 101, 114, 
-    116, 101, 120,  83, 104,  97, 
-    100, 101, 114,  46, 104, 108, 
-    115, 108,   0,   0,   0,   0, 
-    254, 239, 254, 239,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255, 255,  12, 
-      0, 255, 255, 255, 255, 255, 
-    255, 255, 255, 255, 255,   0, 
+    255, 255, 255, 255,  26,   9, 
+     47, 241,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3020,45 +3078,8 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 148,  46,  49,   1, 
-    137,  68,  92,  92,   1,   0, 
-      0,   0, 248, 217, 147, 230, 
-    253,  12,  60,  66, 137, 115, 
-    217, 221, 222, 101, 140, 223, 
-    138,   0,   0,   0,  47,  76, 
-    105, 110, 107,  73, 110, 102, 
-    111,   0,  47, 110,  97, 109, 
-    101, 115,   0,  47, 115, 114, 
-     99,  47, 104, 101,  97, 100, 
-    101, 114,  98, 108, 111,  99, 
-    107,   0,  47, 115, 114,  99, 
-     47, 102, 105, 108, 101, 115, 
-     47,  99,  58,  92, 117, 115, 
-    101, 114, 115,  92, 107, 111, 
-    108, 106,  97,  92, 111, 110, 
-    101, 100, 114, 105, 118, 101, 
-     92, 100, 101, 115, 107, 116, 
-    111, 112,  92, 107, 111, 108, 
-    106,  97,  45, 115, 116, 114, 
-    111, 104, 109,  45, 103,  97, 
-    109, 101, 115,  92,  97, 108, 
-    108, 103, 101, 109, 101, 105, 
-    110,  92, 102, 114,  97, 109, 
-    101, 119, 111, 114, 107,  92, 
-    100, 120,  49,  50, 118, 101, 
-    114, 116, 101, 120, 115, 104, 
-     97, 100, 101, 114,  46, 104, 
-    108, 115, 108,   0,   4,   0, 
-      0,   0,   6,   0,   0,   0, 
-      1,   0,   0,   0,  58,   0, 
       0,   0,   0,   0,   0,   0, 
-     17,   0,   0,   0,   7,   0, 
-      0,   0,  10,   0,   0,   0, 
-      6,   0,   0,   0,   0,   0, 
-      0,   0,   5,   0,   0,   0, 
-     34,   0,   0,   0,   8,   0, 
       0,   0,   0,   0,   0,   0, 
-    220,  81,  51,   1,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3105,36 +3126,6 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,  32,   0,   0,   0, 
-    230,   0,   0,   0,  52,   2, 
-      0,   0, 115,   1,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0, 216,   9,   0,   0, 
-    128,   0,   0,   0, 236,   8, 
-      0,   0, 116,   7,   0,   0, 
-     76,   0,   0,   0,   0,   0, 
-      0,   0,  40,   0,   0,   0, 
-     44,   2,   0,   0,  44,   0, 
-      0,   0,  56,   0,   0,   0, 
-      3,   0,   0,   0,  31,   0, 
-      0,   0,  20,   0,   0,   0, 
-     19,   0,   0,   0,  30,   0, 
-      0,   0,  21,   0,   0,   0, 
-     13,   0,   0,   0,   6,   0, 
-      0,   0,  22,   0,   0,   0, 
-     23,   0,   0,   0,  24,   0, 
-      0,   0,  14,   0,   0,   0, 
-      8,   0,   0,   0,   9,   0, 
-      0,   0,  10,   0,   0,   0, 
-     11,   0,   0,   0,  12,   0, 
-      0,   0,  15,   0,   0,   0, 
-     16,   0,   0,   0,  17,   0, 
-      0,   0,  18,   0,   0,   0, 
-      7,   0,   0,   0,  25,   0, 
-      0,   0,  26,   0,   0,   0, 
-     27,   0,   0,   0,  29,   0, 
-      0,   0,  28,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3142,13 +3133,69 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255, 119,   9,  49,   1, 
+      1,   0,   0,   0,  13,   0, 
+     10, 140,  14,   0, 180, 156, 
+     15,   0,  11,   0,  76,   0, 
+      0,   0,  32,   0,   0,   0, 
+     44,   0,   0,   0, 108,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+      0,   0,  25,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  24,   4,   0,   0, 
+     32,   0,   0,  96,   0,   0, 
+    146, 240,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      9,   0, 132,   5,   0,   0, 
+      0,   0,   0,   0, 236,   2, 
+      0,   0,   1,   0,   0,   0, 
+     88, 121,  21,   3,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    109,  97, 105, 110,   0, 110, 
+    111, 110, 101,   0,   0,   0, 
+     45, 186,  46, 241,   1,   0, 
       0,   0,   0,   0,   0,   0, 
+     24,   4,   0,   0,  32,   0, 
+      0,  96,   0,   0, 146, 240, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   2,   0, 
+      7,   0,   0,   0,   0,   0, 
+      1,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,  24,   4, 
+      0,   0,   8,   2,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+    255, 255, 255, 255,   1,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,  67,  58, 
+     92,  85, 115, 101, 114, 115, 
+     92, 107, 111, 108, 106,  97, 
+     92,  79, 110, 101,  68, 114, 
+    105, 118, 101,  92,  68, 101, 
+    115, 107, 116, 111, 112,  92, 
+     75, 111, 108, 106,  97,  45, 
+     83, 116, 114, 111, 104, 109, 
+     45,  71,  97, 109, 101, 115, 
+     92,  65, 108, 108, 103, 101, 
+    109, 101, 105, 110,  92,  70, 
+    114,  97, 109, 101, 119, 111, 
+    114, 107,  92,  68,  88,  49, 
+     50,  86, 101, 114, 116, 101, 
+    120,  83, 104,  97, 100, 101, 
+    114,  46, 104, 108, 115, 108, 
+      0,   0,   0,   0, 254, 239, 
+    254, 239,   1,   0,   0,   0, 
+      1,   0,   0,   0,   0,   1, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 255, 
+    255, 255, 255, 255, 255, 255, 
+    255, 255, 255,  12,   0, 255, 
+    255, 255, 255, 255, 255, 255, 
+    255, 255, 255,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3172,7 +3219,45 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    148,  46,  49,   1,  93,  77, 
+     92,  92,   1,   0,   0,   0, 
+    237, 145,  12,  54,  31, 175, 
+     89,  67, 175, 250, 125,  30, 
+     25,   2, 146, 240, 138,   0, 
+      0,   0,  47,  76, 105, 110, 
+    107,  73, 110, 102, 111,   0, 
+     47, 110,  97, 109, 101, 115, 
+      0,  47, 115, 114,  99,  47, 
+    104, 101,  97, 100, 101, 114, 
+     98, 108, 111,  99, 107,   0, 
+     47, 115, 114,  99,  47, 102, 
+    105, 108, 101, 115,  47,  99, 
+     58,  92, 117, 115, 101, 114, 
+    115,  92, 107, 111, 108, 106, 
+     97,  92, 111, 110, 101, 100, 
+    114, 105, 118, 101,  92, 100, 
+    101, 115, 107, 116, 111, 112, 
+     92, 107, 111, 108, 106,  97, 
+     45, 115, 116, 114, 111, 104, 
+    109,  45, 103,  97, 109, 101, 
+    115,  92,  97, 108, 108, 103, 
+    101, 109, 101, 105, 110,  92, 
+    102, 114,  97, 109, 101, 119, 
+    111, 114, 107,  92, 100, 120, 
+     49,  50, 118, 101, 114, 116, 
+    101, 120, 115, 104,  97, 100, 
+    101, 114,  46, 104, 108, 115, 
+    108,   0,   4,   0,   0,   0, 
+      6,   0,   0,   0,   1,   0, 
+      0,   0,  58,   0,   0,   0, 
+      0,   0,   0,   0,  17,   0, 
+      0,   0,   7,   0,   0,   0, 
+     10,   0,   0,   0,   6,   0, 
       0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  34,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 220,  81, 
+     51,   1,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3191,7 +3276,6 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3220,8 +3304,36 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   0, 
+     32,   0,   0,   0, 230,   0, 
+      0,   0, 172,   2,   0,   0, 
+    115,   1,   0,   0,  56,   0, 
       0,   0,   0,   0,   0,   0, 
+     39,   9,   0,   0, 128,   0, 
+      0,   0,  59,   8,   0,   0, 
+    128,   8,   0,   0,  96,   0, 
       0,   0,   0,   0,   0,   0, 
+     40,   0,   0,   0,  56,   2, 
+      0,   0,  44,   0,   0,   0, 
+     92,   0,   0,   0,   3,   0, 
+      0,   0,  32,   0,   0,   0, 
+     21,   0,   0,   0,  20,   0, 
+      0,   0,  31,   0,   0,   0, 
+     22,   0,   0,   0,  13,   0, 
+      0,   0,   6,   0,   0,   0, 
+     23,   0,   0,   0,  24,   0, 
+      0,   0,  25,   0,   0,   0, 
+     14,   0,   0,   0,   8,   0, 
+      0,   0,   9,   0,   0,   0, 
+     10,   0,   0,   0,  11,   0, 
+      0,   0,  12,   0,   0,   0, 
+     15,   0,   0,   0,  16,   0, 
+      0,   0,  17,   0,   0,   0, 
+     18,   0,   0,   0,  19,   0, 
+      0,   0,   7,   0,   0,   0, 
+     26,   0,   0,   0,  27,   0, 
+      0,   0,  28,   0,   0,   0, 
+     30,   0,   0,   0,  29,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3277,6 +3389,7 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  33,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3361,5 +3474,5 @@ const BYTE DX12VertexShaderBytes[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0
+      0,   0,   0,   0,   0,   0
 };

+ 0 - 3
DX12VertexShader.hlsl

@@ -72,8 +72,5 @@ PixelInputType main( VertexInputType input )
     output.worldPos = mul( position, Skelett.knochenMatrix[ input.knochen ] );
     output.position = mul( output.worldPos, Kamera.view );
     output.position = mul( output.position, Kamera.projection );
-    output.position = position;
-   // output.tex.x = Skelett.knochenMatrix[ input.knochen ][ 0 ][ 2 ];
-   // output.tex.y = Skelett.knochenMatrix[ input.knochen ][ 0 ][ 3 ];
     return output;
 }