<blockquote id="g5mpq"><rt id="g5mpq"></rt></blockquote>

    1. <pre id="g5mpq"></pre>
      <i id="g5mpq"><legend id="g5mpq"></legend></i>
      浪漫女家教主演:黛比地区:台湾 ,日本jiZz,爸爸的种子在线观看,特别的酒店2免费,哇嘎在线,荒野渔夫高清免费观看,新有菜在线免费观看,哇嘎美国
      網易首頁 > 網易號 > 正文 申請入駐

      Unity預計算輻照度全局光照PRTGI實踐與拓展(上)

      0
      分享至


      【USparkle專欄】如果你深懷絕技,愛“搞點研究”,樂于分享也博采眾長,我們期待你的加入,讓智慧的火花碰撞交織,讓知識的傳遞生生不息!

      這是侑虎科技第1983篇文章,感謝作者AkiKurisu供稿。歡迎轉發分享,未經作者授權請勿轉載。如果您有任何獨到的見解或者發現也歡迎聯系我們,一起探討。(QQ群:793972859)

      作者主頁:

      https://www.zhihu.com/people/akikurisu

      在知乎平臺上,最早由網易根據育碧在GDC上分享的《Global Illumination in Tom Clancy's The Division》提出了實時PRTGI(預計算輻射度全局光照)技術的實現思路。隨后,AKG4e3提供了示例工程,其內容涵蓋從理論到實踐的PRTGI實現過程(參見《預計算輻照度全局光照(PRTGI)從理論到實戰》)。方木君則在《Unity 移動端可用實時GI方案細節補充》中,對局部光源(Local Light)的重光照(Relight)及優化方案進行了擴展。

      本文內容基于上述項目的Fork版本,在學習過程中進行了進一步完善與擴展。部分修改已記錄于本人的Fork倉庫(AkiKurisu/UnityPRTGI)中。但由于后續開發需要在Forward渲染路徑下進行,相關修改已集成至其他項目,該Fork版本已停止維護。

      后續還將結合其他在URP下實現的相關Feature進行整理與開源,敬請期待。


      流程概述

      先總結一下《預計算輻照度全局光照(PRTGI)從理論到實戰》的項目中的流程,方便后續對比:

      1. 離線烘焙生成Surfel(總計512*Probe)

      2. 按Probe順序存儲Surfel

      3. 運行時Probe拿到對應的512個Surfel

      4. Relight所有Probe

      烘焙提速

      原作者使用Camera.RenderToCubemap來抓取Cubemap,這個函數在GPU上的開銷實際不大,手動渲染每一個面的成本并沒有減少,但可以考慮改成使用另一個拓展方法,來在構建RenderList的時候忽略非靜態物體:

      public static bool RenderToCubemap(
      this Camera camera,
      Texture target,
      int faceMask,
      StaticEditorFlags culledFlags);

      通過不同場景的性能測試,烘焙這里更拖延速度的是CPU側設置Material Shader的開銷,由于需要分別設置Shader來采樣Position、Albedo、Normal數據,實際開銷約等于

      次Shader設置,時間復雜度為

      所以優化方式就是使用一個Shader,烘焙時只需要設置一次,每個Probe烘焙時通過切換Keyword來抓取所需數據。

      #pragma multi_compile _ _GBUFFER_WORLDPOS _GBUFFER_NORMAL

      float4 frag (v2f i) : SV_Target
      {
      #if defined(_GBUFFER_WORLDPOS)
      // Output world position
      return float4(i.worldPos, 1.0);
      #elif defined(_GBUFFER_NORMAL)
      // Output world space normal
      return float4(i.normal, 1.0);
      #else
      // Default output albedo
      half4 albedo = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv) * _Color;
      return albedo;
      #endif
      }
      private static void SetGlobalGBufferCaptureMode(GBufferCaptureMode captureMode)
      {
      // Enable the specific keyword based on capture mode
      switch (captureMode)
      {
      case GBufferCaptureMode.WorldPosition:
      Shader.EnableKeyword("_GBUFFER_WORLDPOS");
      Shader.DisableKeyword("_GBUFFER_NORMAL");
      break;
      case GBufferCaptureMode.Normal:
      Shader.DisableKeyword("_GBUFFER_WORLDPOS");
      Shader.EnableKeyword("_GBUFFER_NORMAL");
      break;
      case GBufferCaptureMode.Albedo:
      Shader.DisableKeyword("_GBUFFER_WORLDPOS");
      Shader.DisableKeyword("_GBUFFER_NORMAL");
      break;
      }
      }

      // 對于每個Probe執行下面的代碼
      SetGlobalGBufferCaptureMode(GBufferCaptureMode.WorldPosition);
      camera.RenderToCubemap(_worldPosRT, -1, StaticEditorFlags.ContributeGI);
      SetGlobalGBufferCaptureMode(GBufferCaptureMode.Normal);
      camera.RenderToCubemap(_normalRT, -1, StaticEditorFlags.ContributeGI);
      SetGlobalGBufferCaptureMode(GBufferCaptureMode.Albedo);
      camera.RenderToCubemap(_albedoRT, -1, StaticEditorFlags.ContributeGI);

      如此一來時間復雜度為O(1),大大提升了復雜場景下的烘焙速度。

      球諧優化

      由于Unity 2023、Unity 6相關版本未在國內普及,其新增的APV(Adaptive Probe Volume)系統,國內相關技術討論較少。然而,作為Unity官方新推出的GI方案,APV有大量值得學習的優化技巧。

      PRT(Precomputed Radiance Transfer)和APV實際上師出同門,共通點是都不需要UV2、比LightMap方便,需要烘焙,僅支持靜態場景,兩者的核心差異在于:

      • APV:每個Probe離線存儲球諧系數,不支持動態光照(如TOD系統),但因為存儲了SkyVisibility,可以實現動態的天光遮蔽。

      • PRT:存儲Radiance數據和SkyVisibility,支持動態光照。

      PRT缺點也很明顯,因為要存儲的數據更多了,使得實踐上Probe放置的密度小于APV的密度,這使得高頻的Diffuse信息會被忽略,所以更適合(半)室外。

      盡管應用場景不同,APV作為Unity官方實現,其優化策略具有重要的參考價值。

      原項目SH.hlsl中的球諧函數實現使用大量條件判斷:

      // 老版本 - 大量分支判斷
      float SH(in int l, in int m, in float3 s)
      {
      if (l == 0) return kSHBasis0;
      if (l == 1 && m == -1) return kSHBasis1 * y;
      if (l == 1 && m == 0) return kSHBasis1 * z;
      // ... 更多條件判斷
      return0.0;
      }


      // 在循環中重復調用
      for (int shIndex = 0; shIndex < 9; shIndex++)
      {
      contribution = SHProject(shIndex, dir) * totalRadiance * 4.0 * PI / SampleCount;
      // 每次調用都要執行完整的條件判斷邏輯
      }

      這種GPU上的條件分支會導致Warp Divergence,且影響性能。

      下面是參考Unity的SphericalHarmonics.hlsl的實現方式,使用向量化方式來優化。

      對照用的公式,數學不好不會推也沒事:


      向量化版本:

      // 新版本 - 向量化計算
      void EvaluateSH9(in float3 dir, out float sh[9])
      {
      float x = dir.x;
      float y = dir.y;
      float z = dir.z;

      // L0 (constant)
      sh[0] = 1.0; // Constant term (will be multiplied by kSHBasisCoef[0])

      // L1 (linear)
      sh[1] = y; // Y_1_-1
      sh[2] = z; // Y_1_0
      sh[3] = x; // Y_1_1

      // L2 (quadratic)
      sh[4] = x * y; // Y_2_-2
      sh[5] = y * z; // Y_2_-1
      sh[6] = 3.0 * z * z - 1.0; // Y_2_0 (Equals 2.0 * z * z - x * x - y * y)
      sh[7] = x * z; // Y_2_1
      sh[8] = x * x - y * y; // Y_2_2

      // Apply kSHBasisCoef to get the final SH basis values
      [unroll]
      for (int i = 0; i < 9; ++i)
      {
      sh[i] = sh[i] * kSHBasisCoef[i];
      }
      }

      // 優化后的使用方式
      float shCoeffs[9];
      EvaluateSH9(dir, shCoeffs); // 一次計算所有系數

      [unroll]
      for (int shIndex = 0; shIndex < 9; shIndex++)
      {
      contribution = shCoeffs[shIndex] * totalRadiance * 4.0 * PI / SampleCount;
      // 直接數組訪問,無分支判斷
      }

      這種方式可以連續訪問,性能更好。

      除了向量化外,APV系統中一個巧妙的優化是在球諧系數上預除PI,減少Radiance轉為Irradiance時的ALU開銷:

      // Clamped cosine convolution coefs (pre-divided by PI)
      // See https://seblagarde.wordpress.com/2012/01/08/pi-or-not-to-pi-in-game-lighting-equation/
      #define kClampedCosine0 1.0f
      #define kClampedCosine1 2.0f / 3.0f
      #define kClampedCosine2 1.0f / 4.0f


      static const float kClampedCosineCoefs[] = {
      kClampedCosine0, kClampedCosine1, kClampedCosine1, kClampedCosine1,
      kClampedCosine2, kClampedCosine2, kClampedCosine2, kClampedCosine2, kClampedCosine2
      };

      這個優化基于Sébastien Lagarde的經典文章《Pi or not to Pi in game lighting equation》。什么時候改乘PI也是實時渲染中一個比較經典的問題,例如URP中的Lambert BRDF就沒有除PI,目的是簡化燈光流程,讓燈光顏色調整時所見即所得。

      3D紋理

      原作者存儲球諧是將27位float存在一個巨大的ComputeBuffer中,這導致需要使用定點數Encode并且使用較多的原子操作。

      這個方式弊病很多,一方面沒有利用GPU的優勢(對3D紋理的硬件優化),另一方面原子操作導致寫入前需要Clear,需要使用雙緩沖來維護,內存翻倍。

      // 使用定點數存儲小數, 因為 compute shader 的 InterlockedAdd 不支持 float
      // array size: 3x9=27
      RWStructuredBuffer _coefficientSH9;


      // storage to volume
      if(_indexInProbeVolume >= 0)
      {
      constint coefficientByteSize = 27;
      int offset = _indexInProbeVolume * coefficientByteSize;
      for(int i = 0; i < 9; i++)
      {
      InterlockedAdd(_coefficientVoxel[offset + i * 3 + 0], EncodeFloatToInt(c[i].x));
      InterlockedAdd(_coefficientVoxel[offset + i * 3 + 1], EncodeFloatToInt(c[i].y));
      InterlockedAdd(_coefficientVoxel[offset + i * 3 + 2], EncodeFloatToInt(c[i].z));
      }
      }

      我將其修改為probeSizeX,probeSizeZ,probeSizeY*9大小,格式為RGB111110Float的3D紋理。雖然這樣還是會有一定的CacheMiss,但相比使用ComputeBuffer來存儲球諧系數性能更好,并且可以方便在FrameDebugger中查看。

      // Layout: [probeSizeX, probeSizeZ, probeSizeY * 9]
      RWTexture3D _coefficientVoxel3D;


      if (_indexInProbeVolume >= 0)
      {
      // Write to 3D texture
      int3 texCoord = ProbeIndexToTexture3DCoord(_indexInProbeVolume, index, _coefficientVoxelSize);
      _coefficientVoxel3D[texCoord] = groupCoefficients[0];
      }


      需要注意Relight時為了計算MultiBounce我們依然需要訪問上一幀的球諧系數,這使得在一個線程中可能存在同時訪問和寫入的可能,所以只是將ComputeBuffer修改為3D紋理后,還不能去除雙緩沖,還需要之后的幾步優化。

      并行規約

      由于改成3D紋理,我們需要解決原來作者沒處理的球諧系數求和問題,這本質是GPU中的多線程求和問題即并行規約問題。


      無需掌握底層原理,英偉達直接提供了最佳實踐:

      《Optimizing Parallel Reduction in CUDA》

      https://developer.download.nvidia.cn/assets/cuda/files/reduction.pdf

      在CS中實現起來非常簡單,我們有512個Thread,剛好是2次冪,因此可以直接使用PPT中的方法3。


      // Parallel reduction
      for (uint stride = 256; stride > 0; stride >>= 1)
      {
      if (groupIndex < stride)
      {
      groupCoefficients[groupIndex] += groupCoefficients[groupIndex + stride];
      }


      GroupMemoryBarrierWithGroupSync();
      }

      由于利用了多線程能力,帶寬換時間,性能大概提升2倍,還有兩個進階版本可以更有效利用帶寬,但代碼實在有些繁瑣,用第三種基本足夠了。


      但需要注意這里如果直接存所有二階球諧系數(27個float)到LDS后再并行規約,可能會導致超出閾值或使用了過多寄存器造成性能下降,為了消除該問題,我將二階球諧的9個維度放在循環里分別進行規約。

      UNITY_UNROLL
      for (int shIndex = 0; shIndex < 9; shIndex++)
      {
      float3 contribution = ...;

      groupCoefficients[groupIndex] = contribution;
      GroupMemoryBarrierWithGroupSync();

      // Parallel reduction for non-power-of-2 size
      for (uint stride = ThreadCount / 2; stride > 0; stride >>= 1)
      {
      if (groupIndex < stride)
      {
      groupCoefficients[groupIndex] += groupCoefficients[groupIndex + stride];
      }
      GroupMemoryBarrierWithGroupSync();
      }

      // Write results
      if (groupIndex == 0 && _indexInProbeVolume >= 0)
      {
      uint3 texCoord = ProbeIndexToTexture3DCoord(_indexInProbeVolume, shIndex, _coefficientVoxelSize);
      _coefficientVoxel3D[texCoord] = groupCoefficients[0];
      }

      GroupMemoryBarrierWithGroupSync();
      }

      但這樣明顯會增多同步次數,后續我們會再次來優化這部分。

      分幀Relight

      由于現有方法是需要每幀遍歷所有Probe進行Relight,這導致場景越大或Probe密度越大,Relight成本越高,時間復雜度為$O(N_\text{probes})$。為了性能可控,我們可以利用Diffuse GI低頻的特點,將Relight的步驟分攤到多幀。

      void DoRelight(CommandBuffer cmd, PRTProbeVolume volume)
      {
      volume.SwapCoefficientVoxels();

      // 如果是多幀Relight,則不需要清空體素
      if (!multiFrameRelight)
      volume.ClearCoefficientVoxel(cmd);

      // May only update a subset of probes each frame
      using (ListPool .Get( outvar probesToUpdate))
      {
      volume.GetProbesToUpdate(probesToUpdate);
      foreach (var probe in probesToUpdate)
      {
      probe.ReLight(cmd, _relightCS, _relightKernel);
      }
      }

      // Advance volume render frame
      volume.AdvanceRenderFrame();
      }

      // 滾動獲取當前幀要更新的Probe
      public void GetProbesToUpdate(List probes )
      {
      for (int i = _currentProbeUpdateIndex; i < _currentProbeUpdateIndex + probesToUpdateCount; i++)
      {
      probes.Add(Probes[i]);
      }
      }

      public void AdvanceRenderFrame()
      {
      // Advance the update index for next frame
      _currentProbeUpdateIndex = (_currentProbeUpdateIndex + probesToUpdateCount) % Probes.Length;
      }


      回到文章《Global Illumination in Tom Clancy's The Division》的方案,這并不是使用簡單的輪詢法(Round Robin),而是將一組組Probe劃分為一個個Sector,每幀Relight兩組,并且對于相機周圍的Probe再額外Relight一組。

      這里是否要劃分Sector筆者覺得不太重要,但Relight玩家相機附近的Probe確實是有必要的,我們可以修改為每幀計算相機附近的Probe,添加到上面的GetProbesToUpdate中。

      /// 
      /// Update local probe indices based on camera position
      ///
      private void UpdateLocalProbeIndices()
      {
      if (!_mainCamera || Probes == null || Probes.Length == 0)
      return;

      Vector3 cameraPos = _mainCamera.transform.position;

      // Only recalculate if camera has moved significantly
      if (Vector3.Distance(cameraPos, _lastCameraPosition) < CameraMovementThreshold)
      return;

      _lastCameraPosition = cameraPos;
      _localProbeIndices.Clear();

      // Convert camera position to probe grid coordinates for more efficient distance calculation
      Vector3 gridPos = (cameraPos - transform.position) / probeGridSize;

      // Calculate distances from camera to all probes using grid coordinates
      using (ListPool<(int index, float distance)>.Get(outvar probeDistances))
      {
      for (int i = 0; i < Probes.Length; i++)
      {
      if (Probes[i])
      {
      // Calculate probe position in grid coordinates
      Vector3 probeGridPos = (Probes[i].transform.position - transform.position) / probeGridSize;

      // Use squared distance for efficiency (avoiding sqrt)
      float sqrDistance = (gridPos - probeGridPos).sqrMagnitude;
      probeDistances.Add((i, sqrDistance));
      }
      }

      // Sort by distance and take the closest ones
      probeDistances.Sort(static (a, b) => a.distance.CompareTo(b.distance));

      int count = Mathf.Min(localProbeCount, probeDistances.Count);
      for (int i = 0; i < count; i++)
      {
      _localProbeIndices.Add(probeDistances[i].index);
      }
      }
      }

      Forward+多光源適配

      理論上只要添加_FOWARD_PLUS宏后就可以使用了,但從URP 14后會遇到一個離譜的編譯問題。

      Can't find included file `Packages/com.unity.render-pipelines.ps5/ShaderLibrary/API/FoveatedRendering_PSSL.hlsl`

      CS的編譯似乎無視了SHADER_API_PS5宏,導致找不到平臺文件報錯,問題是散修開發者也沒PS5平臺的引擎拓展。

      國內有開發者咨詢了Unity官方,得到的AI答復是:URP14.0.7及之后的版本下計算著色器庫文件引用問題。

      https://developer.unity.cn/ask/question/66dfb568edbc2a001cb709d3

      因此在不修改源碼的情況下,最佳的解決方案就是本地創建一個空的com.unity.render-pipelines.ps5庫,里面寫一個空的FoveatedRendering_PSSL.hlsl。

      然后我們在LightLoop前加上下面的代碼,初始化Cluster需要拿到Surfel的屏幕坐標和世界坐標:

      #if _FORWARD_PLUS
      float2 uv = ComputeNormalizedDeviceCoordinates(surfel.position, UNITY_MATRIX_VP);
      InputData inputData = (InputData)0;
      inputData.normalizedScreenSpaceUV = uv;
      inputData.positionWS = surfel.position;
      #endif
      uint pixelLightCount = GetAdditionalLightsCount();
      LIGHT_LOOP_BEGIN(pixelLightCount) // 這里會創建Cluster
      // Light Loop...
      LIGHT_LOOP_END


      體積霧適配

      《Global Illumination in Tom Clancy's The Division》文章分享中也談到了體積霧可以在Raymarch時同時采樣PRT Volume,筆者這里使用了一個開源的體積光方案:

      CristianQiu/Unity-URP-Volumetric-Light

      https://github.com/CristianQiu/Unity-URP-Volumetric-Light

      把其中采樣APV的貢獻改成采樣PRT Volume后,就實現了類似的效果:


      陰影緩存


      《Global Illumination in Tom Clancy's The Division》和《 實時PRTGI技術與實現 》文章中都提到不在視錐內的物體會被CSM剔除,因此對于離屏物體,我們需要添加一個Shadow Cache來保留最近一次有效的主光源陰影信息。

      // mainlight shadow
      float4 shadowCoord = TransformWorldToShadowCoord(surfel.position);
      if (!BEYOND_SHADOW_FAR(shadowCoord))
      {
      // Shadow is valid, sample and update cache
      atten = SampleShadowmap(
      TEXTURE2D_ARGS(_MainLightShadowmapTexture, sampler_MainLightShadowmapTexture),
      shadowCoord,
      GetMainLightShadowSamplingData(),
      GetMainLightShadowParams(),
      false
      );


      // Update shadow cache with new valid result
      _shadowCache[surfelGlobalIndex] = atten;
      }
      else
      {
      // Shadow is invalid, use cached result if available
      atten = _shadowCache[surfelGlobalIndex];
      }

      Surfel合并Brick

      我們回過頭看下現在的數據存儲,對于每個Probe我們都存放了其512個Surfel數據,如果兩個Probe挨著很近,那很大概率Surfel的數據是比較重復的,對于離得很近、方向基本一致的Surfel,我們實際可以清理一部分冗余數據。


      《Global Illumination in Tom Clancy's The Division》文章中的全境封鎖給予了一個方案,即根據Grid大小(4×4×4)和Surfel的法線的主方向來聚集為Brick。同一個Brick中的Surfel數據就可以提取一下特征(比如對于坐標相同、法線方向相近的Surfel進行合并)。

      下面是數據結構:

      /// 
      /// Represents the indices of a Surfel
      ///
      [Serializable]
      publicstruct SurfelIndices
      {
      publicint start;

      publicint end;
      }

      ///
      /// Represents a 4x4x4 brick containing merged Surfels
      ///
      publicclassSurfelBrick
      {
      publicreadonly List SurfelIndices = new();

      publicreadonly HashSet ReferencedProbes = new();
      }

      SurfelBrick即為烘焙時的Brick存儲結構,由于Surfel不再唯一對應一個Probe,我們還需要在烘焙期間存儲Probe的引用關系,直到存儲數據時再扁平化為索引。

      從實現細節上來講,對于每個Probe完成Sample后,需要將Surfel注冊到一個具有HashGrid結構的BrickManager中(根據Surfel世界坐標和主方向計算Hash),BrickPool找到對應位置的SurfelBrick將其添加或合并,并記錄引用的Probe。

      其次因為Surfel被合并為Brick,Probe不再直接引用其烘焙階段命中的512個Surfel,在序列化前我們需要額外的數據來存儲Relight時Probe所需的數據。 參考文章《Global Illumination in Tom Clancy's The Division》,下面是一個示例:

      /// 
      /// Factor structure: contains Brick index and the contribution weight of that Brick to the Probe
      ///
      [Serializable]
      publicstruct BrickFactor
      {
      publicint brickIndex;

      publicfloat weight;
      }

      ///
      /// Factor range: each Probe stores the range of Factors it uses
      ///
      [Serializable]
      publicstruct FactorIndices
      {
      publicint start;

      publicint count;
      }

      這里BrickFactor對應了一個Brick對于一個Probe的貢獻權重,可以離線通過Brick中所有Surfel的平均法線計算,空間換時間。FactorIndices即是一個Probe所對應的Factor范圍。

      最后我們根據Probe順序將FactorIndices、BrickFactor、SurfelIndices和Surfel進行排序,盡可能保證數據訪問時的連續性。

      結合上面的數據結構,下面是從烘焙到使用的新流程:

      1. Probe發射512個射線采樣生成Surfel

      2. Surfel合并聚集到Brick

      3. Brick平均法線計算Probe貢獻系數,存到Factor中

      4. 存儲Factor、Brick、以及合并后的全部Surfel

      5. 運行時Volume拿到全部Surfel、Brick、Factor數據,提交GPU

      6. Relight所有Brick

      7. Relight所有Factor

      為了驗證數據正確,這里優先編寫一下Brick的Gizmos視圖,方便在編輯器看到各個Brick對選中Probe的貢獻值以及Brick中各個Surfel方向是否朝向一致。


      我們對比下性能,因為Surfel數據大量進行了合并,Relight Brick開銷非常小,而Probe在Relight時采樣的Brick數量也遠遠小于原先的512個,因此開銷也有所下降。但需要注意這個合并實際會讓GI精度下降,所以對于室內部分,我認為肯定是需要結合SSGI使用的。

      注意這里開啟了Multi Frame Relight來控制每幀更新的Probe數量(這里為1幀15個Probe)。



      在我們完成Surfel和Probe的Relight分離后,還可以額外獲得兩個免費的優化效果:

      1. 由于不再存在3D紋理的寫入和讀取沖突,Relight不再需要歷史幀緩沖,可以減少一張3D紋理使用。

      2. 由于ProbeRelight所需的Brick變少了(從512減到小于256),足夠我們將二階球諧27個float直接寫入LDS中。現在的并行規約代碼如下:

      #define ThreadCount 256 // Max Brick Num
      groupshared float3 groupCoefficients[9][ThreadCount];

      // Compute all SH coefficients at once using vectorized approach
      float shCoeffs[9];
      EvaluateSH9(dir, shCoeffs);

      float weight = 4.0 * PI / sampleCount;

      // Process each SH coefficient and store to LDS
      UNITY_UNROLL
      for (int shIndex = 0; shIndex < 9; shIndex++)
      {
      float3 contribution = shCoeffs[shIndex] * totalRadiance * weight;

      groupCoefficients[shIndex][groupIndex] = contribution;
      }
      GroupMemoryBarrierWithGroupSync();

      // Parallel reduction for non-power-of-2 size
      for (uint stride = ThreadCount / 2; stride > 0; stride >>= 1)
      {
      if (groupIndex < stride)
      {
      UNITY_UNROLL
      for (int shIndex = 0; shIndex < 9; shIndex++)
      {
      groupCoefficients[shIndex][groupIndex] += groupCoefficients[shIndex][groupIndex + stride];
      }
      }
      GroupMemoryBarrierWithGroupSync();
      }

      那么上半部分就是這些了,下半部分我們繼續優化和拓展PRTGI。

      參考文章

      [1] 實時PRTGI技術與實現

      https://zhuanlan.zhihu.com/p/541137978

      [2] 預計算輻照度全局光照(PRTGI)從理論到實戰

      https://zhuanlan.zhihu.com/p/571673961

      [3] Unity移動端可用實時GI方案細節補充

      https://zhuanlan.zhihu.com/p/654050347

      [4] Global Illumination in Tom Clancy's The Division

      [5] Pi or not to Pi in game lighting equation

      https://seblagarde.wordpress.com/2012/01/08/pi-or-not-to-pi-in-game-lighting-equation/

      文末,再次感謝AkiKurisu的分享, 作者主頁:https://www.zhihu.com/people/akikurisu, 如果您有任何獨到的見解或者發現也歡迎聯系我們,一起探討。(QQ群: 793972859 )。


      近期精彩回顧



      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      朱元璋要斬76歲的李善長,李善長問道:臣都快80歲了,還能活幾年

      朱元璋要斬76歲的李善長,李善長問道:臣都快80歲了,還能活幾年

      小豫講故事
      2026-07-19 06:00:12
      東莞一知名景區停業,現場已封閉

      東莞一知名景區停業,現場已封閉

      南方都市報
      2026-07-19 11:09:10
      嫁富豪隱婚真相大白,張小斐背后男人曝光,難怪40歲能搭檔周星馳

      嫁富豪隱婚真相大白,張小斐背后男人曝光,難怪40歲能搭檔周星馳

      胡一舸南游y
      2026-07-18 18:25:02
      看了英格蘭6:4法國隊的表現,終于明白了:阿根廷憑啥能進決賽!

      看了英格蘭6:4法國隊的表現,終于明白了:阿根廷憑啥能進決賽!

      神牛
      2026-07-19 13:40:31
      靠“炒冷飯”沖30億!《功夫女足》越罵越火,背后24家資本贏麻了

      靠“炒冷飯”沖30億!《功夫女足》越罵越火,背后24家資本贏麻了

      金融八卦女
      2026-07-17 13:56:41
      三分13投1中!還能打NBA嗎...

      三分13投1中!還能打NBA嗎...

      左右為籃
      2026-07-19 12:07:01
      婁山關戰斗后,孔憲權重傷被迫流落貴州,組織塞下300大洋把他托付地主,15年后,他從報紙上認出了老首長,一封信讓讓楊勇當場摔了茶杯

      婁山關戰斗后,孔憲權重傷被迫流落貴州,組織塞下300大洋把他托付地主,15年后,他從報紙上認出了老首長,一封信讓讓楊勇當場摔了茶杯

      磊子講史
      2026-07-18 18:42:24
      廣汽埃安就“部分搭載中創新航177Ah磷酸鐵鋰電池出現故障問題”致歉:該部分車型質保期延長至8年30萬公里,維修超5天車主可獲補貼

      廣汽埃安就“部分搭載中創新航177Ah磷酸鐵鋰電池出現故障問題”致歉:該部分車型質保期延長至8年30萬公里,維修超5天車主可獲補貼

      中國能源網
      2026-07-19 01:17:10
      “黃總請去包廂”后續:官方通報,真相曝光讓人意外,服務員是真無腦

      “黃總請去包廂”后續:官方通報,真相曝光讓人意外,服務員是真無腦

      小鋭有話說
      2026-07-19 08:48:37
      塵埃落定!長沙占車位女干部完整后續,試用期副處長前途徹底斷送

      塵埃落定!長沙占車位女干部完整后續,試用期副處長前途徹底斷送

      天天熱點見聞
      2026-07-18 16:42:23
      從上海的熱鬧,看世界的前途

      從上海的熱鬧,看世界的前途

      新民周刊
      2026-07-18 09:12:49
      趙勇沒想到,澳門總決賽前女排傳來3大喜訊,備戰美國底氣大增

      趙勇沒想到,澳門總決賽前女排傳來3大喜訊,備戰美國底氣大增

      老黯談娛
      2026-07-19 06:08:22
      2032毀滅式峰值:1193萬大學生成絕響,高等教育迎來斷崖時刻

      2032毀滅式峰值:1193萬大學生成絕響,高等教育迎來斷崖時刻

      每天分享天下事
      2026-07-18 14:17:42
      朝鮮未經授權就轉播世界杯比賽,國際足聯為什么不管呢?

      朝鮮未經授權就轉播世界杯比賽,國際足聯為什么不管呢?

      三年的老核桃
      2026-07-18 23:30:03
      中一簽賺2萬!科創板史上最大IPO來了,下一步劍指全球第三?

      中一簽賺2萬!科創板史上最大IPO來了,下一步劍指全球第三?

      財報翻譯官
      2026-07-19 14:21:01
      中荷達成協商共識!安世半導體僵局迎來轉機,張學政近況...

      中荷達成協商共識!安世半導體僵局迎來轉機,張學政近況...

      一些見聞
      2026-07-19 10:26:21
      曬被子后有“太陽味”?醫生提醒:不是螨蟲烤焦了,而是因為這個

      曬被子后有“太陽味”?醫生提醒:不是螨蟲烤焦了,而是因為這個

      健康科普365
      2026-07-18 21:56:38
      美國封鎖海峽:中國沒石油,肯定求饒!中國:謝謝,我用電就行。

      美國封鎖海峽:中國沒石油,肯定求饒!中國:謝謝,我用電就行。

      一曲一場談
      2026-07-18 16:26:18
      賠率暗藏關鍵信號!西班牙vs阿根廷1-1全場最低,0-5打出直接1賠600

      賠率暗藏關鍵信號!西班牙vs阿根廷1-1全場最低,0-5打出直接1賠600

      友誼第一
      2026-07-19 13:00:39
      齊達內出任法國男足新任主帥

      齊達內出任法國男足新任主帥

      體壇周報
      2026-07-18 22:36:10
      2026-07-19 17:48:49
      侑虎科技UWA incentive-icons
      侑虎科技UWA
      游戲/VR性能優化平臺
      1599文章數 987關注度
      往期回顧 全部

      科技要聞

      Kimi K3單項登頂 整體落后前沿模型2-3個月

      頭條要聞

      40分鐘發射40枚導彈 烏稱基輔遭俄軍大規模導彈打擊

      頭條要聞

      40分鐘發射40枚導彈 烏稱基輔遭俄軍大規模導彈打擊

      體育要聞

      世界杯決賽,從“澡盆德比”500年前講起

      娛樂要聞

      全網都心疼鄒市明,再逼他支棱了

      財經要聞

      任澤平VIP會員自稱爆倉巨虧千萬

      汽車要聞

      把中國超跑賣到英國,比亞迪正在被世界看見

      態度原創

      教育
      旅游
      家居
      手機
      公開課

      教育要聞

      警界清華,中國人民公安大學,究竟是怎樣的存在?

      旅游要聞

      不必擠和順人潮,這座滇西小眾古鎮,藏著云南最治愈的田園慢生活

      家居要聞

      2026建博會(廣州) 公裝聯探展交流活動

      手機要聞

      華為持續稱王,OPPO沖到第二,蘋果下滑兩位,vivo第三

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 《学生的妈妈2》中字头歌词| 《开端》| 插曲的痛60全集免费| 免费完整版| 终极一班3部第一集| 守护者们电视剧免费观看| 猎金游戏剧情介绍| 色戒未测减除版| 奇妙萌可第4集免费观看| 金银梅5普通话版拍摄地点| 名侦探柯南638| 缘之空动画| 姜敏宇《游泳池的工作2》| 警察锅哥| 陷阱2015| 售楼女销售2| 怒火街头国语下载| 宫心计全集在线观看| 白峰美羽 magnet| 健身小辣椒J3被草| 河南豫剧全场戏| 教室那一间| 美国电影需要爸爸播种 | 高清《荆棘》电影完整版| 澳门回归22周年| 塔日酒店电影完整版在线观看 | 曹查理 风流电影| 电影《元敬》在线观看| 《不期而遇》电影| 《炽道》电视剧| 打狗棍大结局| 97在线免费| 老三国演义84集免费观看网站| 粉碎机全集观看| 《老舅》电视剧免费观看| 晨曦中的女孩| 《私人航空》法国在线播放| 爱回家电影韩国完整版| 渗透全集| 空蝉森酒法子原版| 世上只有爸爸好完整版电影| 济南炼油厂| 朝国年经继4电影| 一生一世免费观看| 欧洲股市开盘暴跌| 天海翼种子| 一艳九鼎| 美少女还我h之魂| 女侓师的堕落在线观看| 爱情与灵药在线观看| 婚庆摄像教程| 澈情从林短剧免费观看全集| 需要爸爸播种籽2中文版免费观看| 风水相师断命:一眼定吉凶短剧全集| 活祭之夜| 爸爸俗我播种子999Av| 童梦失魂夜| 浪浪人生未删减| 小蜜桃25| 《龙门镖局》| 任达华 温碧霞 惊变| 《特殊的房租》中文| 《古墓神蛇》| WWW.桔色成人.COM| 年轻的保险销售员2| 黑蝴蝶电影完整版在线| 前世情缘| 脱逃者天海冀全集免费观看| 公民凯恩电影| 高清《钢之炼金术师》| 牛鞭插在女人的下身| 终末的女武神第三季观看全集| 墨水心下载| 海贼王电影RED免费观看| 善良的小嫂子| 阿克苏市| 韩国电影办公室播放| 猎场大结局| 战狼9免费999加拿大版| 青春期 2011 电影| 新水浒传24集| 剑阁县| 寡妇一夜爽了六次| 英雄在线观看| 临泽县| 你是我的荣耀32集免费观看| 农场主和他的三个女儿们| 巩留县| 阿黛尔的生活未删| 特战荣耀在线观看免费 | 战至巅峰3| 只有你泰剧完整版免费观看| 人猿泰山激战丛林结局| 无夫之妻| 普门品全文念诵及回向全文| 法航空姐3| 潜艇伟伟迷的个人主页| 年轻善良的子3| 第二个农场姑娘们| 空巢姥爷 电视剧| 囧妈电影完整版免费| 海阳市| 白发在线观看完整版免费观看| 爱上特种兵全集免费观看网站| 泸溪县| 庶女逆袭:嫡姐别嚣张短剧全集| 为时已是寿司!?未删减| 汉末皇叔| 一起愁愁免费观看视频播放| 尖峰时刻2国语版| 我爱神仙遮国语| 《black:看见恶魔》| 奔跑吧兄弟 重庆| 9.1免费电影| 替嫁公主短剧全集| 战场上女兵被奸在线观看| 少年派2国语版免费观看| 鬼灭之刃锻刀村篇第五集| 《需要爸爸播种》在线播放| 从前有座灵剑山动漫| 我是特种兵之| 星克莱尔在线| 暗算全集| 欲海情魔无删减在线播放| 《黏糊糊的你正片》电影在线观看免费高清完整版剧情片-飞猪影视 健身房的特殊待遇 | 《好兄弟》完整版| 老爸的爱情主题曲| 碌曲县| 人肉叉烧包之天诛地灭| 邻家女孩百度影音| 铠甲勇士50| 白峰美羽在线看| 在续意难忘| 咱们结婚吧电影| 高压监狱3法国完整版免费| 甄嬛传在台湾| 交通事故现场| 韩国情趣胸部按摩电影| 青楼女人绝活免费观看电视剧| 宝贝在线观看| 无憾坎贝奇在线观看全集免费| 师傅电视剧| 绅士的品格 手机| 木下凛凛子的一级电影| 咱们结婚吧 25| 拯救瑞恩| 《和讨厌的部长出差| 火遮眼未删减| 苍蓝战士奥特曼电影免费观看 | xl司令第一季全集免费观看动漫 | 电影 赎罪| 敢梦有爱| 兔子先生免费全集在线观看| 意大利电影《忠贞》2| 苏拉的失忆症在线观看| 超越情感电视剧免费观看全集完整版 | 贤者之爱 豆瓣| 女老板电影| 台湾电影香唇的绣感| 《极限审判》| 再见艳阳天| 朝国年经的继6免费| 广场舞老鹰捉小鸡| 唐诡奇谭全集完整版| 天才枪手 资源| 灵与欲下载| 爱之美神在线观看免费完整版| 奔跑吧有情人| 迈克尔 道格拉斯| 遭义子侵犯的寡妇日韩电影 | 恶作剧之吻韩版网络版| 一起老去| 男按摩师做乳房按摩电影| 正在直播郑钦文比赛| 赖猫的狮子倒影在线看| 还原东北虎捕杀东北豹搏斗经过| 我的漂亮小后妈| 桃花运电视剧全集观看| 潜伏2恐怖片免费观看完整版| xl司令第一季全集免费观看动漫 | 小爸爸电视剧插曲| 3对1在线观看中文字幕| 朋友的母亲4播放| 韩剧鲨鱼剧情| 这省凭什么春节游客量第一| 在厨房和空调修理工 | 囧妈初一上线免费播出| 追龙粤语| 免费无毒韩国R片《韩国三级》| 小周后电影免费播放在线观看| 尼格买提复盘穿帮过程| 黛比浪漫女家教1| 旱魃之十万火急| 母亲主动给孩子降火好吗| 美容院5HD| 天国神族| 男按摩中字在线播放| 《魅魔姐姐》动集观看| 人肉豆腐汤| 战狼6在线观看高清版免费完整版| 年轻人 高清在线观看| 网络情缘原唱| 电影《法国空少》完整版| 指环王1免费观看完整| 仙逆在线观看全集完整版高清| 《家属动漫6全集》动漫观看| 富爸爸穷爸爸全集| 古剑奇谭第十集| 长治市| 美国爸爸的种子免费观看电视剧 | 四位少妇按摩记| 情迷六月花 电影| 斗罗大陆动漫全集| 恶之花免费看| 韩国电影遥控器控制老板| 维珍朋克:发条女孩| 万界独尊免费完整版高清动漫| 大兵的寝室电影完整版| 咒怨1 日版| 亲爱的自己全集在线观看| 本乡爱,二阶堂梦| 世界冲击影像社| 生活中的玛丽在线伦理| 如懿传在线观看全集| 村妓经典k8| 韩国片黄18以上在线观看| 风油精挑战| 卖百科全书的女人法国版免费观看 | 《健身房激情HD中字》| 神偷奶爸1在线观看完整版免费| 《安全屋》| 欧式少女16集全集在线看视频网站| 野外求生全集完整版| 翻滚吧阿信 百度影音| 樱兰高校的男公关部| 美容院特殊待遇免费观看| 白色橄榄树全集免费观看完整版| 小月子15天| 日本韩国免费看的电影电视剧| 思念爱电影免费完整| 多地限制教师非正常流动| 逐爱之心2023菲律宾正版| 台剧《黛比浪漫女家教2》有几集| 仙逆112集完整版高清4k| 乱世淫侠| 法国伦理《高压监狱2》| 我爱下电影论坛| 我的妈妈日语| 坎贝奇视频完整版| 非洲原始部落的女人| 《暮光之城4:破晓(下)》| 《幸福来敲门》| 美丽小蜜桃4:美丽人生| 庆余年22集| 哈里波特7| 爱我多深删掉的镜头| 何百芮的地狱恋曲未删减| 电视剧家门的荣光| 仰头老婆低头汉| 爱我几何电影在线观看免费莫尼卡 | 哪吒二在线观看| 大山的女儿电视剧| 成仁高清影视| 已婚妇女炎热午后| 杨门女将国语| 电影野兰花| 牙医姐妹高清完整版在线| 王庆爽知己红颜| 电影风声未删减版在哪里可以看 | 微电影《莫陌2》在线观看| 妓女地狱| 判处勇者刑未删减| 神兵小将第三部全集| 《桃色凶器| 植物大战僵尸动画片免费观看| 熊出没之猎鹰熊岛完整版在线观看| 高清《外遇的妻子2》| 苏菲的抉择| 五感图 下载| 高山清渠电视剧在线观看| 国产在线观看免费全集电视剧网站 | 《泰莎的绣感》完整版| 我的父亲母亲高清| 混血儿的摇篮曲| 《笑刃荒途》| 人民的名义18集| 最佳福星粤语版| 七尺男儿| 徐少强新版金银瓶2008| 变形金刚2电影| 许昌市| 最近更新2019中文字幕免费| 射雕英雄传之侠之大者免费完整版| 妻子背着丈夫招待社长| 打脸亲戚:穷亲戚变豪门短剧全集| 酒店1-100集全集免费| 樊梨花传奇| 《老师再爱我一次》大结局| 电影美容院的待遇5| 依兰爱情故事电影免费观看| 特殊牙医珍所日韩无删减版迅雷| 电视剧真爱诺言| 美容院的特殊待遇 在线| 变形金刚真人版电影| 姑娘在线第8集| 喜爱夜蒲2高清快播| 斯诺登电影| 女超人麦乐迪未删减季免费观看 | 成全视频观看免费高清动漫第5季在线 | 圣德罗佩的姑娘们高清| 梦华录在线电视剧免费观看西瓜| 插曲的痛全集免费播| 港版四大名捕| 出包王女第4季| 《激战丛林》完整版在线观| 潘粤明前妻| 四个男人要轮流练瑜伽是什么电影 | 江河之水电视剧| 米奇妙妙屋全集1| 笑傲江湖29| 中文字Dl幕岳 和女胥影视| 娘心电视剧全集土豆| 塔日酒店在线观看高清完整版 | 村里的姑娘国语高清在线观看| 《导演》意大利电影在线观看免费| 纸箱包子| 加勒比女海盗| 黑日危机高清| 女人的战争之女人的理由| 天使之恋 纯爱物语| 十大奇冤电视剧| 王心凌这就是爱歌词| 我不做潘金莲| 1995年意大利版《人猿泰山》hd| 三年大片观看免费大全国电影 | 我邻居的老婆 电影| 维修师傅的艳遇在线| 《法国空姐2024版》完整版在线播放 | 电击小子动漫| 《maruzzella》完整版在线观看| 湛江电视台| 房奴试爱开头智恩是哪一集 | 流金岁月电视剧全集观看| 中国棉花事件| 电视剧免费观看高清全集| 满天星《女拳击手》在线观看| 王牌保镖电影| 铿锵锵免费观看完整版在线观| 《大梦归离》在线观看| 异形2百度影音| 西藏小子| 奇怪的美发沙沙龙中文版| 牙医姊妹在线观看免费高清| 斗罗大陆免费完整观看207| 农场保卫战满天星完整版| 某种物质电影免费观看整版| 嘉荫县| 枪神 STARGAZE电视剧| 跨过鸭绿江1至40集电视连续剧| 人民检察官在线观看| 美女被破处| 售楼员的秘密| 杨贵妃传| XL司令第二季高清无马赛版下载| 可疑的美容院2| 《法国空乘11》成人版| 麻辣同学会| 荷尔蒙6完整版免费看| 一笑随歌40集全免费播放| 女超人麦乐迪在线完整版| 东方红歌曲| 大祭司她又美又飒短剧免费观看| 男按摩师性爱电影| 天使之爱| 法国电影《金牌销售》在线播放| 逃出洛杉矶| 峨眉山市| 大内密探00性性| 小泽玛利娅| 菠萝蜜在线观看视频| 湖南卫视金鹰节开幕式| 水润女人未删减版| 血疫电影完整免费观看| 车仁表四大名捕| 仙逆哪里可以看到76集| 密桃社区| 新有菜在线免费播放| 晨曦中的女孩| 新来的私人瑜伽教练| 神雕侠侣全集| 美女按摩师免费观看| 说英雄谁是英雄在线观看| 欢乐群家长第二季| 畀女一起愁愁在线观看免费播放| 三大队电影免费| 金银梅1-5普通话免费观看完整版国语尼姑| 上海流浪华姐图片| 驯服上司的女社长| 王祖贤视频| 搞笑大连话| 跟别人家的老公出轨| 大江大河3免费50集电视剧| 菠萝菠萝蜜电影免费| 仙逆在线观看全集完整版高清| 酒店1~50集在线观看| 大丫鬟大结局| 重庆时代歌剧院| 法国急救宝贝2| 狂飙未删减版| 老婆5| 龙虎山张天师电影在线观看| 《花儿与少年》被曝重启| 美国《仰泳》电影| 宿醉2百度影音| 满天星影院电影在线观看| 白峰美羽电影免费播放在线| 牛b的话| 古田美穗| 决战燕子门电视剧全集免费播放 | 百姓秀才官全集| 和大胸大乳继拇做爰5| 金战演员表| 云南山歌剧全集高清| 人猿泰山1995年真人版| 突围37集在线观看| 私人航空在线观看免费完整版| 最佳情侣电视剧| 神探夏洛克下载| 陪部长去出差喝醉| 姐姐的朋友16| 合山市| 风骚岳母| 梁家辉情人完整版| 秋姿炫生死决断| 跑男第八季开播时间| 入室女职工被强行糟蹋电影| 电影《毒液》3| 高清《咱们结婚吧》50集全| 纯属意外电视剧| 一念永恒第3季在线观看| 牛鞭擦进女人下身是什么意思| 名侦探柯南609| 雌雄大盗| 水手服在线观看完整免费版| 播放哪吒| 《花子与倔强的驱魔师》在线观看22| 庆余年2免费高清观看西瓜| 向风而行电视剧四十集| 和讨厌的部长一起去出差旅行电影叫| 摇滚狂花电视剧免费观看| 俄罗斯女儿国2完整版| 浮世双娇传电视剧免费观看| 枪口电视剧| 《妽妽的丰满大胸》hd| 李采潭电影免费全集观看| 激情战歌| 满江红电视剧免费观看| 我们一起来看流星雨| 莫莉3酒店| 《死亡账号》| 平凡的荣耀全集| 韩国卖房子的女销售3| 豪杰春香全集| 花城谢怜下面夹东西AO3 | 电影《之后6》| 杯水情歌吉他谱| 兴城市| 《火热的监狱》完整版| 极品美女在身边| JIZZ.日本| 终极谍匪| AIGAO网在线观看| 禁忌5免费在线观看| 爱情而已电视剧免费观看全集完整版| 电影《美味快递员特殊待遇2》演员阵| 滑动门 电影| 日本电影和讨厌社长出差旅| 洋葱电影| 天龙八部2021| 维修师傅的艳遇(无码片)| 纯真年代电视剧全集| 好朋友们| 冢本越南村电影在线观看| 他在等光来| 洪雅县| 日语版九品芝麻官| 《导师》完整版免费观看高清电影| 三年大国语高清免费看| 正者无敌全集下载| 深宅大院| 《一对二》韩剧姜汉娜免费观看全集 | 黑蝴蝶电影完整版在线| 新审死官粤语| 歌手唐磊:五月天确实有对口型行为| 评书隋唐演义免费听完整版| 三年大国语高清免费看| 在异世界迷宫开后无修改在哪里看| 办公室里呻吟的丰满老师电影| 加勒比海盗女海盗1| 超凡蜘蛛侠3在线观看完整免费版| 追捕渣滓洞刽子手| 骄阳伴我电视剧免费观看| 《美容窒:特殊服务3》| 我在伊丽莎白截取了一个小片段| 慈禧的生活秘史免费播放| 黄圣依的乳晕| 女泳永教练的欲望| 海上繁花电视剧免费观看完整版| 女社长紧缚奴在线观看| 在线观看美国伦理电影小蜜桃| 年轻的保姆5线观高清多鱼| 古典吉他曲谱| 夏目友人帐电影高清免费观看| 逆风野兽电影免费观看| 公之浮之手中有字9| 冯巩全集| 落花时节电视剧免费观看第38集| 做aj的电视剧大全国外| 猫和老鼠动漫| 唐人街探案3国语版在线观看免费| 少年杨家将全集| 我和僵尸有个约会2粤语在线观看| 电影我要爸爸播种子| 爱的色放剧照| 锦衣之下电视剧在线观看| 小凤新婚下集全集免费播放| 风云之十里洋场| 善良的小姨子在线播放| 至上主义教室第3季在线观看| 朋友的母亲8中语版| 赤坂丽的《牙医诊所》结局是什么| 学院救援团| 甄嬛传完整版免费观看| 成人片《男按摩师乳房按摩》在线观 | 彭帅的瓜| 法国国空姐4| 沉默羔羊| 新金银悔5一1手机版| 鬼吹灯之龙岭迷窟| 野店百度影音| 台湾师生恋《补课》电影是什么电影| 全球禁播的电影| 朋友的妈妈2中字线观高清| 需要爸爸种子在线观看| 爆笑热带雨林| 翁虹《玉尺经》徐锦江| 锵锵锵锵锵锵锵免费观看完整版大全| 高清夺命网红2| 撞入他的热恋电视剧免费观看| 孩子快抓紧妈妈的手| 汉武大帝 电视剧| 《入室暴行3被蹂躏》在线观看 | 交换玩弄两个美妇教师韩国电影 | 小泽玛利娅| 三年成全在线观看免费高清电视剧| 封神2在线观看完整免费观看国语| 从指尖传出的认真的热情 第二季| 战狼6免费播9999| 霍元甲黄元申粤语| 探秘地球| 美国爸爸要播种免费看| 亲切的金子粤语趴桌子| 刀郎演唱会爱是你我| 82板杨敏思版免费版电影| 巡回检察组43| 罗马第一季| 特殊的美容院5 韩国| 沧元图动漫免费全集| 高清《ulises》电影完整版| 李彩谭电影在线| 死亡包裹| 甄嬛传在线观看| 将军夫人:夫君护短全集免费 | 你敢嫁我敢娶| 秒速5厘米| 新金银悔5一10普| 美剧《真探》免费观看| 幸福的面包| 湟中县| 朋友的母亲4在观完整有限中字木| 女状元:文武双全惊天下全集免费 | 战狼6高清免费观看入口| 警察故事免费| 年轻的妺妺2中字| 康体水疗看在线完整版| 成熟的女儿免费观看电视剧全集| 朝鲜驱魔师在线观看| 特殊精油按摩3| 高清《阿诺拉》电影| 三年高清在线观看免费大全韩剧| 青楼名妓桃花扇童珍主演的电影 | 黛比浪漫女家教1-6季 电视剧| 仙剑2电视剧| 凡人修仙传77集免费观看全集| 成人片《男按摩师乳房按摩》在线观| 非诚勿扰 张靓| 红娘子大结局| 美丽的蜜桃5| 余男版《狂怒》高清完整版| 污性福宝| xl司令第二季马赛免费观看高清动漫| 高清《曾少年》电视剧| 凤凰传奇演唱会2012高清| 一起对愁愁愁免费观看| 《敢死队2》| 高清《纵情欲海》1无删减| 八戒网剧8免费观看播放| 寂静的山林电影| 叛逆的鲁鲁修第二季| 借种 在线观看| 重生之商业帝国| 深圳市| 137号案件未删减| 平凡职业造就世界最强第二季| 《哪吒2》高清完整版在线观看 | 教授和女学生| 《美姊妹牙医》| 也平凡1-45集免费观看| 璀璨人生下载| 私人航空 电影免费看全集| 我的心是海洋| 库拉乌幻之记忆| 一锁五十年电视剧免费观看| 在世界尽头咏唱4集原版| 妒忌电影| 坎贝奇《品味人生》高清全集| 星空在线观看免费| 电影私人航空免费观看| 世界上水最多的B| 男女在一起愁愁愁在线观看| 门第31集在线观看| 丝脚电影| 刘老根第三部| 深夜濡恋| 渔夫荒淫史免费观看| pgd 606中文字幕| 高清《顽主》| 白雪公主成人版在线免费观看| 花非花雾非雾完整版| 爱情公寓3第16集| 社长侵犯下属妻子中文版| 大蛇5国语版完整版| 大叔免费观看全集完整版高清| 需要爸爸播种 中文播放| 千年之狐| 法国空姐满天星法版| 女超人(麦乐迪)| 盛夏晚晴天mp4下载| 锦月如歌电视剧免费观看全集完整版 | 深海利剑演员表| 麦乐迪马斯克女超人观看完整版| 百万新娘之爱无悔53| 《红高粱》| 《越南暴行2》| 蔡妍 两个人 mv| 亲爱的你免费观看| 法国空姐3在线播放| 逆缘 电视剧| 巴西人与禽发生性行为的后果| 女律师的坠落完整版| 爱恋下载| 末日村庄电影完整在线观看| 木子凛凛子在线电影| 我是骚包| 女人村庄演员表| 心宅猎人电视剧在线观看免费高清| big波诱惑| 爱我几何免费观看高清版| 一家老小向前冲高清| 惊天激战高清在线观看| 金牌销售的秘密3HD免费观看| 猎豹电影| 洪金宝再谈周星驰| JIZZ日本| 《王牌对王牌》第二季| 广场舞社员都是向阳花| 大唐玄奘 电影| 三年成全电影免费大全在线| 盘点爆笑挠脚心场面| 咕咕藏族电影| 禁忌家庭密码| 乒乓球女团决赛完整版| 江湖儿女免费| 朝国继4| 今天的她们电视剧免费观看| 创:战神| 电影金瓶风月| 需要爸爸播种子在线观看中文字幕 | 美国1~5普通话| 天师钟馗94版| 卧底警花女特工被抓是哪一集| 加勒比海盗成人版海盗| 诺曼影视| 背着善宰跑电视剧免费观看| 82板杨敏思版本1-5电视剧在线观看| 羊羔医生| 嫡女宅斗:全精通短剧全集| 爱人的谎言 电视剧 | 魔屋2009| 回复术士之重启人生第二季| 黄色仓库视频免费 播放完整版| 温碧霞《灯草和尚》| 借种无删减| 做aj的电视剧大全香港| 林正英的僵尸电影| 年轻人在线播放| 蜜桃成熟时高清版| 逃狱犯入室暴行电影免费观看| 进化之实动漫在线观看| 天上掉下猪八戒| 日剧公的之浮之手中字免费观看| 有些路不走不甘心走了满身伤痕| 奔跑吧有情人| 金瓶梅2:爱的奴隶 电影| 壮志凌云啄木鸟满天星| 百变小樱魔术卡中文| 相思蛊电视剧| 《我的舞蹈女教练》| 太极拳八段锦教学视频| 霹雳布袋戏免费观看网站| 灵魂摆渡第一季免费完整版| 色莱芜视频在线| 大江大河3全集免费播放| 放大电影| 公孚之手日版| 阳阳电影| 《一年后的你》动漫免费观看| 王的女人共多少集| 年轻的小痍子3免费观看| 鸭王2粤语| 你是我的荣耀免费观看完整版西瓜| 日本女大学生沙龙| 绝世枭雄| 电影沙丘| 战狼6免费高清版999加拿大版| 电影17·3免费观看完整版在线观看 | 复仇千金:渣男贱女都完蛋短剧全集 | 美国版《灭火宝贝1》| 电影《美容院的特殊待遇》5演员表免费观看 | 万万没想到之鹿晗篇| 百姓秀才官全集| 武当一剑电视剧免费观看| 金牌销售的秘密3HD免费观看| 花木兰2动画片| 卡特教练| 赤壁 电影| 电影新任女职员| 越战电影在线观看免费完整版| 韩国年轻的母年轻线在6| kkkbo打不开| 《公共事务》在线观看完整版| 甄嬛传49| 酒醉的探戈动力火车| 朴妮唛28部电视剧在线观看 | 摄政王妃:掌心娇宠短剧全集| 相游戏在线观看| 古惑仔国语全集| 蛇园短剧全集免费播放下载| 女版战狼10国语版免费播放下载| 警中警2免费观看全集| 妖女十八招| 流光飞舞粤语| 嘴唇1981凯·帕克| 曹查理威胁财务女是什么电影| 迪丽娜尔女儿| 镉超标大米| 《机械师6》在线观看| 朝花夕誓| 嘉庆王朝42集免费观看电视剧| 战狼10国语版普通话迅雷下载| 野蛮师姐插曲| 文章孙兴最新电影| 月是故乡明电视剧| 《修理工的艳遇》观看| 惊天危机2完整免费| 站着在来一次| 爱情公寓第一季免费版| 爱的阶梯国语版| 《卖房子的女销售》美国| 长相思第一季全集免费完整版16| 宿敌在线观看| 上海一家人电视剧全集在线观看| 老公的瑜伽老师| 路一直都在mv| 逆风野兽电影免费观看| 于娟博客| 黑白配2018| 变形金刚四绝迹重生| 黑帮大佬和我的365天 第二| 新还珠穿帮镜头| 《已婚妇女的下午| 猪趴大联盟| 法证先锋5粤语版免费观看 | 爱唯侦察| 韩国电影需要爸爸播种| 深夜航班 第二季| 赌圣周星驰| 白峰美羽主演的为父报仇| 新白发魔女传大结局| 恐龙之恋泰剧| 剑侠电视剧| 特殊客房满天星| 情圣3免费观看完整版| 边境大逃亡完整版免费观看| 我的后半生在线观看免费高清 | 欧美金银1-5美国普通话版| 周生如故全24集免费看| 一路向西 国语| 法国版《女超人:麦乐迪》在线观看http| 行尸走肉 第1季| 即时是空3电影免费观看完整版国语| 唐宫美人天下结局| 双人调情按摩术在线看| 指尖传出的真挚热情2第二季预告| 电视剧满江红在线观看| 东北黑社会乔四| 欧美战狼10电影免费完整版| 战狼6高清在线观看| 雪中悍刀行在线免费观看| 蓝盔特战队电视剧全集免费观看| 二十一世纪性格爱情指南免费观看 | 回复术士第二季在线观看漫画| 《慢性呕吐实验室》电影免费观看| 我们结婚吧全集| 复仇从离婚开始短剧全集| 车票 电影| 销售的秘密2在线观看免费版电视剧| 战狼5欧美版免费观看完整版国语百度| 锦绣安宁电视剧36集播放| 回复术士的重来人生免费播放| 美姐妹牙医观看完整版| 黑人巨屌在线| 手抄报红领巾心向党| 一二三级域名怎样看| JAP69韩国| 女律师的堕落电视剧免费观看第4集| 忍者之路下载| 琉璃在线免费观看| 轻佻寡妇电影完整版| 漂亮的小姨韩剧免费观看完整版电视剧中文版 | 盛夏晚晴天全集在线观看| j情丛林| 夺宝联盟在线观看| 流浪地球2| 尸变重生秘籍| 美国需要爸爸播种电影| 金银悔1-5免费看| 猎鹰行动| 最美的安排| 信天游电影| 落魄贵族琉璃川在线观看全集高清免费普通话|