免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

Unity URP全屏后處理特效:Blit Render Feature原理、實現與優(yōu)化指南

Unity URP全屏后處理特效:Blit Render Feature原理、實現與優(yōu)化指南 1. 項目概述為什么你需要一個“終極指南”如果你正在用Unity的URP管線做項目并且想實現一個全屏后處理特效——比如一個復古的CRT掃描線、一個全局的色彩校正或者一個酷炫的溶解過渡——你大概率會搜到“Render Feature”和“Blit”這兩個關鍵詞。網上的教程很多但往往只告訴你“這么寫就能跑”結果你照著抄要么效果不對要么性能炸了要么在移動端直接黑屏。這就是我寫這篇指南的原因市面上缺的不是代碼片段而是一個能串聯(lián)起原理、實現、優(yōu)化和避坑的完整地圖。URP的Blit Render Feature本質上是一個讓你在渲染流程的特定階段把當前屏幕圖像或某個RT抓過來用你自己的Shader處理一遍再寫回去的“后門”。聽起來簡單但魔鬼全在細節(jié)里Blit的時機選在哪一Pass源和目標RT怎么管理Shader里采樣坐標怎么處理才能不扭曲移動端兼容性怎么保證這些問題不搞清楚你實現的就不是“特效”而是“bug制造機”。這篇指南會從最底層的渲染命令開始帶你一步步構建一個健壯、高效、可擴展的全屏特效框架并解釋每一個決策背后的“為什么”。無論你是想實現一個簡單的灰屏效果還是復雜的多Pass景深模糊這里都有你需要的答案。2. 核心原理拆解URP管線、RenderFeature與Blit命令在動手寫代碼之前我們必須統(tǒng)一認知我們到底在操作什么這就像修車你得先知道引擎蓋下面各個部件是怎么連接的。2.1 URP渲染管線簡析ScriptableRenderPipeline的舞臺URPUniversal Render Pipeline的核心是“可編程”。它不再像內置管線那樣有固定的渲染步驟而是通過一個ScriptableRenderer比如ForwardRenderer和一系列ScriptableRenderPass來組裝整個渲染流程。你可以把ScriptableRenderer想象成一個導演ScriptableRenderPass是演員如繪制不透明物體Pass、天空盒Pass、后處理Pass而RenderFeature就是給導演遞劇本的編劇它告訴導演“在某個演員表演完之后插入一段我們自定義的戲份也就是我們的Blit Pass”。這個“插入點”至關重要。URP的渲染順序大致是不透明物體 - 天空盒 - 透明物體 - 后處理。如果你的全屏特效需要在所有不透明物體畫完但還沒畫天空盒時執(zhí)行比如用于遮擋效果的深度圖處理和你需要在所有渲染完成之后執(zhí)行比如全屏的色調映射插入的位置是天差地別的。RenderFeature的AddRenderPasses方法就是讓你選擇這個插入時機的地方。2.2 RenderFeature的本質管線中的可插拔模塊ScriptableRendererFeature我們常說的RenderFeature是一個資產你可以在URP Asset的Renderer列表里把它加進去。它的生命周期和核心方法就兩個Create: 創(chuàng)建時初始化生成你自定義的ScriptableRenderPass實例。AddRenderPasses: 每一幀渲染前調用在這里把你的Pass加入到渲染器的隊列中。很多新手會把邏輯寫在RenderFeature里這是不對的。RenderFeature只是個工廠和調度員真正的臟活累活都在ScriptableRenderPass里。我們的Blit操作就是在Pass的Execute方法中完成的。2.3 Blit命令的真相不僅僅是Graphics.Blit說到Blit很多人第一反應是Graphics.Blit(source, destination, material)。這在Built-in管線里沒問題但在URP的SRP環(huán)境下我們需要使用命令緩沖CommandBuffer。URP提供了更底層、更靈活的Blitter.BlitCameraTexture方法或者直接使用CommandBuffer.Blit。這里的關鍵區(qū)別在于渲染紋理RenderTexture的管理。Graphics.Blit會自己創(chuàng)建臨時RT但生命周期不好控制容易泄露。在URP中最佳實踐是使用RenderingUtils.ReAllocateIfNeeded來申請或復用RT并使用RenderTextureDescriptor來精確控制RT的格式如RenderTextureFormat.DefaultHDR、深度緩沖等屬性。因為URP可能在不同平臺如PC的Metal/OpenGL 移動端的GLES3和不同渲染尺度RenderScale下運行手動管理描述符能確保兼容性。注意永遠不要假設屏幕緩沖區(qū)的格式。在移動平臺主幀緩沖Frame Buffer的格式可能非常受限。你的Blit Shader應該盡量使用半精度half數據類型并對UNITY_UV_STARTS_AT_TOP等平臺差異宏保持警惕。2.4 全屏特效Shader的特殊性頂點與片元著色器的協(xié)作一個標準的全屏Blit Shader模板長什么樣它通常只有一個Pass并且使用一個覆蓋整個NDC標準化設備坐標空間的三角形或四邊形來渲染。頂點著色器的作用極其簡單將三個固定頂點(-1,-1), (3,-1), (-1,3)或四個頂點轉換到裁剪空間。這樣做的效率遠高于繪制一個兩個三角形的Quad因為現代GPU在處理大三角形時更有優(yōu)化空間減少頂點著色器調用和過度繪制判斷。片元著色器則是特效的核心。這里最大的坑是紋理采樣坐標。從Blit命令傳入的紋理其采樣坐標通常需要根據_SourceTex_TexelSize來進行正確的雙線性采樣避免邊緣像素拉伸。如果你要做基于屏幕UV的扭曲效果如水流波紋更要注意不同平臺原點OpenGL是左下角Direct3D是左上角可能帶來的差異通常使用UnityStereoTransformScreenSpaceTex宏來處理。// 一個最簡單的全屏著色器示例 Shader Hidden/Custom/SimpleBlit { SubShader { Pass { Name CustomBlitPass // 關閉深度寫入和測試因為我們覆蓋全屏 ZWrite Off ZTest Always Blend Off Cull Off HLSLPROGRAM #pragma vertex Vert #pragma fragment Frag #include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl TEXTURE2D(_SourceTex); SAMPLER(sampler_SourceTex); float4 _SourceTex_TexelSize; // 自動傳遞的紋理像素大小 struct Attributes { uint vertexID : SV_VertexID; }; struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; }; Varyings Vert(Attributes input) { Varyings output; // 使用頂點ID生成全屏三角形 output.positionCS GetFullScreenTriangleVertexPosition(input.vertexID); output.uv GetFullScreenTriangleTexCoord(input.vertexID); return output; } half4 Frag(Varyings input) : SV_Target { // 正確的紋理采樣考慮平臺差異 float2 uv input.uv; #if UNITY_UV_STARTS_AT_TOP uv.y 1.0 - uv.y; #endif half4 color SAMPLE_TEXTURE2D(_SourceTex, sampler_SourceTex, uv); // 在這里實現你的特效邏輯例如去色 half luminance dot(color.rgb, half3(0.2126, 0.7152, 0.0722)); return half4(luminance.xxx, color.a); } ENDHLSL } } }3. 從零構建一個健壯的Blit Render Feature理解了原理我們現在來搭建一個工業(yè)級的Blit Render Feature。我會把代碼拆開解釋每一行存在的意義。3.1 創(chuàng)建自定義RenderPass承載Blit邏輯的容器首先我們創(chuàng)建自定義的Pass類。這個類要繼承ScriptableRenderPass并管理自己的RT和材質。using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; public class CustomBlitPass : ScriptableRenderPass { // 配置參數 private Material m_BlitMaterial; private int m_BlitShaderPassIndex; private string m_ProfilerTag; // 臨時RT句柄 private RTHandle m_CameraColorTarget; // 相機顏色目標通常由渲染器設置 private RTHandle m_TemporaryRT; // 我們申請的臨時RT // 構造函數初始化配置 public CustomBlitPass(Material blitMaterial, int passIndex, string tag) { m_BlitMaterial blitMaterial; m_BlitShaderPassIndex passIndex; m_ProfilerTag tag; // 配置渲染事件和清除標志 renderPassEvent RenderPassEvent.AfterRenderingPostProcessing; // 默認放在后處理之后 m_TemporaryRT RTHandles.Alloc(_CustomTemporaryRT); // 先分配一個句柄具體描述符稍后配置 } // 核心方法配置相機目標 public void Setup(RTHandle cameraColorTargetHandle) { m_CameraColorTarget cameraColorTargetHandle; } // 核心方法執(zhí)行渲染命令 public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // 0. 安全檢查 if (m_BlitMaterial null || m_CameraColorTarget null) return; // 1. 從命令池獲取一個CommandBuffer CommandBuffer cmd CommandBufferPool.Get(m_ProfilerTag); // 2. 根據相機描述符創(chuàng)建或重新分配臨時RT RenderTextureDescriptor cameraTargetDesc renderingData.cameraData.cameraTargetDescriptor; cameraTargetDesc.depthBufferBits 0; // 我們不需要深度節(jié)省帶寬和內存 cameraTargetDesc.msaaSamples 1; // 后處理階段通常關閉MSAA // 關鍵使用RenderingUtils來智能管理RT避免每幀創(chuàng)建銷毀 RenderingUtils.ReAllocateIfNeeded(ref m_TemporaryRT, cameraTargetDesc, FilterMode.Bilinear, TextureWrapMode.Clamp, name: _CustomTemporaryRT); // 3. 執(zhí)行Blit操作從相機目標到臨時RT應用材質 Blitter.BlitCameraTexture(cmd, m_CameraColorTarget, m_TemporaryRT, m_BlitMaterial, m_BlitShaderPassIndex); // 4. 將處理后的結果從臨時RT Blit回相機目標 Blitter.BlitCameraTexture(cmd, m_TemporaryRT, m_CameraColorTarget); // 5. 提交命令到渲染上下文 context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } // 清理資源 public void Dispose() { m_TemporaryRT?.Release(); } }代碼解讀與注意事項RTHandlevsRenderTexture在URP中強烈建議使用RTHandle系統(tǒng)來管理RT。它提供了自動縮放根據動態(tài)分辨率和更高效的內存復用。直接new RenderTexture是過時且低效的做法。RenderPassEvent這是決定Pass執(zhí)行順序的生命線。AfterRenderingPostProcessing是一個很常用的點確保在所有內置后處理如Bloom, Tonemapping之后執(zhí)行你的自定義特效。如果你需要在后處理之前執(zhí)行例如為某些后處理準備數據可以設為BeforeRenderingPostProcessing。CommandBufferPool.Get一定要使用對象池來獲取CommandBuffer避免GC垃圾回收壓力。用完后必須Release。ReAllocateIfNeeded這是性能關鍵。它檢查RT的描述符是否變化如分辨率調整僅在必要時重新創(chuàng)建否則復用極大減少內存抖動。雙Blit過程為什么先Blit到臨時RT再Blit回來因為很多圖形API不允許對正在作為渲染目標的紋理進行采樣。這是一個安全且通用的做法。如果你的Shader設計為僅修改顏色而不采樣源紋理可能性很小理論上可以直接Blit到自身但這會嚴重依賴平臺不推薦。3.2 創(chuàng)建自定義RenderFeaturePass的工廠與調度器接下來創(chuàng)建RenderFeature來生產和管理上面的Pass。using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; public class CustomBlitRendererFeature : ScriptableRendererFeature { [System.Serializable] public class Settings { public Material blitMaterial null; public int materialPassIndex -1; // -1 表示渲染所有Pass public RenderPassEvent renderPassEvent RenderPassEvent.AfterRenderingPostProcessing; } public Settings settings new Settings(); private CustomBlitPass m_CustomBlitPass; // 在Feature創(chuàng)建時調用一次 public override void Create() { if (settings.blitMaterial null) { Debug.LogWarning($CustomBlitRendererFeature on {this.name} 未指定材質功能將禁用。); return; } m_CustomBlitPass new CustomBlitPass(settings.blitMaterial, settings.materialPassIndex, name); m_CustomBlitPass.renderPassEvent settings.renderPassEvent; } // 每幀、每個相機渲染前調用 public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { if (m_CustomBlitPass null || settings.blitMaterial null) return; // 獲取當前渲染器的相機顏色目標句柄 var cameraColorTargetHandle renderer.cameraColorTargetHandle; if (cameraColorTargetHandle null) return; // 配置Pass并加入隊列 m_CustomBlitPass.Setup(cameraColorTargetHandle); renderer.EnqueuePass(m_CustomBlitPass); } // 當Feature被禁用或銷毀時調用 protected override void Dispose(bool disposing) { m_CustomBlitPass?.Dispose(); m_CustomBlitPass null; } }配置與使用流程將上述兩個C#腳本放入項目。創(chuàng)建一個Unlit Shader Graph或編寫一個HLSL Shader實現你的特效邏輯。用該Shader創(chuàng)建一個材質球。在Project窗口中右鍵 - Create - Rendering - URP - Renderer Feature 選擇CustomBlitRendererFeature創(chuàng)建一個Feature資產。選中該資產在Inspector面板上將第3步創(chuàng)建的材質球拖入Blit Material。打開你的URP Asset在Renderer List中選擇你使用的Renderer如Forward Renderer將第4步創(chuàng)建的Feature資產拖入Renderer Features列表。運行游戲你的全屏特效就應該生效了。3.3 高級配置注入參數與多Pass特效基礎框架搭建好了但一個有用的特效往往是可配置的。我們需要將參數如強度、顏色從C#傳遞到Shader。在CustomBlitPass中添加參數注入public class CustomBlitPass : ScriptableRenderPass { // ... 原有字段 ... private float m_EffectIntensity; // 新增特效強度參數 // 新增配置參數的方法 public void UpdateParameters(float intensity) { m_EffectIntensity intensity; } public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { // ... 原有代碼 ... // 在Blit之前將參數設置到材質球 if (m_BlitMaterial ! null) { m_BlitMaterial.SetFloat(_Intensity, m_EffectIntensity); } // ... 執(zhí)行Blit ... } }在CustomBlitRendererFeature中暴露參數并傳遞public class CustomBlitRendererFeature : ScriptableRendererFeature { [System.Serializable] public class Settings { // ... 原有設置 ... public float intensity 1.0f; // 暴露給Inspector的參數 } // 在AddRenderPasses中更新參數 public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { // ... 原有檢查 ... m_CustomBlitPass.UpdateParameters(settings.intensity); // 傳遞參數 // ... 加入隊列 ... } }這樣你就可以在Inspector中動態(tài)調整intensity并實時看到特效變化。對于更復雜的特效如需要多個Pass的模糊合成你可以在CustomBlitPass的Execute方法中連續(xù)執(zhí)行多個Blit命令每個命令使用不同的材質或Pass Index并在多個臨時RT之間交換數據。核心模式是Source - TempRT1 (Pass1) - TempRT2 (Pass2) - ... - Destination。4. 實戰(zhàn)實現一個高性能屏幕扭曲特效讓我們用一個具體案例來鞏固知識實現一個基于噪聲紋理的全屏屏幕扭曲效果類似熱浪、水下折射。4.1 Shader實現噪聲采樣與UV偏移首先編寫Shader。我們需要一張噪聲圖Noise Texture和一個控制扭曲強度的參數。Shader Hidden/Custom/ScreenDistortion { Properties { _NoiseTex(Noise Texture, 2D) white {} _DistortStrength(Distort Strength, Range(0, 0.1)) 0.05 _NoiseScale(Noise Scale, Float) 1.0 _Speed(Speed, Float) 1.0 } SubShader { Pass { Name ScreenDistortionPass ZWrite Off ZTest Always Blend Off Cull Off HLSLPROGRAM #pragma vertex Vert #pragma fragment Frag #include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl TEXTURE2D(_SourceTex); SAMPLER(sampler_SourceTex); TEXTURE2D(_NoiseTex); SAMPLER(sampler_NoiseTex); float4 _NoiseTex_ST; // 用于噪聲圖的縮放和平移 float _DistortStrength; float _NoiseScale; float _Speed; float _TimeSinceLevelLoad; // Unity內置時間變量 struct Attributes { uint vertexID : SV_VertexID; }; struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; }; Varyings Vert(Attributes input) { /* 同前文全屏三角形頂點著色器 */ } half4 Frag(Varyings input) : SV_Target { // 計算噪聲UV加入時間和縮放 float2 noiseUV input.uv * _NoiseScale; noiseUV frac(_TimeSinceLevelLoad.yy * _Speed * 0.1); // 讓噪聲動起來 // 采樣噪聲圖RG通道 half2 noiseValue SAMPLE_TEXTURE2D(_NoiseTex, sampler_NoiseTex, noiseUV).rg; // 將噪聲值從[0,1]映射到[-1,1]用于雙向偏移 noiseValue noiseValue * 2.0 - 1.0; // 應用強度計算最終的UV偏移 float2 distortOffset noiseValue * _DistortStrength; // 對源紋理進行扭曲采樣 float2 distortedUV input.uv distortOffset; // 處理平臺差異 #if UNITY_UV_STARTS_AT_TOP distortedUV.y 1.0 - distortedUV.y; #endif half4 color SAMPLE_TEXTURE2D(_SourceTex, sampler_SourceTex, distortedUV); return color; } ENDHLSL } } }4.2 C#端驅動與優(yōu)化創(chuàng)建對應的材質并在CustomBlitRendererFeature的Settings中暴露_NoiseTex,_DistortStrength等參數。在Pass的Execute方法中使用CommandBuffer.SetGlobalTexture和SetGlobalFloat來傳遞這些參數。性能優(yōu)化點噪聲圖選擇使用一張小的如64x64或128x128、無縫平鋪的灰度圖。避免使用大圖采樣成本低。精度控制在移動端將noiseValue和distortOffset的精度聲明為half2和half能提升運行效率。強度限制_DistortStrength不宜過大過大的偏移會導致采樣到屏幕外的像素通常需要鉗制UV或使用紋理環(huán)繞模式Wrap Mode為Repeat。按需啟用可以通過腳本在特定條件如玩家進入火焰區(qū)下才啟用這個RenderFeature避免一直消耗性能。4.3 與URP內置后處理的協(xié)作與順序你的自定義特效和URP內置的Bloom、Vignette等是什么關系關鍵在于renderPassEvent。如果你把Pass事件設為AfterRenderingPostProcessing那么你的扭曲效果會應用在Bloom等效果之后。這意味著Bloom發(fā)光的部分也會被扭曲效果更“整合”但性能消耗是疊加的。如果你希望扭曲發(fā)生在后處理之前例如先扭曲畫面再計算Bloom讓光暈基于扭曲后的畫面生成則需要將事件設為BeforeRenderingPostProcessing。你需要根據最終想要的藝術效果來決定順序。一個常見的做法是提供兩個Feature一個用于“顏色處理”在后處理前一個用于“最終合成”在后處理后通過不同的Pass Event和材質來實現復雜的多層效果。5. 深度優(yōu)化與全平臺兼容性實戰(zhàn)實現功能只是第一步讓特效在各種設備上穩(wěn)定、高效地運行才是真正的挑戰(zhàn)。5.1 移動端適配精度、帶寬與紋理壓縮移動GPU如Adreno, Mali與PC GPU架構差異巨大。首要問題是精度。在片元著色器中盡量使用half代替float進行中間計算。例如顏色值、UV偏移量用half精度通常足夠。帶寬是移動端的生命線。我們的雙Blit操作意味著一次全屏紋理的讀取和寫入。優(yōu)化方法降低分辨率如果不是必要可以考慮在RenderTextureDescriptor中設置width和height為相機原分辨率的1/2cameraTargetDesc.width / 2;進行降采樣渲染最后再上采樣顯示。這對全屏模糊類特效效果顯著。使用更小的紋理格式如果特效不需要Alpha通道可以將cameraTargetDesc.graphicsFormat設置為GraphicsFormat.R8G8B8A8_UNorm甚至GraphicsFormat.B5G6R5_UNormPack16如果支持。這需要查詢SystemInfo.IsFormatSupported。避免Alpha混合確保Pass的Blend狀態(tài)為Off除非你真的需要。紋理壓縮傳遞給Shader的噪聲圖等資源在導入設置中應選擇適合的壓縮格式如ASTC并勾選Generate Mip Maps這能提升緩存效率。5.2 動態(tài)分辨率與VR/多眼渲染處理URP支持動態(tài)分辨率Dynamic Resolution和XRVR/AR渲染。我們的代碼必須兼容這些情況。RTHandle系統(tǒng)這就是為什么我們堅持使用RTHandle而不是RenderTexture。RTHandle會自動處理動態(tài)分辨率下的縮放。在Blitter.BlitCameraTexture內部它已經正確處理了基于RTHandle的比例和偏移。XR多通道在VR渲染中相機可能會為左眼和右眼分別渲染。我們的Execute方法會對每個眼睛調用一次。renderingData.cameraData中的xr.enabled和xr.singlePassEnabled等屬性可以幫助我們判斷。幸運的是Blitter.BlitCameraTexture和全屏三角形頂點著色器使用GetFullScreenTriangleVertexPosition已經考慮了XR的立體渲染和單通道立體渲染只要我們的Shader正確使用提供的UV函數通常無需額外修改。5.3 性能分析與調試技巧如何知道你的Blit Feature消耗了多少性能Frame DebuggerUnity內置的神器。Window - Analysis - Frame Debugger。啟用后你可以逐幀、逐Pass地查看渲染過程。找到你的CustomBlitPass查看它的Draw Call和狀態(tài)設置。確保沒有意外的狀態(tài)改變如意外開啟了深度測試。ProfilerWindow - Analysis - Profiler。在GPU模塊中查看你的Pass消耗的GPU時間。重點關注RenderPass和DrawCall的耗時。如果耗時異常高檢查Shader復雜度或RT分辨率。自定義Profiler標記我們在CommandBufferPool.Get時傳入的m_ProfilerTag字符串會在Profiler的CommandBuffer采樣中顯示方便定位。一個常見的調試問題畫面變黑或扭曲不正確。檢查RT描述符確保depthBufferBits 0并且msaaSamples與當前相機設置匹配后處理通常為1。檢查Shader編譯錯誤在Console窗口查看是否有Shader編譯警告或錯誤。移動端Shader可能因為使用了不支持的精度或函數而編譯失敗。檢查材質球參數確保在Inspector中材質球的參數被正確設置并且Shader中沒有未初始化的屬性。檢查Blit順序確認你的renderPassEvent是否合理。如果設置得太早如BeforeRenderingOpaques相機顏色目標里可能還沒有內容。6. 進階應用構建一個多Pass高斯模糊系統(tǒng)單一的全屏特效只是開始。許多高級效果如景深、運動模糊、Bloom的預過濾都需要多Pass處理。我們以經典的雙Pass高斯模糊為例展示如何擴展我們的框架。高斯模糊的原理是在水平和垂直方向分別進行權重疊加的模糊。我們需要兩個Pass兩個材質或一個材質的不同Pass Index以及兩個臨時RT。6.1 修改CustomBlitPass以支持多Pass鏈我們重構CustomBlitPass使其能接受一個Material[]數組和一個對應的RenderTexture[]臨時RT數組并按順序執(zhí)行Blit。public class MultiPassBlurPass : ScriptableRenderPass { private Material[] m_BlurMaterials; // [0]:水平模糊材質, [1]:垂直模糊材質 private RTHandle m_CameraColorTarget; private RTHandle[] m_TemporaryRTs; // 用于中間過程的RT public void Setup(RTHandle cameraTarget, Material horizontalBlurMat, Material verticalBlurMat) { m_CameraColorTarget cameraTarget; m_BlurMaterials new Material[] { horizontalBlurMat, verticalBlurMat }; m_TemporaryRTs new RTHandle[2]; for (int i 0; i 2; i) { m_TemporaryRTs[i] RTHandles.Alloc($_BlurTempRT{i}); } } public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (m_BlurMaterials null || m_BlurMaterials.Any(mat mat null)) return; CommandBuffer cmd CommandBufferPool.Get(MultiPassGaussianBlur); RenderTextureDescriptor desc renderingData.cameraData.cameraTargetDescriptor; desc.depthBufferBits 0; desc.msaaSamples 1; // 分配臨時RT for (int i 0; i m_TemporaryRTs.Length; i) { RenderingUtils.ReAllocateIfNeeded(ref m_TemporaryRTs[i], desc, FilterMode.Bilinear, TextureWrapMode.Clamp, name: $_BlurTempRT{i}); } // Pass 1: 從相機目標 - 臨時RT0 (水平模糊) Blitter.BlitCameraTexture(cmd, m_CameraColorTarget, m_TemporaryRTs[0], m_BlurMaterials[0], 0); // Pass 2: 從臨時RT0 - 臨時RT1 (垂直模糊) Blitter.BlitCameraTexture(cmd, m_TemporaryRTs[0], m_TemporaryRTs[1], m_BlurMaterials[1], 0); // Pass 3: 將最終模糊結果寫回相機目標 (或者可以在這里與原始圖像混合實現景深) Blitter.BlitCameraTexture(cmd, m_TemporaryRTs[1], m_CameraColorTarget); context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } public new void Dispose() { foreach (var rt in m_TemporaryRTs) { rt?.Release(); } base.Dispose(); } }對應的你需要創(chuàng)建兩個Shader一個在水平方向采樣相鄰像素進行加權平均另一個在垂直方向做同樣的事。通過控制模糊半徑_BlurRadius和權重可以調節(jié)模糊強度。6.2 性能權衡降采樣與迭代次數全分辨率的高斯模糊非常昂貴。工業(yè)級實現一定會加入降采樣Downsample。在第一個模糊Pass之前先將相機顏色目標Blit到一個長寬各一半的RT中。在這個半分辨率甚至1/4分辨率的RT上進行水平垂直模糊。如果需要更模糊的效果可以將這個模糊后的結果再次降采樣并模糊即迭代。最后將模糊結果上采樣并混合回原圖。這能極大減少需要處理的像素數降采樣到1/4像素數減少為1/16。在RenderTextureDescriptor中設置width和height即可實現降采樣。關鍵在于降采樣本身也是一次Blit操作你可以用一個簡單的雙線性采樣材質來完成。6.3 與攝像機堆疊和渲染紋理相機的配合你的特效不一定只想應用在主游戲視圖。有時你可能想僅對UI層應用特效這需要用到攝像機堆疊Camera Stacking。將你的RenderFeature添加到用于渲染UI的Overlay Camera的Renderer中而不是Base Camera。將特效結果輸出到一張單獨的RenderTexture比如用于畫中畫、監(jiān)控屏幕等。只需在Execute方法的最后一步將Blit的目標從m_CameraColorTarget改為一個你預先創(chuàng)建好的RTHandle指向一個自定義的RenderTexture。然后你就可以在其他地方如UI RawImage使用這張紋理了。這需要你在Pass的Setup方法中增加一個目標RT的參數并在Feature的配置中暴露一個RenderTexture字段供用戶綁定。這打開了無限的可能性比如將場景的特定效果渲染到一張紋理上再在后期進行二次處理。7. 避坑指南與常見問題排查即使按照指南操作你可能還是會遇到一些詭異的問題。這里是我在實踐中總結的“血淚史”。7.1 問題速查表問題現象可能原因排查步驟與解決方案屏幕全黑1. Shader編譯錯誤。2. 材質球未賦值或Shader丟失。3.renderPassEvent設置過早相機目標無內容。4. CommandBuffer未提交或執(zhí)行順序錯誤。1. 查看Console的Shader編譯錯誤。2. 在Inspector確認Feature的材質球引用有效。3. 嘗試將renderPassEvent改為AfterRenderingPostProcessing測試。4. 在Frame Debugger中查看你的Pass是否被正確加入和執(zhí)行。特效閃爍或時有時無1. 臨時RT每幀被錯誤地重新創(chuàng)建導致內容丟失。2. 多相機渲染時Feature未正確為每個相機配置。1. 確保使用RenderingUtils.ReAllocateIfNeeded并檢查描述符是否每幀都在變化。2. 在AddRenderPasses中檢查renderingData.cameraData.cameraType確保只為CameraType.Game或你需要的相機類型添加Pass。性能低下GPU耗時高1. 在全分辨率下進行多Pass復雜模糊。2. Shader中使用了高精度float和復雜數學運算。3. 未啟用GPU Instancing或SRP Batcher對Blit Pass本身無效但影響整體。1. 實現降采樣模糊。2. 將Shader中的變量精度改為half簡化計算。3. 確保特效只在需要時啟用通過腳本控制Feature的激活。在Android/iOS上不顯示或崩潰1. Shader使用了ES2不支持的語法或精度。2. 紋理格式不被移動設備支持。3. 使用了過大的臨時RT。1. 為移動端編寫簡化的Shader變體使用#ifdef SHADER_API_GLES3等宏。2. 使用SystemInfo.IsFormatSupported檢查紋理格式。3. 降低RT分辨率或使用GraphicsFormat.R16G16B16A16_SFloat等更通用的格式。與URP內置后處理沖突如Bloom失效1.renderPassEvent順序設置不當覆蓋或破壞了后處理所需的數據。1. 理解內置后處理的順序可在Frame Debugger查看。通常自定義后處理放在AfterRenderingPostProcessing是安全的。如果需要在之前確保不要破壞顏色/深度緩沖的布局。畫面出現拉伸或扭曲1. Shader中UV計算錯誤未考慮平臺差異和動態(tài)分辨率。2. 全屏三角形頂點著色器使用不當。1. 確保在片元著色器中使用了處理過平臺差異的UV如通過GetFullScreenTriangleTexCoord獲取的UV。2. 檢查Blitter.BlitCameraTexture調用是否正確它應自動處理RTHandle的縮放和偏移。7.2 關鍵心得與最佳實踐擁抱RTHandle系統(tǒng)這是URP管理的未來它能自動處理動態(tài)分辨率、XR和渲染縮放避免你自己計算棘手的視口和比例問題。明確資源生命周期在RenderPass的構造函數或Setup中分配RTHandle在Dispose中釋放。確保CommandBuffer從池中獲取并歸還。這能有效避免內存泄漏和GC壓力。善用Frame Debugger這是你理解URP渲染流程和調試自定義Pass的最強工具。任何畫面問題首先打開它看看你的Pass輸入輸出是否正確。為移動端做減法移動端不是PC。默認假設你的Shader需要跑在Adreno 306上。使用half精度避免分支和循環(huán)使用查找表LUT替代復雜實時計算壓縮紋理降低采樣次數。參數驅動而非硬編碼將強度、顏色、紋理等所有可調節(jié)項都暴露給C#并通過材質屬性塊MaterialPropertyBlock或直接Material.SetXXX在每幀傳遞。這為美術和策劃調整效果提供了巨大便利??紤]可關閉性不是所有平臺或所有時刻都需要全特效。為你的RenderFeature提供一個active開關或者通過腳本根據設備性能動態(tài)調整模糊迭代次數、降采樣比例等參數。構建一個穩(wěn)定高效的URP Blit Render Feature遠不止復制粘貼幾行代碼。它要求你對URP的渲染流程、資源管理、平臺差異和性能優(yōu)化有系統(tǒng)的理解。從最簡單的單Pass顏色調整到復雜的多Pass時間性特效如運動模糊其底層架構都是相通的。希望這篇指南提供的不僅是一個可用的模板更是一套解決問題的方法論和工具箱。當你再遇到“這個全屏效果怎么做”的問題時你可以自信地拆解需求選擇合適的插入點管理好渲染資源并寫出跨平臺健壯的代碼。這才是從“會做”到“做好”的關鍵一步。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月综合激情综合久| 色五月激情问网站| 99色色网| 永久精品| 热成人网| 激情婷婷内射| 九九人人操| 国产午夜成人AV在线播放| 五月婷婷激情综合拍| 国产免费一区二区三州老师F1F1| 99色综合久久| 久久久com| 91色情播放| 青草网在线观看| 亚洲 成人 电影av在线观看| 亚洲国产精品二二三三区| 日日干日日| 高清无码一区二区三区四区| 最新热中文字幕| 精品九九婷婷| 亚洲视频久久| 日本三级片片| 色五月激情问网站| 色婷婷亚洲综合网站| 天天综合在线网| 激情五月久久| 九九视屏| 久久大香蕉同僚| 色性五月天| 五月色婷婷亚洲 | 五月婷婷黄色| 丁香五月婷婷AV| 激情丁香五月婷婷啪啪| 色婷婷狠狠干芒果TV| 丁香六月视频| 影音先锋人妻出差| 婷婷色情六月| 五月激情天| 婷婷开心激情综合五月天| 五月丁香六月婷婷综合在线| 亚洲一个色| 97人人操在线| 丁香五月性| 激情九色| 999婷婷综合| 六月婷婷最新网址| 1024操逼视频| 婷婷在线精品| 久久人妻乱子伦| 色色网站免费在线视频| 激情综合激情五月| 狠狠色噜噜狠狠| 婷婷五月天激情综合深爱| 六月色日韩| 日韩欧洲亚洲| 五月婷婷六月丁| 婷婷激情中文综合| 六月婷色六月| a69在线视频| 97色在线观看视频| 婷婷综合五月| 午夜不卡久久精品无码免费| 亚洲AV影片在线观看| 色999亚洲人成色| 色情五月综合婷婷| 婷婷丁香日韩五月| 色五月激情综合| 91精品又长又大又粗又爽又猛| 婷色视频| 色婷婷视频| 色丁香综合影院| 激情小说五月天中文字幕| 2020久久婷婷五月| xxx.色婷婷| 五月亭亭性| 免费观看的婷婷五月视频在线| 五月婷婷在线视频观看| 久久婷婷综合五月天| 99久久性爱| 欧美精品999| 91五月天| 视频久久9| 婷婷久久99| 色色色色热热| 五月花激情| 色玖玖综合网| 99视频在线9| 熟妇天天综合| 那里有AV网址| 免费观看的av| 国产在线激情视频| 亚洲熟女色| 异能之下短剧免费观看全集| 人人看人人摸人人| 激情五月久久| 激情五月天网站| 五月色天五月色| 99久在线精品99re8热| 影音先锋一区| 一区=区操屄高清大全av| 色停停影院五月天| 色色色在线播放| 色狠狠色噜噜AV天堂五区消防| 香蕉婷婷色五月| 强壮公让我夜夜高潮A片视频| 成人五月天。COM| 久久婷婷五月综合色奶水99啪| 激情综合啪啪啪| 99热只有精品在线观看| 五月亭亭六月天| 不卡成人免费| 婷婷五月天伦理| 久久婷婷五月天激情| 99爱爱| 爱iii做iiii日日| 久久停停超碰| 狼人狠狠操| 欧美成人AAA片一区国产精品| 九色地址91视频| 这里只有精品视频国产| 一起草AV| 色五月综合网| 武则天精品久久| 丁香五月激情五月| 夜丁香五月婷婷| 久久久久久欧美精品se一二三四| 香蕉综合网| 99热这| 中国丰满熟女A片免费观| 婷婷午夜综合| 91九色国产熟女| 久久五月婷综合| 五月婷婷伦理| 欧美日韩999| 91久久婷婷| 婷婷俺去也| 五月婷婷久久大片| 亚洲国产成人裸舞| 免费色婷婷| 5月色亭亭视频| 婷婷五月AV| 91精品久| 免费看成人747474九号视频在线观看| 五月婷婷97| 天天射综合网夜夜操| 五月天激情国产综合婷婷婷| 五月丁香网中文字幕| 婷婷五月天影院| 成人国产网站| 99热只有| 4399亚洲视频| 六月婷婷激情| 婷婷五月色影视先锋| 丁香激情五月| 五月丁香激情综合六月涩涩爱| 亚洲中文乱字字幕在线永久| 小视频在线亚洲| 五月丁香综合在线| 99热这里只有精品13| 麻豆WWWCOM内射软件| 激情综合青草| 婷婷五月综合国产精品| 五月天精品视频| 五月丁香婷婷老司机| 亚洲欧州色情在线观看| 东京热免费视频网站| 日韩色五月| 日本天堂久久| 99热99色| 狠狠色狠狠色综合日日91| 欧美大肥婆大肥BBBBB| 亚洲射激情| 少妇熟女视频一区二区三区| 婷婷噜噜| 免费黄色视频网址| 成人国产欧美大片一区| 久久婷婷视频| 夜夜躁狠狠 | 26uuu美女三级视频| 久久五月丁香| 99色热综合| 婷婷丁香精品视频在线观看| 9久国产| 伊九九三级区| 国产精品成人网址| 五月激情综合网| 婷婷久久五月| 丁香花婷婷五月天| 激情五月丁香五月| 日本丁香五月| 久久伊人日日夜夜| 91在线日| 天天色五月婷婷91久久久久久久| 日本超碰在线| 狠狠操婷婷| av无码电影| 五月丁香婷婷六月| 天天爽夜夜爽夜夜爽精品视频| 999激情视频| 亚洲婷婷五月天| 久久视频九九视频| www久久99com| av线电影| 丁香婷婷影院| 99精品在线| www.26uuu.com亚洲电影| 都市激情亚洲| 香蕉网婷婷| 超碰免费成人| 激情五月天在线视频| 免费观看亚洲AV片| 成人网站av免费网站推荐| 亭亭五月丁香五月天激情| 人妻videos人妻高清| 91亚洲视频| 久久久久9| 天天日夜夜操五月| 国产Va视频| 98色丁香五月婷婷综合网| 99操碰| www.夜夜| 婷婷五月花丁香| 五月六月丁香激情视频| 丁香五月91| 在线中文字幕免费视频| 99国产精品白浆在线观看免费| 六月婷婷五月天| 久久婷婷五月国产色综合激情| 婷婷五月天渟渟| 五月婷婷影院| 9999久久久久| 色哟哟精品| 天天透天天摸天天舔| 五月婷色| 亚洲五月天第一综合干| 99久久婷婷国产综合精品草原| 香蕉曰比| 1024AV视频| 六月丁香啪啪| 婷婷综合网| 婷婷午夜精品久久久| 色五月在线视频观看| 4399在线观看免费高清电视剧| 亚洲乱码w在线观看| 日韩性爱AV| 亚洲无码99| 翔田千里 50岁 无码| 深爱婷婷丁香五月激情| 夜夜综合色| 激情久久天天| 天天舔天天摸视频| 狠狠激情五月天| 亚洲 小说 欧美 激情 另类| 婷婷色五月色妇| 新99思思视频| 天天舔天天| 日韩无码人妻一区二区三区综合| 色婷婷成人在线| 成人色五月天婷婷| 色青青五月| 亚洲性爱99| 久久er视频6| AV电影在线播放| 久久9视频| 日韩 中文 欧美| 97在线/亚洲| 色色五月天婷婷丁香| 欧美一线视频| 色色操| 永久的网站AAAA | 超碰日日操| 五月天天堂久久| 99久久婷婷五月综合| 99re久热只有精品6在线直播.com| 天花AV无码| 婷婷第一页| 亚洲成人av在线播放| 天天综合久久| 亚洲综合网区| 狠狠久综合| 婷婷五月在线播放| 色色综合网站| 岛国在线观看91| 亚洲丁香婷婷| 中文AV在线播放| 久久丁香五月综合六月激情红杏视频| 成片免费播放| 91久久九久久九久久九久久九久久| 色播五月综合网| 久久婷丁香五月| 99久久久久| 日韩三级片一区二区| 欧美黑人巨大猛烈cuckold| 亚洲九九九九| 婷婷久久精品| 91919191919久久成人视频| 99在线资源视频| 殴美日韩成人| 777丁香六月青青草婷婷综合久月| 台湾佬天天日丁香婷婷五月天| www.99情趣网| 五月天婷婷色| 激情婷婷在线中文字幕| 99久久er| 亚洲五月花| 国产毛片精品一区二区色欲黄A片| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 噜噜综合网| 丁香五月乱中文字幕| 在线中文亚洲| 激情精品久久| 国产日日夜夜操| 婷婷五月天小说| 99在线免费观看| 久久伊人婷| 亚洲综合视频天天精品| 九九色图| 人妻肉射免费观看| 丁香五月另类色婷婷麻豆| 无码AV免费精品一区二区三区| www.爱婷婷.com| 久久色五月天| 翔田千里 50岁 无码| 荫道BBWBBB高潮潮喷| 五月亭亭欧美女人| 日韩精品无码99| 在线播放成人网站| 九九热99熟女| 停停五月丁香| 色涩视频久久| 思思热精品免费视频| 欧洲不卡视频| 九九99男女视频在线观看| 日操| 五月婷婷六月丁香在线| 激情亚洲婷婷| 婷婷娌伦网| 九九精品9| 久久五月天精品视频| 丁香五月天之婷婷影院| 另类图片五月天婷婷| 欧美天天五月丁香免费观看| 色五月婷婷亚洲| 六月婷婷网| 蜜桃婷婷丁香| 久久九九激情五月天 | 婷婷激情图片| 青青日韩| 五月婷婷综合网| 人妻激情久久| 99热成人在线观看| 九九色黄色| 激情五月婷婷综合网| 五月丁香久久| 五月丁香va| 深爱激情五月网| 色碰碰| 91超级碰在线| 人人摸人人操人人爽| 五月天播播| 精品一区二区三区三区| 饮料下药迷倒漂亮女同事强干| 97超级碰人人| 99久久玖玖| 婷婷丁香五月综合久久| 丁香五月婷综合网| 亚洲无aV在线中文字幕| 91热在线| www久久99com| 99热网精品| 99色视频在线观看| 日本在线观看aaa 99| 婷婷综合爱| 免费色婷婷| 九九精品在线观看视频6| 婷婷久久欧美| 99啪99| 男人天堂99| 五月婷婷色| 丁香婷婷五月天网站| 婷婷五月天激情网| WWW.色婷婷.COM| av婷婷丁香| 夜夜躁爽日日| 亚洲操操| 欧美A片在线视频免费观看| 操你av| 久久久九九视频精品18| 亚洲日日操| 美女天天艹人人爽| 丰滿爆乳一区二区三区| 久久性刺激| 丁香五月成人| 内射 无码 伊人| 天天干天天拍| 这里只有精品免费视频| 全网最新网黄大秀直播高清,主播国产录屏在线 | 丁香色六月婷婷| 欧美久热| 最新国产AV| 九九热re99re6在线精品| 91干视频| 免费黄网不卡AV| 五月婷婷之综合激情| 久久婷婷综合国产| 极品人妻VIDEOSSS人妻| 99爱在线视频| 狠狠色情婷婷| 色五月色五天色情网| 91色久| www.五月天社区| www.sebowuyue| 久久色情| 色噜噜狠狠色综无码久久合欧美| 26uuu色噜噜精品一区| 啪啪日本欧美| AV性爱网| 色色五月婷婷久久| 久久亚洲婷婷| 丁香五月在线伊人| 激情五月婷黄版| 人人干av| 97色女人在线| 色五月婷婷激情| 五月激情丁香五月| 啪啪操操| 激情五月四色| www.99视频| 婷婷五月天小说| 丁香桃色综合网| 色综合中文色综合网| 大地资源色婷婷视频在线 | 狠狠色婷婷| 五月天六月婷婷电影| 97在线精品| 97超碰色| 97日本在线播放| 五月丁香| 五月丁香六月激情综合| 国产视频婷婷| 婷婷六月色播| 激情网第四色| 成人片久久网站| 久热 91| 久久免费试看120秒| 香蕉久久国产AV一区二区| 99综合久久| 五月激情婷婷国产精品久久久久久| 五月丁香啪啪激情| 天天噜天天爱| 【乱子伦】黄色| 日韩亚洲视频| 狠狠色噜噜狠狠狠狠综合| 成人精品网站在线观看| 香蕉久久五月| 91seAV| 欧美色男人网站| 噜噜噜狠狠色综合| 激情五月综合网| www.激情五月| 五月天综合在线| 五月激情偷拍| 五月丁香网站| 激情五月综合| 亚洲av免费在线| 狠狠五月激情丁香六月| 久碰久操| 永久思思热在线| 五月天综合网| 狠狠久久婷五月综合色| 蜜乳A√| 99热精在线九九久久保| 色色综合日韩| 俺五月| 人人干AV| 天天日本夜夜谢| 夜夜夜夜撸夜夜操| 香蕉人在线香蕉人在线 | 99这里只有精品视频| 六月丁香色婷婷| 综合成人小说婷婷| 婷婷久久五月| 中文毛片无遮挡高潮免费| 欧洲色区| 婷婷六月久久| 九九婷婷综合| 丁香婷婷丁香五月欧美人| 91精品电影18T| 日批在线看| 日日舔夜夜操| 任你爽精品免费视频6| 成人国产综合| 亚洲精品一区中文字幕乱码| 色色网91| 日本综合久久| 色综合网综合| 日韩综合久| 99精在线| 秋霞九九无码| 五月丁香啪啪啪综合网| 91啪级电影| 婷婷五月无码| 婷婷五月在线视频| 久久艹网| 梁铮版蜘蛛女在线观看| www.婷婷五月| 99无码视频| 亚州在线中文字幕| 亚洲视频五区| 极品五月天| 婷婷刺激综合| 亚洲宗合激情| 91九色首页| 天天操,天天插| 蜜臀99精品| 亚洲中文字幕在线观看| 九九色院| 久久有码| 五月丁香婷婷成人网| 婷婷丁香18| 婷婷五月丁香六月| 亚洲色无码| 久99热| 婷婷丁香精品视频在线观看| 欧美A级网站| SS丁香五月婷婷| 99久久性爱| 超碰丁香五月| 欧美色六月婷婷| 99热天堂| 97超级碰碰碰久久久| 五月丁香六月综合情在线观看| 99热精品一| 99re热视频这里只精品| 91丁香| 校园激情 亚洲| 综合五月婷婷| 婷婷丁香成人五月天| 激情婷婷丁香五月| 五月天婷婷色综合| 午夜爱爱网站| 日日色综合| 97caop| 九九精品在线视频观看| 激情图片久久| www. 五月. com| 亚洲久久婷婷| 日本视频不卡123区| 九九热在线观看6| www夜夜| 国av网| 26uuu国产精品| 亚洲色婷婷| 91人人操人人| 99狠狠色| 久久9热| 婷婷五月天小说网| 久久密臀婷婷| 色婷五月天综合网| 草榴成人影片| 俺也高清无码高清视频| 韩国不卡AC视频| 五月综合六月丁| 六月婷婷激情| 深爱开心激情网| 超碰成人免费| 99热国产这里只有| 99ER热精品视频| 一区二区三区四区五区| 人妻体体内射精一区二区| 桃色五月婷婷| 色99色| 欧美五月丁香在线| 成人精品视频99在线观看免费 | 丁香97综合| 婷婷五月天日日日干干干| 99久久人妻精品无码二区| 六月婷伊人| 国产又粗又大又爽又黄| 亚洲色小说在线综合| 婷婷色色综合| 天天色天天爱天天爱天天爱y| 青青草原爱爱网| 九九视频在线| 午夜一区| 五月婷婷丁香六月| 五月婷婷激情四月| 97超级操操| 五月 成人 婷婷| 在线日韩视频| caop视频| 婷婷激情综合| 99热r| 亚洲乱码日产精品BD| 婷婷开心综合人妻小说网址| 激情婷婷22月间| 五月天成人在线播放| 日韩另类| 性爱激情五月| 丁香五月激情网| 九九色色| 色99久草在线| 天天做天天爱天天高潮| 久久综合激情五月天| 丰满少妇猛烈A片免费看观看| 激情五月天色婷婷| 99热亚洲| 精品少妇人妻AV无码专区偷人| dingxiangtingtingliuyue| 狠狠草网| 99热综合| 五月丁香综合激情| 国产色色网址网站| 亚洲一级AV在线免费播放| 久久婷婷色| 欧美97p| 殴美日韩成人| 桃色成人网| 五月欧美丁香在线观看| 丁香五月激情天AV无码| 精品国产a| 五月婷色| 久久538| 丁香五月婷婷婷婷欧美综合| 九九精品re免费视频| 超碰碰碰碰| 另类激情五月天| 婷婷伊人中文字幕| 毛片蕉地一二| 日本欧美成人片AAAA| 欧美色色色色色| 色婷婷久久综合久色| 丁香五月九九| 久在线88综合| 婷婷中文字幕| 91精品久久久久久久久| 亚洲小视频| 婷婷97狠狠干| www.婷婷六月天| 亚洲啪啪自拍| 欧美成人一区二区三区在线视频| 97碰| 天天透天天爱| 色天天综合成人网| 深夜婷婷五月丁香| 99视频在线| 婷婷综合九月| 26uuu成人网| 婷婷丁香六月| 直接看的AV| 色婷六月| 天天干电影| 亚洲一区二区无码蜜乳av| 在线va网站| av久热| 五月天婷综合| 欧美操我| 色婷婷六月综合| 99热免费精品| 国内久久亭亭| 五月天婷婷激情网| 亚洲AV永久无码影院黑人| 日韩黄色中文字幕| 久久精品99国产精品日本| 99色婷婷视频| 国产成人av在线| 黄网在线观看免费| 视频一二区| 五月天成人网在线观看| 色五月激情五月天| 色中色综合| 婷婷五月天在线观看免费| 五月欧美色色五月| 色小说五月婷婷| 涩涩五| 五月丁香婷婷人体| 色五月色五天色情网| 亚洲射激情| 色久五月| 日日操日日爽| 深爱婷婷网| 丁香五月婷婷激情蜜桃| 五月色综合网| 99久久婷婷五月综合| 思思99久久| 日本一级| 五月亭亭直播| 国自产拍偷拍精品啪啪一区二区| 亚洲情综合五月天| 任你弄在线视频免费| 五月天色软件| 亚洲av网址| 久久9热| 超碰在线看| 欧美五月丁香啪啪响视频| 丁香婷婷五月天色综合| 五月天在线视频尤物视频在线看| 69色色视频| 五月综合激情图片 | 久人人操| 久草A片| 五月丁香怕啪啪| 婷婷丁香激情五月| 久狠狠狠| 丁香五月天综合| 久久五月天激情| 91久久免费| 五月香婷婷| 丁香综合伊人AV| 岛国AV网| 婷婷色六月| 五月天社区婷婷| 婷婷五月天中文字幕| 无码se| 五月婷婷欧美激情| 五月婷婷色播| 久热一区| 国产.亚洲.欧洲视频在线| 久久婷婷激情五月天一区二区| www.日韩艹| 波多野结衣AV无码Porn| 亚洲妇女熟BBW| 十区AV| 77799热| 五月丁香六月在线| 婷婷五月天色| 亚洲99在线| 丁香伊人综合| www九九| 久久婷婷七月丁香| 中文字幕黄色片| 亚洲成人黄色网| 久久三级视频| 色综合久久88色综合天天| 婷婷五月69| 99精品热| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 六月婷婷之青青草| 99国产精品久久久久久久久久久 | 丁香婷婷九月| 涩婷婷五月天| 少妇高潮呻吟A片免费看软件| 久久五月网| 国产精品久久99| 爱射综合| 国精产品一区二区三区| xx色综合| 婷婷香五月天| 激情综合色婷婷啪啪六月天| 26uuuavcom| 五月婷在线观看| 婷婷国产五月天17c| 亚色网站小视频| 激情综合网址| 五月丁香人妻| 久久九九视频| 超碰99热精品在线| 亚洲狠狠婷婷综合久久久| 亚洲精品亚洲人成人网| 久久一级片| 这里只有精彩亚洲视频推荐| 国产FREESEXVIDEOS性中国| 91 九色 熟女| 人人97操| 99色在线观看| 国产精品第一国产精品| 黄网在线播放| 九色视频91| 99亚洲视频| 色五月激情五月开心五月| 久热伊人91| 婷婷五月天色网久| 欧美 日韩 人妻 高清 中文| 丁香六月AV| 99热6精品| 亚洲欧美成人在线| 人人爱操| 91中文在线| www.婷婷.com| 五月婷婷六月丁香激情深爱| 五月丁香色| 婷婷五月av| 综合色播| 99视频色在线观看| 99精品热| 丁香色六月婷婷| 欧美日综合| 国产人妻777人伦精品HD| 深爱激情九九五月天 | 伊人高清无码| 色性日本| 天天透天天干| 噜噜操操| 女性自慰系列第五页| 婷婷激情四射| 丁香五月天色| 三年高清大片免费观看国语| 五月天婷婷开心| 丁香五月天大香蕉啪啪| 怡红院一二三| 九九人人自拍| 丁香五月在线| 色情五月天se| 高清免费在线视频| 亚洲婷婷欧美婷婷| 97久久人人| 精品人妻伦一二三区久久| 激情丁香五月激情婷婷| 97成人在线视频| 丁香激情五月| 99久久99视频只有精品| 日韩久久成人| 停婷丁五月在线| 另类图片天天影视在线观看| 国产亚洲精品久久久久久牛牛| 五月天久久成人| 91精品视频男人的天堂| 日韩操人| 色婷婷丁香五月天激情综合网| 香蕉五月婷婷| 久久伊人婷婷| www好屌操| 99精品女人天堂| 99视频久久| www.亚洲激情| 成人AV在线网站| 99ER热精品视频| 婷婷五月天伊人| 亚洲俩性性爱图片久久第六页| 色色9 9| 婷婷五月电影院| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 色久免费| 婷婷六月色开| 久久ri精品| 久久九区| 99色免费视频| www.激情五月天。com| 大香蕉婷婷婷| 天天天干夜夜夜操| 激情综合激情五月一起草| 97久久超碰| 成人va在线| 亚洲AV免费在线| 五月天成人综合| 激情五月六月婷婷综合啪啪| 五月婷婷深深爱| 91se视频| 久久婷婷视频| 五月丁香色综合| 操逼福利视频| 丁香六月婷婷开心| 99久久五月婷婷| 六月天婷婷| 久久婷网| http://www.sd-xiangsu.com/| 色色五月天婷婷| 无码动漫AV| 丁香六月在线综合| 五月天婷婷综合网| 五月丁香综合激情网| www.ppypp| 精品国产va久久久久久久| 玖玖爱资源站| 亚洲av无码精品色午夜| 操B无码视频国语| 色婷婷综合视频| 激情伊人| 色婷婷超碰| 色色射| 99热这里只有精品一区| 日本无va视频| 综合激情伊人影视在线| 人伦30P| www.AV在线| 丁香av网| 丁香九月激情在线视频| 精品一二三区久久AAA片| 久久99久久99久久99人受| 在线中文亚洲| 天天色视频| 丁香五月另类小说| 女人天堂 AV| 婷婷五月天性| 热99久久这里只有精品| 韩国情人在线电视剧免费观看高清版全集| 五月丁香综合激情网| 黄色五月婷| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 久久在线视频免费观看| AV中文在线| 五月丁香六月婷| AAA久久| 97人人草| 噼里啪啦完整版中文在线观看| www久| 俺也去色| 久久综合99综合| 色色欧美。| 五月四色激情| 亚洲视频另类| 伊人综合婷婷| 天天爱天天做天天操| 六月丁香好婷婷| 另类视频丁香五月| 九九视频这里只有精彩| 精品亚洲VA网站| 久久五月天激情| 精品人妻一区二区三区四区不卡在| 婷婷色情六月| 婷婷成人五月天| 67194成I人在线观看线路1| 99ri精品视频在线观看| 婷婷综合视频| 日韩成人影片网站| 殴美97色| 99手机在线精品视频| 久久五月丁香婷婷| 久久婷婷五月国产激情综合片| 婷婷五月丁香在线观看| 日日操,天天操| 五月亭亭性| 激情久久五月天| 99热色精品| 91蝌蚪窝视频在线| 国产伊人大香蕉| 五月丁香无码| 久久五月天合网| 伊人狠狠干| 看全色黄大色大片| 色情五月丁香| 色婷婷精| 激情五月天色色网| 思思久久思思| 九九热免费视频| 99久久这里只有精品| 亚洲三A| 色噜久| 丁香色五月婷婷17C| 99热首页在线30| 思思热在线视频精品| 五月婷婷香| 26uuu成人网| 99精品国产热久久91色欲| 激情纯色婷婷五月天在线不卡视频| 一级黄色尤物综合视频手机在线观看| 91人人爽狠狠狠| 精品爱欲五| 色情久久久| 五月丁香久久激情网| 99操免费视频| 中文字幕中文有码在线| 91热视频色网站| 最新精品视频99| 欧美日本黄色| 色五天综合| 九九操操| 99热免费精品| 五月婷在线| 激情五月天的婷婷| 日本九九热| 99热精品在线播放| 免费看片在线观看| 丁香五月图片| 亚洲AV另类| 婷婷丁香色五月天久久88| 五月婷婷视频在线观看| 变态 另类 在线| 99亚洲天堂| www,天天干| AA片在线观看视频在线播放| 久久综合五月天| 激情综合色播| 精品人妻午夜一区二区三区四区| 久综合| 天天爽天天草| 日本精品人妻无码77777| 超碰99久久| 激情五月六月婷婷| www.色五月| 99婷婷| 9久热在线视频精品| 久久婷五月影院| 森林影视大全,最好看的2019年视频| 激情综合网址| 色五月自偷自拍婷婷婷婷| 天天开心AV色综合婷婷五月天| 依人大香蕉| 九色无码| 婷婷五月色天| 九色激情| 99热99这里免费的精品| 色婷婷基地 | 区区久久妻| 成人五月丁香社区| 97日在线视频| 99热免费观看| 99在线爽| 99久久综合| 色婷婷精品视频在线播放| 婷婷激情五月综合基地| 1024日韩| 天天噜天天插| 99re这里| 丁香五月激情宗合| 天天操人人干| 激情五月丁香婷婷夜夜操| 激情五月综合| 九九热这里只有精品7| 99色中文| 玖玖色综合网| 亚洲国产成人综合| 美女激情综合| 日韩成人网址| 久久98| 大香蕉啪啪啪| 人妻性爱av网站| 亚洲五月婷| 久久久久久久久久久久久久人妻视频| 欧美激情五月天| 久久杏爱视频| 一级AV片| 五月天综合婷婷| 18久久| 久大香蕉| 色优久久| 精品人妻伦九区久久AAA片| 久久久月丁香| 级人人91| 日韩五月丁香| WWW色色色COm| 激情第四色| 亚洲综合色丁香婷婷六月| 91re色综合视频| 五月天婷婷综合免费| 99久久www| 亭亭五月丁香五月天激情| 丁香五月激情欧欧美| 日韩欧美成人一区二区三区| 五月天激情小说欧美激情| 激情婷婷久久| 丁香五月天激情| 亚洲激情色色| 操人精品| 思思热精品在线| 九九热99精品在线| 97操男人的天堂| 激情99热| 五月夜丁香| 成人VAV视频在线观看| 久久多色| 日韩一66精品| 五月天丁香看婷婷| 九九碰九九爱97| 激情五月六月丁香| 91在线日本| 99九九久久| 色色综合网络| 丁香九月婷婷| AV在线免费观看不卡| 婷婷五月天网址| ...婷婷国产成人亚洲日韩| 五月婷婷综合色啪首页| 色五月婷婷久久| 日日夜夜噜噜爽爽| 99干日本| 久久无码成人| 亚洲av成人在线| 丁香五月综合图片在线观看| 色五月婷婷自拍| 精国产品一区二区三区A片| 久久性爱视频网站| 久久综合激情五月天| 老师把我爽高潮了免费A片| 色噜噜狠狠一区二区三区| 婷婷六月视频| 天天爽天天爽天天爽天天爽天天爽 | 久久一操| 人妻少妇色综合| 饮料下药迷倒漂亮女同事强干| wuyuedingxiang99| Caop在线| 欧州婷婷五月天综合| 成人在线视频网| 99热中文字幕久久| 秋霞午夜理论| www.色综合.com| 123日本不卡在线| 五月天婷婷成人网| 五月天婷婷丁香导航| 五月丁香六月婷婷综合伊人| 激情综合婷婷| av第一二区| 婷婷久久色五月婷婷久久久| 五月天久久婷婷| 五月婷婷丁香五月| 五月天婷婷五月| 五月色情婷婷开心五月天| 91九色精品| 99五丁香月| 色婷婷基地 | 99精品亚洲| 成人丁香色| 成人开心五月天| 日日懆天天懆| 狠狠干2007| 99re99在线看| 超碰在线9| 91xxxx九色| 五月婷婷综合色啪首页| 国产在线激情视频| av大香蕉| 五月天激情综合| 九九碰九九爱97超碰| 欧美色色色色色色| 五月亭亭性| 成人五月天视频播放| 久久只这里有精品| 另类婷婷丁香| 电影蜘蛛女| 婷婷国产综合| 丁香六月啪| 超碰大香蕉网| 色九月欧美| 大香蕉久久婷婷| 99在线视频免费| 九九九午夜视频| 99视频91| 中文字幕成人影视| 中文在线成人| 99热插| 国产精品视频| 人妻久久婷婷| AV在线观看网站| 99啪| 欧美操人| 激情综合五月婷| 五月丁香999| 91女人18毛片水多国产| 日韩99无码| 婷婷五月丁香四射| 中文字幕久久婷九女同| ady狠狠入| 97碰在线免费观看| 久久香蕉丁香| 91婷婷色五月| 91婷婷| 天天爽天天爽天天爽天天爽天天爽天天爽天天 | 婷婷色在线| 九九热最新地址| 五月婷婷六月丁香| 中文字幕日本最新乱码视频| 五月丁香本色在线观看| 丁香六月婷婷缴情欧美| 久久38视频| 99人人干人人| 五月丁香成人网| 六月婷五月丁香| www.26uuu.com亚洲电影| 久久黄色片| 99久超碰| 五月丁香综合激情| 国产又爽又猛又粗的视频A片| 狠狠色丁香乆乆| 久激情| 亭亭色色五月天| 婷婷五月天六月综合| 久久激情五月网| 久久精品99久久久久久| 亚洲五月婷婷| 91色性感五月婷婷丁香| 亭亭五月基地在线| 亚洲成人在线播放| 五月天自拍视频| 天天爱天天做天天操| 六月婷婷综合| 成人无码髙潮喷水A片| 91精品综合久久久久久五月天| 91丁香五月| 在线区区区| 婷婷播5月| 99思思| 中文字幕不卡网站| 国产熟女一区二区三区五月婷| 丁香五月综合色婷婷| AV79| 99热91| 亚洲狠9| 婷婷无码视频| 五月婷六月丁香| 人人97碰| 五月婷婷综合激情小说| 五月激情网站| 五月天激情Av| 色99自拍| 婷婷伊人久久无码色五月| 久艹大香蕉| 婷婷玉月丁香五月在线视频| 99爱视频| 狠狠五月婷婷| 五月婷婷性爱| 91碰视频| 婷婷五月综合网| 欧美日本韩国亚洲| 99久久久久久| 色永久| 色婷婷丁香五月| 婷婷娌伦网| 99精品7| 天天日天天爽| 九九偷拍网| 丁香五月天激情小说| 91干| 丁香六月色| 久久精品永久免费| www.国产色| www.五月婷| 五月天婷婷开心| 婷婷综合五月| 五月天婷婷激情在线色图| 五月丁综合在线观看| 久久久18| 日本乱论99| 天天爽夜夜爽夜爽精品| 五月丁香婷婷综合| 182TV大香蕉| 亚洲第一精品成人999久久精品| 久久婷婷亚洲| 久久视频婷婷视频| 婷婷五月天激情小说| 99色人| 奸逼视频| 婷婷伊人网| 日日噜噜夜夜狠狠久久丁香六月| 久久久久丁香婷婷五月天| 色吧婷婷五月亚洲| 亚洲精品乱码久久久久99| 91精品久久久久久| 色色九九五月天| 五月天亭亭俺也| 婷婷五月丁香色色| 最新五月天婷婷影| 五月丁香激情综合| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | www.五月天社区| 婷婷色色网站| 日韩婷婷五月天| 噼里啪啦完整版中文在线观看| 国产超碰在线| 亚洲六月色| 黄网在线免费观看| 欧洲不卡视频| 99热综合在线| 综合久久9| 五月婷婷三级| 亚洲无码另类| 丁香激情网| 色婷婷久久| 激情视频婷婷五月花| 99热精品在线观看| 99色色热热| 九九热精品视频在线观看| 性爱AV天堂| 91操操| 五月婷婷综合色啪首页| 久久久久久五月天|