3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上)

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

目錄

1、前言

2、準備工作

3、Raytracing Shader

3.1、Raytracing Shader整體框架介紹

3.2、全局變量

3.2.1、渲染目標Unordered Access 2D紋理變量

3.2.2、三角形網格變量

3.2.3、常量緩沖

3.2.4、加速結構體變量

3.3、基本光線追蹤渲染過程框架

3.4、光線發射函數(Ray Generation)

3.4.1、MyRaygenShader函數

3.4.2、GenerateCameraRay函數

3.4.3、TraceRay函數

3.5、系統變量內嵌函數(Raytracing HLSL System Value Intrinsics)

3.6、最近命中(碰撞)函數(Closest Hit)

3.7、未命中函數(Miss)

4、Raytracing Shader編譯和Shader中包含頭文件的技巧

4.1、Raytracing Shader的編譯

4.2、Shader中包含頭文件的技巧



1、前言

經過了近一個多月的折騰之后,最終在我去蓬萊島附近出差的過程中,終于搞定了DXR的第一個演示的例子。當然不排除可能是因為在蓬萊仙島粘了仙氣,才取得了突破性進展。整個過程還算正常,但是使用fallback庫簡直是讓人痛不欲生,不過很幸運,這個該死的怪物還是被降服了。也怪自己囊中羞澀,有不起RTX20系顯卡加持的電腦。

本次教程示例程序運行效果如下:

大家可以使用上下左右方向鍵來控制光源位置,看看初級光線追蹤光線反射的效果。注意本質上講,本示例中的光照模型依然使用的是光柵化渲染中的環境光+漫反射光模型,主要是為了先讓大家理解整個框架,這里先不引入復雜的光照模型。

首先建議大家先閱讀我的博客文章《光線追蹤渲染(RayTracing Render)核心原理詳解》之后,再來閱讀學習本篇教程。篇幅的原因很多太理論化的東西我就不過多啰嗦了,本篇教程我們將集中精力在具體實在的編程方面,也就是大家常說的“干貨”上。同時也建議大家也一定閱讀了本系列教程中之前的系列文章,因為D3D12編程的基本框架依然適用于DXR編程,D3D12的基本編程技巧我也就不在啰嗦贅述了。

當然作為基礎教程,我們的例子還是以簡單為原則,當然依舊是幾乎沒有什么Class的C-Style的線性示例程序。同時比起復雜的光柵化渲染來說,光追渲染的過程理解起來也比較線性化。甚至可以這樣認為,只要你線性代數基礎好,光追渲染的過程中基本不會遇到太大的障礙。但是要警惕的是DXR和現在的fallback庫可能反倒把事情搞復雜了。當然如果你有至少GTX10系以上的顯卡的話,就不用理會什么fallback庫了,復雜度會下降一大截,真正是人民幣玩家的體驗。

另外在這里告訴大家一個好消息:


?

參加中國DXR光線追蹤開發者大賽,贏取NVIDIA RTX?顯卡!

英偉達聯合微軟,Epic游戲,NExT Studios一起,為大家帶來中國DXR光線追蹤開發者大賽。游戲開發者與內容創作者可以利用Microsoft? DirectX? 12光線追蹤的新特性,提交光追作品,贏取NVIDIA RTX?顯卡大獎!

詳情請見:https://developer.nvidia.com/DXR-spotlight

如您有興趣報名,或希望了解更多詳情,請郵件聯系ChinaCM@nvidia.com獲得支持。

將從比賽中選出優勝者,每位優勝者都將獲得:

?? ?NVIDIA RTX?顯卡

?? ?來自NVIDIA,微軟,Epic Games,NExT Studios的開發者技術支持

?? ?在NVIDIA,微軟,Epic Games,NExT Studios的社交媒體渠道上展示成果。

如何參賽

?? ●使用Microsoft? DirectX? 12和DXR創建實時光線追蹤技術Demo。內容創作者/游戲開發者必須使用到實時光線追蹤反射,實時陰影,實時GI的特性。

?? ●將你的參賽作品遞交到:https://developer.nvidia.com/dxr-contest-submission

?? o所有參賽作品的遞交截止日期為:2019年10月31日晚11:59

?? o遞交必須包含一個至少30秒的視頻片斷,以及技術demo下載地址

?? o游戲開發者需要提供一段簡述,形容自己如何在技術demo中使用了微軟DX12和DXR,以及實時光線追蹤反射,GI,陰影與/或AO的特性。


OK,如果各位有興趣參加,有什么技術問題都可以隨時留言或微信QQ找我:41750362,本人將提供免費技術支持。當然不要問我參不參賽,水平實力有限就不去獻丑了,請諒解!

言歸正傳,下面就讓我們正式開始DirectX Raytracing(簡寫為DXR)之旅吧!

2、準備工作

目前因為我的硬件條件限制,所以在準備最簡例子的過程中,不得不使用Fallback庫來運行演示。其實本質上說,Fallback庫就是用DirectComputer能力來模擬帶硬件加速的DXR。因為我的顯卡只是可憐的GTX965m,無法直接創建DXR設備及相關接口,所以只能使用Fallback庫來模擬。

當然Fallback的使用對于初學者來說簡直就是噩夢,幸運的是,我居然成功的馴服了這個大概是印度程序員寫的怪獸。現在將過程分享給大家,方便我們在沒有直接硬件DXR支持的情況下,能夠成功的編寫一些實時光追的示例程序,以便盡快的掌握DXR的編程技巧。

作為準備工作,第一步首先你要搞明白的就是將我們需要的庫和其它相關資源統統復制到你的項目文件夾中,找到fallback庫的目錄,也就是DirectX-Graphics-Samples下的Libraries和Packages目錄,如下圖所示:

以及Tools目錄:

然后把這三個目錄都復制到你的項目中,如下圖所示:

這里要注意的就是Libraries我們只復制了D3D12RaytracingFallback一個文件夾,其它的暫時不需要。

文件夾放好之后,需要在項目中加入Fallback的工程,如下圖所示:

并且在主項目中首先引用fallbakclayer項目,如下圖:

這樣最終在編譯中就會自動復制和鏈接fallback的lib。

這些基本工作做好之后,就需要對項目的各種屬性和目錄進行更改設置。首先需要修改項目引用的Windows SDK包,如下圖所示:

接著需要對fallbacklayer項目的生成事件路徑做適當修改:

經過這些路徑修改設置后,生成文件的路徑和位置就一致了,當然這些路徑主要使用VS IDE的預定義宏來設置,這樣整個項目復制粘貼到別的地方就依然能夠正常使用。

最后一個需要注意的問題,就是因為fallbacklayer項目使用了PIX支持,所以我們還需要把剛才復制的packages進行一下導入。這個導入使用NuGet,操作如下圖所示:

就是在整個解決方案目錄節點的右鍵菜單中點擊圖中箭頭所示的NuGet包管理菜單,然后在彈出的界面中做如下設置:

在這個NuGet包管理對話框中,點擊加號按鈕,將我們開始復制到項目目錄里的packages中的WinPixEventRuntime.1.0.180612001.nupkg包文件加入項目引用包中,這樣在解決方案的根目錄下就會生成一個Packages的包文件夾,里面就是我們導入的WinPix支持包了,這樣編譯fallbacklayer項目就沒有什么問題了。

至于NuGet的進一步說明和使用方法介紹我就不多啰嗦了,大家可以去百度一下就明白了了。

以上這些準備工作,我主要是靠圖和簡明扼要的說明介紹一下,大家遇到什么問題可以留言垂詢。因為對于有條件的網友來說,fallback基本上可以不用理會了,所以我們這里就簡單的介紹一下,以便有跟我一樣的網友使用老設備想嘗鮮,可以方便的引用fallback庫了。

在最新的DXR示例中,實質上已經刪除了fallback的引用,直接使用純DXR演示了,所以對于最新的DXR Samples,如果不是GTX10xx系或RTX20xx系以上的顯卡,就沒法直接運行了,這個大家要注意。

對于找不到這些包的網友不用著急,本章教程所有的示例我已經放在了GitHub上免費開放了(GRSDXRSamples),大家可以隨時Clone,下載自己調試運行學習。

3、Raytracing Shader

在我的博客文章《光線追蹤渲染(RayTracing Render)核心原理詳解》中我已經簡單介紹了Raytracing Shader的基本框架。

本章教程中,我們直接使用微軟官方例子D3D12RaytracingSimpleLighting項目中的Raytracing.hlsl。當然為了教程統一風格需要,其中做了一些變量名替換。

這里我詳細介紹下該Shader中的變量和函數,也算是讓大家初步掌握Raytracing Shader的基本編寫方法。完整代碼請大家到GitHub下載后自行查看,我就不貼完整的源碼了。

因為現在使用實時光追渲染之后,本質上整個渲染管線都緊密圍繞Raytracing Shader展開了(其實光柵化也是,只是光柵化固定的階段較多,代碼中要做的工作也比較多,所以光柵化部分就主要圍繞C /C++代碼部分進行了詳細講解),所以DXR編程的框架實際也是圍繞讓管線運行起來而展開的。

基于此,在這里就先來學習下Raytracing Shader的基本框架和光追計算的核心思想,這種安排與之前的教程有所區別。當然前提就是至少你已經閱讀了我之前的系列教程,對D3D12接口編程已經有了比較全面整體的認知,尤其要掌握基本的設備創建、命令隊列、命令列表、根簽名、管線狀態對象、網格加載、紋理加載、采樣器、資源屏障、同步圍欄等對象的概念和基本編程方法,最好進一步對D3D12內存管理有較深刻的認識。不明白的話,建議你先暫停,折回頭去看下之前的教程,再來這里繼續學習。

注意:前方高能警告!

3.1、Raytracing Shader整體框架介紹

首先,從整體上看,光追渲染的Shader程序框架與DirectComputer Shader比較接近。

其實從本質上說,光追渲染計算更加的偏“自由計算”化,原理上是不斷的計算生成光線(射線),然后檢測光線與物體(AABBs)及其表面三角形碰撞的情況,然后根據碰撞點的三角形重心坐標,調用對應的各種“光照”算法(BRDFs),最終生成像素點(也就是光線起點)顏色的過程(一般是取n個計算顏色值結果的算數平均值)。

在實時光追渲染中已經沒有光柵化渲染過程中的那些比較固定的計算階段了。比如非常關鍵的光柵化(Rasterizer)過程,在傳統的光柵化渲染框架或管線中就純粹固化到硬件上了(當然DX支持你自己使用軟件實現一個光柵化模塊,對于一些更高級更靈活的光柵化渲染來說這種方式的誘人之處就是“可編程”)。由于這些相對固化的階段,將整個光柵化渲染管線分成了若干個階段(Stages),也就形成了光柵化渲染管線的基本框架。當然在現代的光柵化渲染管線中很多階段已經可以編程了,所以光柵化渲染管線也被稱為“可編程管線”(注意不是“全編程管線”,目前無論光柵化渲染管線還是實時光追渲染管線都沒有做到“全編程管線”。非實時光追渲染管線則是另一回事了。)。

甚至在更早期,3D顯卡(那時候甚至還沒有GPU的概念)上將整個光柵化渲染過程全部固化在了芯片中,相對形成了比較專用的加速卡的形式。這樣做的目的其實無外乎幾個目的,首先就是為了性能,那時甚至每秒能渲染多少三角形成了衡量3D加速卡的關鍵性能指標之一。其次就是整個光柵化的渲染思路就是不斷的剔除多余的三角形,最終目標就是只渲染能“看”到的少量三角形,并且使用簡化的光照模型,通過修改一些參數(比如:高光系數、漫反射光顏色,環境光顏色值等)的方式來最終決定屏幕像素的顏色,從而形成所謂的“3D渲染的畫面”。

后來隨著芯片運算能力的提高,逐步出現了可以編程的一些管線階段,比如著名的Vertex Shader 和Pixel Shader,在其中3D程序員可以通過純粹編程的方式來局部控制整個光柵化渲染的過程。但是整體來看那時3D渲染管線和過程是相對固定的。甚至彼時這些可編程的渲染階段:VS、HS、DS、GS、PS等都有一些根本上的限制。比如VS中你就只能計算當前傳入的那個頂點,只有GS有生成新頂點和新幾何體的能力,而更高級的陰影實現甚至需要所謂的多趟渲染+蠟板來實現。復雜度成幾何級數級增加。

而在GPU計算能力爆炸式增長的今天,實時光追渲染也成為了可能。因為在實時光追渲染的過程中,只有極少數的相對固定的計算過程,也就是說很少能通過調整幾個參數來控制或調節整個渲染過程了。更直接的說,光追渲染過程本質是一個必須進行“通用計算”的過程,而不能像傳統的光柵化渲染那樣簡單的實現“參數化”設計,它更偏向于需要“自由編程”能力了,比如為了極致的渲染效果傳統的固化的BRDFs效果,就可能需要實時的蒙特卡洛積分計算來模擬了。

因此最終Raytracing Shader框架與用于通用計算的DirectComputer Shader框架就很類似,這也很容易理解了。二者都是需要“通用計算”的“自由編程”的能力。

這樣與DirectComputer Sheder相類似,Raytracing Shader一級結構我們可以理解為像下圖所示:

Raytracing Shader的較詳細的基本架構如下:

全局變量定義

包含文件(#include)

渲染目標(RWTexture2D)

網格數據(Vertex、Index)

常量緩沖(ConstantBuffer)

加速結構(RaytracingAccelerationStructure)

基本碰撞(命中檢測)函數

其它輔助工具函數

光線發射函數([shader("raygeneration")])

最近碰撞函數([shader("closesthit")])

未碰撞函數([shader("miss")])

當然作為最一般的光追渲染來說,這個框架基本已經滿足需要了。其它更復雜的元素,后續的教程中遇到時我們再逐個介紹。目前的應用來說這已經足夠了。

3.2、全局變量

3.2.1、渲染目標Unordered Access 2D紋理變量

Raytracing Shader中,我們首先要定義的變量就是:

RWTexture2D<float4> g_RenderTarget : register(u0);

這個變量代表整個實時光追渲染的輸出畫面,與傳統的光柵化渲染不同,這里實質上是一個純粹的渲染到紋理的方式。只是這個紋理我們使用的是一個可“Unordered Accesses(無序訪問 或 隨機訪問)” 讀寫的2D紋理。

如何理解這個設計要求呢?那么首先渲染到2D紋理很容易理解,因為從本質來講,最一般的光柵化渲染到交換鏈的后緩沖區,其實也就是渲染到一個2D紋理。而比較難理解的就是為什么非得是Unordered Access的紋理呢?這其實也是兩種渲染方式巨大的差異導致的結果。傳統的光柵化渲染在光柵化階段,以及后續的Pixel Shader像素著色階段,其實每個像素的顏色基本都是在同一個Shader計算過程(或理解為幾乎相同的同一個Shader函數調用路徑)中決定的,因此可以簡單形象的理解為一個線程(GPU線程)操作一個內存單元格,沒有什么特殊的地方。在最終寫入像素顏色值時基本也是“同時”寫入每個像素的。這種情景,你可以形象的想象一排排列非常整齊的射手,以相同的姿勢,同時舉槍射擊各自面前的靶子,在發令官一聲令下后,大家幾乎同時開槍,然后子彈幾乎同時射中靶子的情形。

而在實時光追渲染中,那么決定每個像素的最終顏色的Shader可能就不是一個了,或者說Shader函數及調用路徑基本都不一樣了,主要是因為我們現在執行的是光線的動態追蹤,看過我的《光線追蹤渲染(RayTracing Render)核心原理詳解》之后,我們知道光追渲染其實就是每個像素都朝一個視錐體內的特定方向“發射”一條光線(射線),在光線不斷碰撞-反射-折射的過程中到達光源后再調用不同的Shader計算決定最終的顏色值,因此一個像素最終的顏色可能會跨越不同的函數及計算路徑得到,所以可能每個像素最終被著色的時間點也會出入很大,導致最終寫入每個像素的顏色值的時機基本都是“隨機的”,因為每條光線的路徑都可能是不同的。同時按照現代GPU對于顯存的近乎嚴苛的管理要求,我們必須明確的告訴GPU渲染目標2D紋理是需要“隨機訪問”的,這就是Unordered Access形式2D紋理作為實時光追渲染目標的全部意義。這種情形可以與之前的例子對應想象為在一個真實的戰場上,士兵都分散在近乎隨機分布的散兵坑里射擊,開槍的時機,子彈的路徑,射擊目標的類型、射擊的時機、射中沒射中等等都幾乎是隨機的一樣。

當然這也是典型的DirectComputer計算結果緩沖需要的類型形式。

總之,本質上g_RenderTarget這個變量代表一塊紋理(也就是一塊顯存,放在“默認堆”上),但與普通的只讀紋理不同,它是需要可讀寫的,同時要求是可以隨機訪問的,這里的隨機訪問是針對GPU線程而言的。其基本訪問單位是float4,即渲染結果圖片上的每個像素點的最終顏色值。它的實質大小就在C++代碼中設定,邏輯大小(像素數)一般是窗口的大小iWidth * iHeight,字節大小就是iWidth *iHeight*4*sizeof(float)。因為它放在默認堆也就是顯存中,所以GPU訪問速度很高,因為需要隨機讀寫,比GPU訪問一般的只讀紋理速度要慢一些,但快過訪問共享內存中的上傳堆中緩沖的速度。

3.2.2、三角形網格變量

?

接下來的兩個變量:

ByteAddressBuffer g_Indices : register(t1, space0); StructuredBuffer<ST_GRS_VERTEX> g_Vertices : register(t2, space0);

就是我們需要渲染的物體的網格數據,一般就是三角形網格數據,即三角形頂點數組及其對應的索引數組。

在傳統的光柵化渲染中,因為渲染管線設計的相對固化,三角形網格數據傳入渲染管線都是通過專門的函數: IASetVertexBuffers、IASetIndexBuffer等來設置并傳入的,而且在代碼層面我們還要設置網格數據格式,通過管線對象結構體成員D3D12_GRAPHICS_PIPELINE_STATE_DESC::InputLayout 以及函數IASetPrimitiveTopology等來設定,同時這也是底層驅動和硬件直接支持的,性能上就有一些優勢。當然換個角度來看這其實也是一種束縛和限制,也體現出傳統光柵化渲染框架的要求下,其實從硬件開始就對數據類型做了非常細致的劃分,而劃分的目的無非就是為了限制不必要的數據計算擴展,比如早期你不能使用紋理來上傳頂點數據,你更不能說在頂點數據中傳入紋理數據,或者說作用于紋理上的指令是不能操作頂點數據的反之亦然。這些其實都是為了簡化指令設計,從而最終提高性能的設計。因為歸根結底,GPU是一個大的SIMD架構的處理芯片,高并行,超大數據量吞吐才是其終極目的。

現在隨著GPU指令集加強,數據類型處理限制的逐步解除,以及處理能力的不斷提升,尤其是GPU“通用計算”能力的不斷提升,使得實時光追也成為可能,我們就可以在Raytracing Shader中以緩沖區的方式直接簡單的傳入網格頂點的數據,甚至于網格頂點數據的整體數據結構都由代碼和Shader自行負責,我們不需要過多的額外的編程限制了。比如我們不需要反復的通過InputLayout結構體數組與GPU溝通網格頂點的數據結構了。

總之,ByteAddressBuffer類型是個Shader的內置的數據類型,其含義就是BYTE*,甚至我們可以將其理解為VOID*,也就是說這種緩沖里的數據我們可以按照以字節為單位大小隨意訪問,這樣我們傳入的網格索引數組,就可以按我們需要來訪問了。后續我們在介紹函數時還會詳細介紹這個緩沖區。其大小則是由代碼中指定的。這也提現了Raytracing Shader在編碼方面的的巨大靈活性。當然我們還是需要指定是從哪個寄存器組傳入的,后面的register(t1, space0)語義說明我們依然是從紋理的寄存器通道1(實質是第二個寄存器,因為有0序號寄存器是第一個,與C/C++中數組下標類似,從0開始)上傳頂點索引數據,此時我們也發現現在所謂“紋理”數據類型其實質可代表的類型已經大大的豐富了,當然對應的操作指令也豐富了,使得我們現在都可以直接傳入BYTE*這種“極端自由”的數據。

緊接著頂點索引的是StructuredBuffer<ST_GRS_VERTEX>類型定義的頂點數據數組g_Vertices,那么這個類型定義有些像C++中的模板實例化的語法,即我們可以將StructuredBuffer認為是一個純數組容器模板類,而在Shader中它被我們用自定義的頂點數據類型ST_GRS_VERTEX結構體實例化了,這樣它其實要表達的意思就是ST_GRS_VERTEX g_Vertices[],也就是網格頂點數據的數組。而register(t2, space0)語義文法則跟剛才一樣說明頂點數組是從“第三個紋理寄存器”傳入的。

3.2.3、常量緩沖

?

接下來的兩個常量結構體的定義:

ConstantBuffer<ST_SCENE_CONSANTBUFFER> g_stSceneCB : register(b0); ConstantBuffer<ST_MODULE_CONSANTBUFFER> g_stModuleCB : register(b1);

與我們在一般的VS或PS中定義常量緩沖的方式有些不同,一般在我們之前的例子中都像下面這樣來定義常量緩沖區:

cbuffer MVPBuffer : register(b0) {float4x4 m_MVP; };

其實兩種定義方法的含義是一樣的,只是在Raytracing Shader中我們使用的是類似DirectComputer中的常量緩沖的定義方法。從文法上我們可以將ConstantBuffer<ST_SCENE_CONSANTBUFFER>理解為一個模板實例化類型定義。只是這里ConstantBuffer是個單例實例化,即它只實例化一個結構體為常量緩沖區,并不像其他的Buffer類型那樣實例化成數組,這里可以直接的理解為類似C/C++代碼中的定義:ST_SCENE_CONSANTBUFFER g_stSceneCB;。當然常量緩沖區使用的寄存器就是b族寄存器了。

在這里常量緩沖區稍微做了一些區分,即第一個常量緩沖區是全局可見的,即所有的光追階段Shader函數都可以訪問,我們后續將在代碼中在全局根簽名中聲明并傳入。而第二個則是局部可見的,即在我們目前的Shader里只是在檢測到碰撞之后的Shader函數中才能夠訪問。

3.2.4、加速結構體變量

?

在接下來的全局變量定義:

RaytracingAccelerationStructure g_asScene : register(t0, space0);

這個就是Raytracing Shader中特有的一個結構化緩沖區了,即我們在《光線追蹤渲染(RayTracing Render)核心原理詳解》一文中給大家介紹過得加速體結構的緩沖區。這個變量的定義其實在我們的Raytracing Shader中可以看做是一個“啞元”,即我們只是聲明它,幾乎不直接在我們的Shader中“顯式”的操作它,而最終操作它的就是驅動和GPU(或 fallback庫)。關于它的進一步的知識我們后續在創建和上傳該緩沖時,在詳細介紹。在Raytracing Shader中這幾乎是唯一一個“黑盒式”的緩沖區,即我們不知道其具體結構,更無法操作其內部元素,當然我們也無需知道這些。

3.3、基本光線追蹤渲染過程框架

與傳統的光柵化渲染管線不同,實時光追渲染過程(或者稱之為光追渲染管線)在過程上要簡單的多。整體上如下圖所示:

1、圖中每個深灰色背景塊都代表一個完整獨立的Shader函數過程(包括子函數),綠色部分表示有硬件加速的過程。

2、圖中:

這一部分實際是光追渲染過程中相對固定的部分,可以理解為光柵化渲染中的完全硬件固化的光柵化過程。而其中的Any Hit以及Intersection兩個過程是可編程的部分,如果不指定專門的Shader函數的話,它們就執行默認的碰撞檢測過程,可以理解為是先檢測是否與物體的AABBs相交,接著檢測與物體上的某個三角形相交,可以理解為就是一個“Pick(拾取)”的過程。

3、RayGeneration函數中實際要調用的最重要的Raytracing Shader內置方法就是:TraceRay(實際發射光線的函數,后面詳細介紹),所以為了跟其他的自定義名稱的方法區別這個方法的名字在圖中使用了斜體標識。

4、圖中實線箭頭是一次光線的路徑,也就是主要光追渲染過程,而虛線箭頭表示的則是二次以上的光線(當然也要走一遍實線的過程),也就是說在Miss或Closest Hit的過程中還可以繼續重復調用TraceRay()方法再次發射出光線,這通常用于高級渲染效果的情況,如:反射、陰影、折射、透射等。

通常在這兩個方法(Miss或Closest Hit)中發射的光線(射線)就被稱為“二次光線”或“高次光線”。一般情況下,在實時光追渲染中,使用到二次光線時已經可以有較高渲染質量了,為性能考慮不建議再生成更高次的光線(這是與一般光追渲染的區別,一般渲染光追中都會有大量的高次光線)。當然最終這又是一個需要在渲染質量和性能之間折中考慮的編程問題。

下面就讓我們來認識每一個具體的Shader函數都是干嘛的。

3.4、光線發射函數(Ray Generation)

在本章教程的Shader中,我們定義的光線發射函數如下:

3.4.1、MyRaygenShader函數

[shader("raygeneration")] void MyRaygenShader() {float3 rayDir;float3 origin;// Generate a ray for a camera pixel corresponding to an index from the dispatched 2D grid.GenerateCameraRay(DispatchRaysIndex().xy, origin, rayDir);// Trace the ray.// Set the ray's extents.RayDesc ray;ray.Origin = origin;ray.Direction = rayDir;// Set TMin to a non-zero small value to avoid aliasing issues due to floating - point errors.// TMin should be kept small to prevent missing geometry at close contact areas.ray.TMin = 0.001;ray.TMax = 10000.0;RayPayload payload = { float4(0, 0, 0, 0) };TraceRay(g_asScene, RAY_FLAG_CULL_BACK_FACING_TRIANGLES, ~0, 0, 1, 0, ray, payload);// Write the raytraced color to the output texture.g_RenderTarget[DispatchRaysIndex().xy] = payload.color; }

?

1、函數“MyRaygenShader”,是必須自定義的“光線產生函數”,其名稱可以是任意合法的標識符名稱,當然你需要在代碼中也知道他們的名字。這個函數對應實時光追渲染管線圖中開始的Ray Generation函數。

2、這個函數頂部的[shader("raygeneration")]是個函數語義文法,用于標識其后的函數定義就是光追渲染的Ray Generation方法。當然這也是為了告訴Raytracing Shader編譯器、DXR接口以及顯卡驅動和對應硬件的一個標識,即被該語義修飾的函數就是“光線發生函數”。每個GPU線程(或者理解為單個流處理器)在執行實時光追渲染的過程時,就知道需要從這個方法開始執行(類似C/C++函數中的main函數)。

3、光線發生函數(Ray Generation)的一個核心工作就是計算光線方向,從而生成光線(射線)的向量方程,而后續的計算就利用這個射線向量方程來計算碰撞、碰撞點,從而檢索一個Shader Table列表(實質是Shader函數列表)中對應的Shder(函數)進一步計算顏色值。

4、該函數首先取得像素點坐標,其次計算出對應像素點在攝像機坐標中的位置向量,然后在根據攝像機位置向量,計算出光線的方向。

根據光追基本原理,光線方向向量(Rey Dir)=像素點位置向量(Pixel Pos)- 攝像機位置向量(Camera/Eye Pos)。根據向量減法的規則,最終光線方向就從攝像機位置指向屏幕像素方向。原理示意圖如下:

而光線(射線 Ray)的起點就是屏幕像素位置向量(大家一定要注意我這里就沒有再區分表示點的坐標和向量之間的區別了,具有請參考光追原理一文)。這個計算過程更形象的如下圖所示:

5、有了光線方向,那么接下來函數中拼裝了一個光線方程(射線方程),其實就是我們說過的方程:Ray = Origin +t*Dir(TMin < t < TMax)。當然在代碼中它是通過填充一個RayDesc結構體構建的。然后再聲明一個PayLoad(光追負載,主要就是最終像素的顏色)的自定義結構體,最終調用TraceRay函數發射光線,(該函數是個“同步函數”,后面會詳細說明),調用返回后,負載中就是像素點的顏色值,我們賦給對應像素的紋理單元即可。

3.4.2、GenerateCameraRay函數

?

在MyRaygenShader函數中,通過調用子函數GenerateCameraRay計算得到光線(射線的方程)的起點和方向,該函數定義如下:

inline void GenerateCameraRay(uint2 index, out float3 origin, out float3 direction) {float2 xy = index + 0.5f; // center in the middle of the pixel.float2 screenPos = xy / DispatchRaysDimensions().xy * 2.0 - 1.0;// Invert Y for DirectX-style coordinates.screenPos.y = -screenPos.y;// Unproject the pixel coordinate into a ray.float4 world = mul(float4(screenPos, 0, 1), g_stSceneCB.m_mxP2W);world.xyz /= world.w;origin = g_stSceneCB.m_vCameraPos.xyz;direction = normalize(world.xyz - origin); }

1、首先GenerateCameraRay函數的輸入參數index其實就是屏幕像素點的坐標,當然坐標值是以屏幕坐標系為參考系的,即原點在屏幕(窗口左上角),X軸正方向朝右,Y軸正向朝下方。對應最大值分別是屏幕(窗口)的Width和Height。

2、index參數的值是通過調用名為DispatchRaysIndex()的 “系統變量內嵌函數”得到的(系統變量內嵌函數稍后會詳細介紹)。該函數返回當前GPU計算線程的單元(可以理解為GPU上幾千個流處理器中的一個)被分配計算的某個屏幕像素坐標x,y值。

3、緊接著通過將index與另一個“系統變量內嵌函數” DispatchRaysDimensions()的返回值做除法,其實也就是計算“歸一化(normalization)”坐標值,將原來的像素坐標變換為(0-1.0f)之間的坐標,然后再*2.0f-1.0f,就進一步將像素坐標變換到了以屏幕中心為原點的歸一化坐標系中,而值就變化到(-1.0f-1.0f)之間。這個計算過程對應原理圖如下:

圖中大寫X,Y表示像素單位的坐標大小,小寫的x,y表示標準化之后的坐標。同時我們注意到屏幕像素坐標系的Y軸正方向向下,而標準化坐標系為了與D3D的坐標系保持一致其Y軸是朝上的,所以在坐標換算的時候我們取歸一化之后的負值即可。代碼中也是將這些計算拆開步驟來寫,大家應該立刻就能明白函數中的計算。

其實我們在《DirectX12(D3D12)基礎教程(七)——渲染到紋理、正交投影、UI渲染基礎》中介紹的基于窗口坐標系的正交變換差不多就是這里變換的逆變換。

4、函數中的第四行代碼float4 world = mul(float4(screenPos, 0, 1), g_stSceneCB.m_mxP2W);就是將計算得到的屏幕像素標準化坐標擴展的4維齊次坐標空間,其Z坐標為0,即我們假設的屏幕平面就在z=0的平面上。當然齊次w坐標是1.0f,表示我們將這個擴展的坐標理解為是一個表示點的向量,也就是屏幕像素點在攝像機空間中的坐標。接著我們用屏幕像素點的標準化坐標乘以攝像機投影矩陣(Projection Matrix)的逆矩陣,意思就是說我們將這個點從攝像機坐標系變換到了世界坐標系中。接著world.xyz /= world.w;就保證了坐標單位大小的一致性(仿射變換)。

5、最后我們取攝像機的位置向量,作為起點坐標(origin = g_stSceneCB.m_vCameraPos.xyz;),然后利用變換到世界坐標系中的屏幕像素點位置坐標減去起點坐標就得到了光線的方向向量(direction = normalize(world.xyz - origin);),注意這里丟棄了兩個向量坐標的w坐標,根據我們之前文章中介紹過的,4維齊次坐標系中,w=0的4維向量表示3D中的純方向量(無位置),而當w=1時就表示3D中的點(有位置)。所以這里也可以寫成如下形式:

world.xyzw /= world.w; float4 origin =float4( g_stSceneCB.m_vCameraPos.xyz,1.0f); float4 direction = normalize(world - origin);//4D向量表示法

6、最后我們要注意的就是起點坐標origin我們直接用了攝像機的位置坐標,并沒有做到世界空間變換的操作(也即沒有乘以變換矩陣),這是因為實質上我們的攝像機位置坐標已經是世界坐標系中的坐標值了,不需要變換了。而屏幕位置坐標是相對于攝像機坐標系空間設置的坐標值,它必定在攝像機的坐標系中,并且我們總假設屏幕就是在攝像機坐標系的原點位置處,并且其方程永遠是z=0。除非你想“斜視”,那么可以設置一個不在z平面上的屏幕平面方程試試,估計你會有驚喜。

3.4.3、TraceRay函數

?

最后有了光線(射線)的方程之后,我們就可以開始正式的光追計算過程了,而核心就是調用TraceRay函數,其原型如下:

Template<payload_t> void TraceRay(RaytracingAccelerationStructure AccelerationStructure,uint RayFlags,uint InstanceInclusionMask,uint RayContributionToHitGroupIndex,uint MultiplierForGeometryContributionToHitGroupIndex,uint MissShaderIndex,RayDesc Ray,inout payload_t Payload);

1、這個函數的聲明使用了模板化聲明,主要的模板參數就是payload_t,即光追渲染的負載,通常我們設定為最終屏幕像素點顏色變量的引用。這個參數會被原封不動的以純引用的方式傳遞給所有后續的光追渲染函數,后續的這些函數就可以將計算的顏色值寫入該模板變量,最終TraceRay返回后,PayLoad中就是計算得到的像素點顏色值;

2、第一個參數AccelerationStructure就是剛才介紹的加速體結構變量;

3、第二個參數RayFlags是指定光追碰撞檢測(命中檢測)時最終對三角形執行的操作類型,這個類似于光柵化渲染中,光柵化狀態結構體中的CullMode(剔除模式)變量,通常我們指定RAY_FLAG_CULL_BACK_FACING_TRIANGLES剔除背面三角形即可;

4、第三個參數InstanceInclusionMask是一個位掩碼,用于在復雜場景光追渲染時屏蔽一些網格實例,目前我們簡單地的設置為~0即可,表示我們渲染所有的實例;

5、第四個參數RayContributionToHitGroupIndex表示當光線命中網格三角形時,調用的命中(hit)Shader Table(Hit函數的列表)中的Shader函數的索引;

6、第五個參數是用于多個幾何體光追渲染時,不同幾何體對象的命中Shader Table中的索引;

7、第七個參數就是指沒有命中時候的Shader Table中的索引;

8、第八和九個參數我們已經介紹過了。

最終在一般的示例中,我們先掌握第1、2、4、7、8、9參數的用法即可,其它參數除了第3個參數要傳入特殊的~0值之外,其它的都傳入0值即可。

TraceRay函數在理解上建議大家可以想象它是GPU光追的線程函數,在功能上有點類似CreateThread函數,那么對應的線程入口函數可能就是我們后面要介紹的命中函數或者未命中函數,而線程入口參數就是自定義的變量Payload的引用。

同時TraceRay函數是個“同步函數”,即它返回之后其實表示當前的這條光線(第8個參數傳入的)的完整追蹤過程已經結束了,Payload中的值也計算完畢可以訪問使用了。

進一步考慮到命中(Hit)函數或未命中(Miss)函數都有可能再次調用TraceRay函數,那么這個函數就會形成一個復雜多層次遞歸調用的形式,而這個遞歸的過程就是光線不斷發射、反射、折射、透射等的過程。理論上來講其遞歸深度可以是無限的,但實際上一般遞歸次數也就不到3次左右。或者當光線最終指向光源時遞歸也就應該終止了。

另一方面從TraceRay函數的功能原理也可以看出,Raytracing Shader要求的強悍計算能力了。

3.5、系統變量內嵌函數(Raytracing HLSL System Value Intrinsics)

?“系統變量內嵌函數”,并不是真正意義上的函數,它其實和我們在光柵化Shader,如VS中,定義變量時指定的語義是一個意思(指相同的語義)。比如,定義頂點位置時:float4 m_vPOS:SV_POSITION;其中的SV_POSITION語義就是說m_vPOS是位置變量。而這里則是使用函數的形式替代這個變量定義形式的語義文法,這樣一來我們訪問系統變量時,就不一定非要定義成變量形式,直接調用函數即可。這樣我們不必在Shader函數的輸入輸出參數中才能關聯訪問系統變量。最終這使得Shader的編寫更加靈活,而可讀性也更高。函數化之后我們就可以在Shader函數的任何地方輕松的訪問系統變量。而五花八門的自定義系統變量名從此就被統一成了“系統變量內嵌函數”調用。

這也可以形象的理解為將SV_POSITION改成函數SV_POSITION()直接返回位置變量,這樣我們就不用自己定義位置變量m_vPOS了。同樣我們可以等價的理解為函數DispatchRaysIndex的意思就是定義形如 uint2 index: DispatchRaysIndex這樣的一個變量。這是Raytracing Shader中的新的語法變化,請大家深刻理解。

其它的常用的系統變量內嵌函數如下表所示(注意系統變量內嵌函數沒有參數,直接名稱加括號調用即可):

Ray dispatch system values(光線發射系統變量)

名稱

含義描述

DispatchRaysIndex

得到當前像素點的X、Y坐標值,取值范圍在DispatchRaysDimensions系統變量之內

DispatchRaysDimensions

在初始DispatchRays調用中指定的D3D12_DISPATCH_RAYS_DESC結構的寬度、高度和深度值。

Ray system values(光線(射線)方程系統變量)

名稱

含義描述

WorldRayOrigin

當前光線在世界坐標系中的起點位置向量。

WorldRayDirection

當前光線在世界坐標系中的方向向量。

RayTMin

當前光線(射線)方程中指定的t值的最小下界。

RayTCurrent

當前光線(射線)與物體碰撞點的t值,范圍在TMin與TMax之間,TMin<=t<=TMax。當t==TMax時,觸發的是未命中函數。

RayFlags

當前光線的RayFlags標志值,即調用TraceRay時指定的RayFlags值。

Primitive/object space system values(物體空間系統變量)

名稱

含義描述

InstanceIndex

頂級光線跟蹤加速結構中當前實例的自動生成索引。

InstanceID

頂層結構中的底層加速結構實例上的用戶提供的實例標識符。

PrimitiveIndex

在底層加速結構實例的幾何結構內部自動生成原語的索引。

ObjectRayOrigin

當前光線在物體坐標系中的起點

ObjectRayDirection

當前光線在物體坐標系中的方向

ObjectToWorld3x4

物體空間到世界空間變換的矩陣(34列)

ObjectToWorld4x3

物體空間到世界空間變換的矩陣(43列)

WorldToObject3x4

世界空間到物體空間變換的矩陣(34列)

WorldToObject4x3

世界空間到物體空間變換的矩陣(43列)

Hit-specific system values(特定碰撞系統變量,主要用于Any Hit或Closest Hit等過程)

名稱

含義描述

HitKind

作為傳遞給ReportHit的HitKind參數的返回值。

3.6、最近命中(碰撞)函數(Closest Hit)

光線(射線)在通過TraceRay函數發射出去之后,一旦第一次碰撞到物體網格的某個三角形后,光追渲染過程就會調用被稱之為最近命中函數的自定義函數。在示例中,它被定義成如下的樣子:

[shader("closesthit")] void MyClosestHitShader(inout RayPayload payload, in MyAttributes attr) {float3 hitPosition = HitWorldPosition();// Get the base index of the triangle's first 16 bit index.uint indexSizeInBytes = 2;uint indicesPerTriangle = 3;uint triangleIndexStride = indicesPerTriangle * indexSizeInBytes;uint baseIndex = PrimitiveIndex() * triangleIndexStride;// Load up 3 16 bit indices for the triangle.const uint3 indices = Load3x16BitIndices(baseIndex);// Retrieve corresponding vertex normals for the triangle vertices.float3 vertexNormals[3] = { g_Vertices[indices[0]].m_vNor, g_Vertices[indices[1]].m_vNor, g_Vertices[indices[2]].m_vNor };// Compute the triangle's m_vNor.// This is redundant and done for illustration purposes // as all the per-vertex normals are the same and match triangle's m_vNor in this sample. float3 triangleNormal = HitAttribute(vertexNormals, attr);float4 diffuseColor = CalculateDiffuseLighting(hitPosition, triangleNormal);float4 color = g_stSceneCB.m_vLightAmbientColor + diffuseColor;payload.color = color; }

1、與光線發射函數類似,其語義文法標識是:[shader("closesthit")]即告訴Raytracing Shader編譯器、DXR、顯卡驅動及GPU后面這個函數就是最近碰撞函數。

2、它的第一個入口參數就是我們剛才講的Payload自定義變量,那么在我們的例子里就是發出這條光線的像素點的顏色值。而其第二個參數in MyAttributes attr,其原類型是BuiltInTriangleIntersectionAttributes即碰撞點所屬三角形(也可能是別的幾何體,但通常是三角形)的重心坐標,它的原始定義如下:

struct BuiltInTriangleIntersectionAttributes {float2 barycentrics; };

一般情況下它滿足下列方程(假設三角形的三個頂點坐標向量分別是v0、v1、v2):

碰撞點V的位置向量(重心坐標)= v0 + barycentrics.x * (v1-v0) + barycentrics.y* (v2 – v0)。

這個計算代表的具體幾何意義如下圖所示:

當然通常在實際的Raytracing Shader中我們并不這樣計算碰撞點的坐標,而是通過光線(射線)的方程直接計算。而重心坐標主要用來計算碰撞點的法向量,從而方便我們進一步計算光照情況。

3、函數一開始就調用了一個輔助函數HitWorldPosition來計算碰撞點的坐標,該函數定義如下:

float3 HitWorldPosition() {return WorldRayOrigin() + RayTCurrent() * WorldRayDirection(); }

其實它里面的計算過程就是我們剛才說的使用射線方程計算碰撞點的坐標向量。它里面就是調用了三個“系統變量內嵌函數”。實質上它就是方程:碰撞點=光線起點向量 + 碰撞點t值*光線方向向量,因為碰撞點必定在光線(射線)上。當然此處的碰撞點t值必定在我們發射光線時指定的TMin和TMax之間。這里需要注意的一個細節就是當實際碰撞點的t值超過了TMax時,實質上光追渲染過程是不會調用命中函數的,而是去調用未命中函數(Miss),含義就是說碰撞點實質上超出了我們規定的射線的最大射程,因此為了正確的光追效果建議設置較大的TMax值。

4、有了碰撞點位置的坐標向量之后,命中函數中接著使用“系統變量內嵌函數” PrimitiveIndex獲得當前碰撞網格索引數組中,當前被碰撞三角形的序號,接著根據我們傳遞的索引數組的格式大小(3*sizeof(UINT16)),計算得到實際對應的索引數組中的偏移位置,再通過工具方法Load3x16BitIndices從網格索引數組中讀取出三角形三個頂點的索引,然后根據索引讀取頂點數組得到三角形三個頂點數據(g_Vertices[indices[0]],g_Vertices[indices[1]],g_Vertices[indices[2]])。接著根據我們剛才介紹的重心坐標調用工具函數HitAttribute計算出碰撞點的法向量,這個法向量就是三角形各頂點法向量的以重心坐標為權重的算數平均值,是一個均勻插值結果。實質上在更加真實的光追渲染過程中,這里其實需要計算出法線貼圖的紋理坐標,然后從法線貼圖中讀取碰撞點處的法線,因為真實物體表面并不是均勻光滑的。這與在傳統的光柵化渲染中使用法線貼圖的方法是一致的。同樣的我也假設你對這一個方法已經了如指掌。

5、有了碰撞點的位置坐標向量和法向量,接著調用輔助函數CalculateDiffuseLighting計算出光源位置到碰撞點的向量與碰撞點法向量的點積,并取大于0的值,因為負值表示二者夾角大于90度了。然后再用這個點積*物體表面的反光率參數m_vAlbedo*光源的漫反射光顏色參數m_vLightDiffuseColor,得到碰撞點的漫反射顏色值。這個計算其實也是與光柵化渲染中漫反射顏色計算過程一致。

6、最后碰撞點對應像素顏色值,就設定為我們計算的漫反射顏色值+環境光顏色(float4 color = g_stSceneCB.m_vLightAmbientColor + diffuseColor;)。作為進一步的練習,大家可以在此基礎上擴展計算下高光反射(鏡面反射)的顏色值,徹底模擬出光柵化渲染中像素顏色值=鏡面高光+漫反射光+環境光的經典光照模型。

3.7、未命中函數(Miss)

當光線(射線)不與任何場景中的物體碰撞或者碰撞點的t值大于射線方程的TMax值時,光追渲染過程就會調用稱之為未命中函數的Shader方法。在我們的例子中該方法定義如下:

[shader("miss")] void MyMissShader(inout RayPayload payload) {float4 background = float4(0.2f, 0.5f, 1.0f, 1.0f);payload.color = background; }

它的含義很簡單就是為任何沒有碰撞到物體光線的像素點設置一個天藍色的默認顏色。

通常這個函數中我們就實現一個經典的“天空盒”3D紋理采樣或像這里一樣簡單的返回一個默認背景色即可。

4、Raytracing Shader編譯和Shader中包含頭文件的技巧

在之前的教程示例中,我都建議大家使用代碼中調用編譯函數的方法來編譯Shader,這樣主要是為了大家將來編寫內置工具的方便。但是目前我還沒有調通Raytracing Shader的純代碼函數編譯方法,我也正在想辦法加緊研究微軟的GitHub項目DirectXShaderCompiler,后續的教程中我爭取將代碼中編譯的方法試驗通后分享給大家。現在我們暫時使用fxc.exe編譯工具編譯的方法。

4.1、Raytracing Shader的編譯

在VS2019中已經嵌入了Shader的編譯工具的命令行編譯方式,只要我們定義一個Shader文件(擴展名最好是HLSL),之后我們就可以在項目中指定使用HLSL編譯器編譯該文件。方法是在VS2019中,解決方案面板中找到Shader文件,然后點擊右鍵,彈出菜單如下:

然后點擊屬性菜單項,彈出文件的屬性對話框如下:

設定項類型為HLSL編譯器,緊接著選定左邊配置屬性中的HLSL編譯器項,將其展開如下:

然后將右邊的屬性項改成如圖所示:

其中:著色器類型設定為/Lib,含義是將整個Shader編譯成類似一個靜態庫的類型,它里面包含若干個Shander函數的編譯后的機器碼,這與編譯傳統的光柵化Shader不同,傳統的光柵化Shader必須明確Shader對應的階段,同時每個階段都必須明確指定一個入口點名稱(就是Shader的主函數)。lib形式是Raytracing特有的形式,因為里面包含多個函數入口及函數體,所以不用再指定入口點名稱。同時這里我們指定的著色器模型是6.3,至少指定必須是6.1,因為從6.1開始引入了Raytracing Shader,指定6.3對應的Windows SDK版本必須是17763,因為fxc編譯器現在包含在Windows SDK中。

接下來我們需要指定的Shader編譯選項是生成Shader代碼的C/C++包含文件,我們點擊屬性頁面坐標的“輸出文件”選項,然后設置如下圖所示:

這樣Raytracing Shader編譯后就會生成一個C/C++頭文件,這個頭文件中就會以十六進制字符數組變量的形式,將Shader編譯后的二進制碼定義為一個超大的數組,這樣我們在C/C++代碼中包含這個頭文件之后,Shader的二進制代碼就可以直接利用g_p%(Filename)的形式來直接訪問了,我們示例代碼中這個變量經過宏替換后名為:g_pRaytracing。最終這個頭文件看起來像下面這個樣子:

4.2、Shader中包含頭文件的技巧

在我們之前系列教程的示例代碼中,我們會發現頂點數據結構的定義往往需要在Shader 和C/C++代碼中分別定義,而且還必須保持一致,這對于稍微復雜點的項目來說都是不可容忍的。

本教程中因為我們直接引用了微軟DXR示例中的Shader,所以也保留了它解決這一問題的方法,那就是定義兩個輔助頭文件,分別是:HlslCompat.h和RayTracingHlslCompat.h。其中HlslCompat.h很簡單,它的目的就是通過typedef的方法將Shader和C/C++中的向量數據類型進行一個兼容定義如下:

#ifndef HLSLCOMPAT_H #define HLSLCOMPAT_Htypedef float2 XMFLOAT2; typedef float3 XMFLOAT3; typedef float4 XMFLOAT4; typedef float4 XMVECTOR; typedef float4x4 XMMATRIX; typedef uint UINT;#endif // HLSLCOMPAT_H

接著在RayTracingHlslCompat.h中像下面這樣條件包含HlslCompat.h頭文件,并定義我們需要的頂點結構、常量緩沖結構等:

#ifndef RAYTRACINGHLSLCOMPAT_H #define RAYTRACINGHLSLCOMPAT_H#ifdef HLSL #include "HlslCompat.h" #else using namespace DirectX;// Shader will use byte encoding to access indices. typedef UINT16 GRS_TYPE_INDEX; #endifstruct ST_SCENE_CONSANTBUFFER {XMMATRIX m_mxP2W;XMVECTOR m_vCameraPos;XMVECTOR m_vLightPos;XMVECTOR m_vLightAmbientColor;XMVECTOR m_vLightDiffuseColor; };struct ST_MODULE_CONSANTBUFFER {XMFLOAT4 m_vAlbedo; };// 頂點結構 struct ST_GRS_VERTEX {XMFLOAT4 m_vPos; //PositionXMFLOAT2 m_vTex; //TexcoordXMFLOAT3 m_vNor; //Normal };#endif // RAYTRACINGHLSLCOMPAT_H

因為HLSL宏是在fxc編譯時預定義的一個宏,所以當RayTracingHlslCompat.h頭文件被包含在Shader文件中時,HlslCompat.h就被包含進來了,這樣Shader編譯器就理解XMFLOAT2、XMFLOAT3、XMFLOAT4等變量為Shader數據類型float2、float3、float4等。

而在C/C++文件中包含RayTracingHlslCompat.h頭文件,在編譯時因為沒有HLSL預定義宏,所以XMFLOAT2、XMFLOAT3、XMFLOAT4等變量含義就是原始的DirectXMath.h中的對應向量類類型。

最終通過這樣的技巧方法,我們就只需要在RayTracingHlslCompat.h這一個頭文件中維護頂點數據類型結構體、常量數據類型結構體等即可,就不需要分開定義在Shader和C/C++兩處。

當然這個方法的使用最終得益于獨立的fxc Shader編譯器,而我們之前在代碼中調用D3DCompileFromFile函數編譯的方法不能簡單的使用這個技巧,但是這也是可以用的,之后的教程中我找機會為大家補上怎么用D3DCompileFromFile函數來使用這一方法。

最后建議大家擴展HlslCompat.h中的兼容類型定義,使Shader的數據類型與DirectXMath庫中的變量完全對應,方便以后使用。

(未完待續,預計偉大祖國生日過后繼續發布,敬請期待,謝謝!)

總結

以上是生活随笔為你收集整理的DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

无遮挡啪啪摇乳动态图 | 国产性生大片免费观看性 | 装睡被陌生人摸出水好爽 | 精品水蜜桃久久久久久久 | 欧美日韩一区二区综合 | 国产绳艺sm调教室论坛 | 国产精品亚洲专区无码不卡 | 国产无套粉嫩白浆在线 | 内射老妇bbwx0c0ck | 中文字幕无码日韩专区 | 国产农村乱对白刺激视频 | 国内精品久久毛片一区二区 | 亚洲第一无码av无码专区 | 久久99久久99精品中文字幕 | 欧美熟妇另类久久久久久多毛 | 在线看片无码永久免费视频 | 精品欧洲av无码一区二区三区 | 欧美性猛交xxxx富婆 | 亚洲精品国产精品乱码不卡 | 国内精品久久久久久中文字幕 | 大地资源网第二页免费观看 | 国产乱人伦av在线无码 | 国产精品亚洲一区二区三区喷水 | 国产一精品一av一免费 | 极品尤物被啪到呻吟喷水 | 天堂久久天堂av色综合 | 国产午夜视频在线观看 | 久久久久久久女国产乱让韩 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 成人毛片一区二区 | 日本一区二区更新不卡 | 国产精品a成v人在线播放 | 国产亚洲精品久久久久久国模美 | 少妇厨房愉情理9仑片视频 | 日本www一道久久久免费榴莲 | 西西人体www44rt大胆高清 | 三上悠亚人妻中文字幕在线 | 精品国精品国产自在久国产87 | 亚洲欧美中文字幕5发布 | 一个人看的www免费视频在线观看 | 国产尤物精品视频 | 欧美精品国产综合久久 | 亚洲小说春色综合另类 | 成人性做爰aaa片免费看不忠 | 欧洲熟妇精品视频 | 国产精华av午夜在线观看 | 成年女人永久免费看片 | 嫩b人妻精品一区二区三区 | 亚洲中文字幕在线无码一区二区 | 亚洲精品一区二区三区大桥未久 | 国产成人无码区免费内射一片色欲 | 成年女人永久免费看片 | 国产香蕉尹人视频在线 | 免费男性肉肉影院 | 中文毛片无遮挡高清免费 | 夜夜躁日日躁狠狠久久av | 国产黄在线观看免费观看不卡 | 一区二区三区高清视频一 | 亚无码乱人伦一区二区 | 婷婷综合久久中文字幕蜜桃三电影 | 激情综合激情五月俺也去 | 国产亚洲精品久久久久久大师 | 亚洲精品综合五月久久小说 | 亚洲欧美色中文字幕在线 | 国产在线精品一区二区高清不卡 | 亚洲色大成网站www国产 | 欧美精品无码一区二区三区 | 国产精品无码成人午夜电影 | 性生交片免费无码看人 | 狠狠亚洲超碰狼人久久 | 四虎4hu永久免费 | 久久久成人毛片无码 | 亚洲熟妇色xxxxx欧美老妇y | 初尝人妻少妇中文字幕 | 亚洲爆乳无码专区 | 领导边摸边吃奶边做爽在线观看 | 国产无套粉嫩白浆在线 | 成 人 免费观看网站 | 欧美老妇交乱视频在线观看 | 国产综合色产在线精品 | 久久综合给久久狠狠97色 | 国产成人综合美国十次 | 国产激情综合五月久久 | 呦交小u女精品视频 | 7777奇米四色成人眼影 | 全黄性性激高免费视频 | 性生交大片免费看l | 国产真实乱对白精彩久久 | www一区二区www免费 | 噜噜噜亚洲色成人网站 | 精品久久久久久人妻无码中文字幕 | 免费中文字幕日韩欧美 | 欧美性猛交内射兽交老熟妇 | 国产精品国产自线拍免费软件 | 精品夜夜澡人妻无码av蜜桃 | 欧美日韩色另类综合 | 欧美大屁股xxxxhd黑色 | 国产精品久久久久久亚洲毛片 | 国产精品毛多多水多 | 日韩无码专区 | 老头边吃奶边弄进去呻吟 | 国产高清不卡无码视频 | 欧美日韩亚洲国产精品 | 中文字幕无码热在线视频 | 久久精品无码一区二区三区 | 成人免费视频视频在线观看 免费 | 东北女人啪啪对白 | 亚洲国产av精品一区二区蜜芽 | 国内精品久久久久久中文字幕 | 99riav国产精品视频 | 亚洲欧美日韩国产精品一区二区 | 丰满岳乱妇在线观看中字无码 | 国产午夜视频在线观看 | 亚洲色欲色欲欲www在线 | 国产无遮挡又黄又爽免费视频 | 内射巨臀欧美在线视频 | 亚洲成a人一区二区三区 | 中文久久乱码一区二区 | 装睡被陌生人摸出水好爽 | 国产成人午夜福利在线播放 | 日本一区二区更新不卡 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲狠狠婷婷综合久久 | 日韩av无码一区二区三区不卡 | 国产香蕉尹人综合在线观看 | 国产9 9在线 | 中文 | 国产另类ts人妖一区二区 | 日韩精品a片一区二区三区妖精 | 国产福利视频一区二区 | 精品亚洲成av人在线观看 | 男人扒开女人内裤强吻桶进去 | 国产亚洲精品久久久久久久久动漫 | 成人女人看片免费视频放人 | 欧美丰满少妇xxxx性 | 欧美老妇与禽交 | 久激情内射婷内射蜜桃人妖 | 国产激情精品一区二区三区 | 午夜福利不卡在线视频 | 亚洲精品国产第一综合99久久 | 东京一本一道一二三区 | 成人精品视频一区二区三区尤物 | 亚洲国产午夜精品理论片 | 免费看男女做好爽好硬视频 | 免费无码av一区二区 | 一二三四社区在线中文视频 | 少妇性俱乐部纵欲狂欢电影 | 无人区乱码一区二区三区 | 亚洲色在线无码国产精品不卡 | 日韩 欧美 动漫 国产 制服 | 久久国产精品精品国产色婷婷 | 午夜成人1000部免费视频 | 无码精品国产va在线观看dvd | 伦伦影院午夜理论片 | 日本护士毛茸茸高潮 | 高清无码午夜福利视频 | 又大又硬又爽免费视频 | 国产成人无码一二三区视频 | a在线亚洲男人的天堂 | 永久黄网站色视频免费直播 | 西西人体www44rt大胆高清 | 粗大的内捧猛烈进出视频 | 成人精品视频一区二区 | 亚洲精品一区二区三区在线 | 一二三四在线观看免费视频 | 久久久久久国产精品无码下载 | 东京一本一道一二三区 | 亚洲s色大片在线观看 | 1000部夫妻午夜免费 | 真人与拘做受免费视频 | 国产人妻人伦精品1国产丝袜 | 国产精品无码成人午夜电影 | 老熟妇乱子伦牲交视频 | 国产精品嫩草久久久久 | 狂野欧美性猛交免费视频 | 亚洲成av人片在线观看无码不卡 | 国产精品无码一区二区桃花视频 | 国产精品亚洲lv粉色 | 亚洲成a人片在线观看无码 | 中文字幕中文有码在线 | 国产精品内射视频免费 | www一区二区www免费 | 在线视频网站www色 | 亚洲国产成人a精品不卡在线 | 欧美日本精品一区二区三区 | 福利一区二区三区视频在线观看 | 天堂亚洲免费视频 | 97资源共享在线视频 | 一本久久a久久精品亚洲 | 欧美亚洲日韩国产人成在线播放 | 国产人妻人伦精品1国产丝袜 | 亚洲区小说区激情区图片区 | 久久综合久久自在自线精品自 | 性色欲网站人妻丰满中文久久不卡 | 少妇人妻偷人精品无码视频 | 99国产精品白浆在线观看免费 | 精品国产青草久久久久福利 | 无码免费一区二区三区 | 国产精品无码成人午夜电影 | 性啪啪chinese东北女人 | 国产乱码精品一品二品 | 久久久久久av无码免费看大片 | 人妻少妇精品久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲s码欧洲m码国产av | 国产精品亚洲专区无码不卡 | 激情综合激情五月俺也去 | 亚洲 欧美 激情 小说 另类 | 奇米影视888欧美在线观看 | 无码午夜成人1000部免费视频 | 国产人妻精品一区二区三区不卡 | 亚洲午夜久久久影院 | 一本久道久久综合狠狠爱 | 色婷婷av一区二区三区之红樱桃 | 麻豆人妻少妇精品无码专区 | 夜夜影院未满十八勿进 | 日欧一片内射va在线影院 | 国产成人无码av一区二区 | 又大又硬又黄的免费视频 | 日韩少妇内射免费播放 | 亚洲熟女一区二区三区 | 久久精品视频在线看15 | 九九在线中文字幕无码 | 国产女主播喷水视频在线观看 | 性欧美牲交xxxxx视频 | 中文字幕日韩精品一区二区三区 | 国产精品无码mv在线观看 | 红桃av一区二区三区在线无码av | 中文字幕av无码一区二区三区电影 | 精品无码国产一区二区三区av | 色欲久久久天天天综合网精品 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品久久久久无码av色戒 | 欧美怡红院免费全部视频 | 午夜福利电影 | 乱码av麻豆丝袜熟女系列 | 中文字幕人妻丝袜二区 | 久久精品丝袜高跟鞋 | 精品一区二区不卡无码av | 亚洲高清偷拍一区二区三区 | 人妻插b视频一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 人人超人人超碰超国产 | 99久久精品日本一区二区免费 | 国产黑色丝袜在线播放 | 精品国产福利一区二区 | 国精产品一品二品国精品69xx | 国产艳妇av在线观看果冻传媒 | 亚洲一区av无码专区在线观看 | 国产精品99久久精品爆乳 | 97精品人妻一区二区三区香蕉 | 熟女体下毛毛黑森林 | 国产免费久久久久久无码 | 色欲综合久久中文字幕网 | 精品一二三区久久aaa片 | 精品国产麻豆免费人成网站 | 无码成人精品区在线观看 | 成人亚洲精品久久久久 | 国产精品香蕉在线观看 | 正在播放老肥熟妇露脸 | 人妻少妇精品视频专区 | 男女下面进入的视频免费午夜 | 丰满岳乱妇在线观看中字无码 | 97精品人妻一区二区三区香蕉 | 97夜夜澡人人爽人人喊中国片 | 久久久久久九九精品久 | 一个人免费观看的www视频 | 亚洲精品www久久久 | 鲁一鲁av2019在线 | 亚洲精品一区二区三区大桥未久 | 久久亚洲日韩精品一区二区三区 | 麻豆成人精品国产免费 | 久久www免费人成人片 | 成人亚洲精品久久久久软件 | 精品国偷自产在线视频 | 精品 日韩 国产 欧美 视频 | 乱中年女人伦av三区 | 日韩精品久久久肉伦网站 | 日韩av无码中文无码电影 | 欧美丰满熟妇xxxx | 国产精品久久国产三级国 | 成熟女人特级毛片www免费 | 亚洲国精产品一二二线 | 一个人看的视频www在线 | 国产手机在线αⅴ片无码观看 | 久久视频在线观看精品 | 无码人妻久久一区二区三区不卡 | 丰满少妇人妻久久久久久 | 国产一区二区三区日韩精品 | 国产成人精品一区二区在线小狼 | 99久久精品国产一区二区蜜芽 | 国产精品无码一区二区桃花视频 | 色窝窝无码一区二区三区色欲 | 免费国产黄网站在线观看 | 两性色午夜视频免费播放 | 国产精品嫩草久久久久 | 日韩成人一区二区三区在线观看 | 精品乱码久久久久久久 | 久久久久久久人妻无码中文字幕爆 | 国产精品-区区久久久狼 | 麻豆md0077饥渴少妇 | 欧美日韩色另类综合 | 日韩精品一区二区av在线 | 一本久道久久综合婷婷五月 | 日韩 欧美 动漫 国产 制服 | 97无码免费人妻超级碰碰夜夜 | 无码国模国产在线观看 | 中文亚洲成a人片在线观看 | 极品嫩模高潮叫床 | 女人被爽到呻吟gif动态图视看 | 美女扒开屁股让男人桶 | 成人精品一区二区三区中文字幕 | 中文字幕无码av激情不卡 | 国产高清不卡无码视频 | 国产熟妇另类久久久久 | 97精品国产97久久久久久免费 | 亚洲va欧美va天堂v国产综合 | 国产av人人夜夜澡人人爽麻豆 | 精品一二三区久久aaa片 | 亚洲精品综合五月久久小说 | 久久午夜无码鲁丝片 | 麻豆md0077饥渴少妇 | 最近中文2019字幕第二页 | 中文字幕精品av一区二区五区 | 蜜桃视频韩日免费播放 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产精品高潮呻吟av久久 | 久久国语露脸国产精品电影 | 东京无码熟妇人妻av在线网址 | 国产内射老熟女aaaa | 99在线 | 亚洲 | 伊人久久大香线蕉亚洲 | 免费观看又污又黄的网站 | 久久久中文字幕日本无吗 | 黑人粗大猛烈进出高潮视频 | 国产免费久久精品国产传媒 | 国产精品亚洲五月天高清 | 国产精品资源一区二区 | 欧美国产日韩久久mv | 亚洲国产精品无码久久久久高潮 | 亚洲欧美国产精品久久 | 青青青爽视频在线观看 | 亚洲爆乳大丰满无码专区 | 亚洲男人av天堂午夜在 | 女人被男人躁得好爽免费视频 | 久久国产精品_国产精品 | 亚洲va中文字幕无码久久不卡 | 红桃av一区二区三区在线无码av | 国产亚洲人成a在线v网站 | 7777奇米四色成人眼影 | 国内揄拍国内精品人妻 | 亚洲欧美日韩国产精品一区二区 | 无人区乱码一区二区三区 | 成熟妇人a片免费看网站 | 最近的中文字幕在线看视频 | 狠狠色丁香久久婷婷综合五月 | 天堂а√在线地址中文在线 | 亚洲色在线无码国产精品不卡 | 妺妺窝人体色www在线小说 | 婷婷丁香五月天综合东京热 | 亚洲熟妇色xxxxx亚洲 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲精品www久久久 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品国产av色一区二区深夜久久 | 精品亚洲韩国一区二区三区 | 欧美高清在线精品一区 | 日本大香伊一区二区三区 | 超碰97人人做人人爱少妇 | 亚洲 激情 小说 另类 欧美 | 午夜免费福利小电影 | 日韩视频 中文字幕 视频一区 | 熟妇人妻中文av无码 | 欧美freesex黑人又粗又大 | 国产精品.xx视频.xxtv | 亚洲日韩精品欧美一区二区 | 97精品国产97久久久久久免费 | 精品日本一区二区三区在线观看 | 性欧美疯狂xxxxbbbb | 青青青爽视频在线观看 | 日日躁夜夜躁狠狠躁 | 国产麻豆精品一区二区三区v视界 | 亚洲熟悉妇女xxx妇女av | 一二三四社区在线中文视频 | 久久久久久久久蜜桃 | 亚洲精品国产精品乱码视色 | av无码不卡在线观看免费 | 国产av一区二区精品久久凹凸 | 欧美自拍另类欧美综合图片区 | 丁香啪啪综合成人亚洲 | av人摸人人人澡人人超碰下载 | 熟妇人妻无码xxx视频 | 色 综合 欧美 亚洲 国产 | 欧美日韩一区二区三区自拍 | 内射老妇bbwx0c0ck | 少妇邻居内射在线 | 久久天天躁狠狠躁夜夜免费观看 | 精品久久久中文字幕人妻 | 九九久久精品国产免费看小说 | 国产97人人超碰caoprom | 中文字幕无码热在线视频 | 亚洲欧洲中文日韩av乱码 | aⅴ亚洲 日韩 色 图网站 播放 | 国产凸凹视频一区二区 | 狠狠噜狠狠狠狠丁香五月 | 久久久久久国产精品无码下载 | 国产绳艺sm调教室论坛 | 国产香蕉尹人视频在线 | 99国产欧美久久久精品 | 国产内射爽爽大片视频社区在线 | 国产亚洲日韩欧美另类第八页 | 樱花草在线播放免费中文 | 性欧美大战久久久久久久 | 99久久精品无码一区二区毛片 | 亚洲精品久久久久中文第一幕 | 曰韩少妇内射免费播放 | 国产人妻久久精品二区三区老狼 | 人人妻人人澡人人爽欧美一区 | 国内丰满熟女出轨videos | 国产偷自视频区视频 | 国产精品美女久久久 | 午夜精品久久久久久久 | 欧美日韩在线亚洲综合国产人 | 国产成人无码一二三区视频 | 无码人中文字幕 | 激情内射亚州一区二区三区爱妻 | 熟妇人妻激情偷爽文 | 免费无码一区二区三区蜜桃大 | 国产精品久久久久影院嫩草 | 亚洲日本va中文字幕 | 在线播放亚洲第一字幕 | 国产精品久久国产精品99 | 蜜桃视频插满18在线观看 | 久久99国产综合精品 | 精品无码成人片一区二区98 | 亚洲国产成人a精品不卡在线 | 久久综合网欧美色妞网 | 国产精品亚洲а∨无码播放麻豆 | 领导边摸边吃奶边做爽在线观看 | 国产精品久久久久久亚洲影视内衣 | 欧美色就是色 | 亚洲爆乳无码专区 | 人妻互换免费中文字幕 | 亚洲人成人无码网www国产 | 亚洲欧美日韩成人高清在线一区 | 久久人人97超碰a片精品 | 久久精品视频在线看15 | aa片在线观看视频在线播放 | 永久免费观看美女裸体的网站 | 日本一区二区三区免费高清 | 亚洲欧美国产精品久久 | 老司机亚洲精品影院无码 | 中文字幕无码日韩欧毛 | 亚洲人成影院在线观看 | 亚洲热妇无码av在线播放 | 亚洲一区二区三区香蕉 | 在线成人www免费观看视频 | 亚洲欧洲无卡二区视頻 | 性欧美大战久久久久久久 | 国产午夜无码视频在线观看 | 婷婷综合久久中文字幕蜜桃三电影 | 人妻aⅴ无码一区二区三区 | 正在播放老肥熟妇露脸 | 亚洲国产av美女网站 | 高潮毛片无遮挡高清免费视频 | 性史性农村dvd毛片 | 最新国产乱人伦偷精品免费网站 | 国产av剧情md精品麻豆 | 亚洲人亚洲人成电影网站色 | 欧美自拍另类欧美综合图片区 | 色婷婷香蕉在线一区二区 | 国内精品九九久久久精品 | 纯爱无遮挡h肉动漫在线播放 | 麻豆国产丝袜白领秘书在线观看 | 超碰97人人做人人爱少妇 | 97久久超碰中文字幕 | 久久综合狠狠综合久久综合88 | 无遮挡啪啪摇乳动态图 | 真人与拘做受免费视频一 | 国产精品亚洲а∨无码播放麻豆 | 国产麻豆精品精东影业av网站 | 亚洲精品久久久久avwww潮水 | 久久综合给久久狠狠97色 | 精品无码一区二区三区爱欲 | 牲欲强的熟妇农村老妇女 | 亚洲国产精品久久久久久 | 成人动漫在线观看 | 亚洲一区二区三区含羞草 | 亚洲aⅴ无码成人网站国产app | 一本久道久久综合婷婷五月 | 夜夜躁日日躁狠狠久久av | 国产精品亚洲а∨无码播放麻豆 | 久久精品国产大片免费观看 | 精品少妇爆乳无码av无码专区 | 国内精品人妻无码久久久影院 | 亚洲欧美日韩国产精品一区二区 | 婷婷丁香五月天综合东京热 | 国产精品久久久久7777 | 午夜精品一区二区三区在线观看 | 久热国产vs视频在线观看 | 国产精品久久国产三级国 | 永久免费观看美女裸体的网站 | 亚洲成a人一区二区三区 | 久久精品视频在线看15 | 色婷婷香蕉在线一区二区 | 国产电影无码午夜在线播放 | 少妇人妻av毛片在线看 | 久久久中文久久久无码 | av无码久久久久不卡免费网站 | 国产一区二区三区影院 | 999久久久国产精品消防器材 | 日本大乳高潮视频在线观看 | 乱人伦人妻中文字幕无码 | 三上悠亚人妻中文字幕在线 | 国产婷婷色一区二区三区在线 | 久久久成人毛片无码 | 亚洲中文字幕在线观看 | 亚洲男人av香蕉爽爽爽爽 | 欧美亚洲国产一区二区三区 | 国产区女主播在线观看 | 免费观看激色视频网站 | 国产区女主播在线观看 | 装睡被陌生人摸出水好爽 | 国产口爆吞精在线视频 | 老子影院午夜精品无码 | 亚洲精品国产第一综合99久久 | 亚洲天堂2017无码中文 | 久久久婷婷五月亚洲97号色 | 内射爽无广熟女亚洲 | 亚洲精品一区三区三区在线观看 | 国产精品久久久久7777 | 黑人粗大猛烈进出高潮视频 | 九月婷婷人人澡人人添人人爽 | 天干天干啦夜天干天2017 | 无码人妻久久一区二区三区不卡 | 精品无人国产偷自产在线 | 久久天天躁夜夜躁狠狠 | 无码成人精品区在线观看 | 爽爽影院免费观看 | 国产激情精品一区二区三区 | 伊人久久大香线蕉午夜 | 久久综合久久自在自线精品自 | 亚洲 日韩 欧美 成人 在线观看 | 鲁大师影院在线观看 | 精品人妻av区 | 国产精品办公室沙发 | 国产精品香蕉在线观看 | 一本色道久久综合亚洲精品不卡 | 精品国产一区av天美传媒 | 日本一区二区更新不卡 | 男女下面进入的视频免费午夜 | 好男人www社区 | 国産精品久久久久久久 | 日韩 欧美 动漫 国产 制服 | 我要看www免费看插插视频 | 无码精品人妻一区二区三区av | 99久久99久久免费精品蜜桃 | 精品久久久久久亚洲精品 | 久久精品中文闷骚内射 | 帮老师解开蕾丝奶罩吸乳网站 | 日韩无套无码精品 | 亚洲 欧美 激情 小说 另类 | 水蜜桃av无码 | 色欲av亚洲一区无码少妇 | 国产在线精品一区二区高清不卡 | 国产黑色丝袜在线播放 | 天堂在线观看www | 国产香蕉尹人视频在线 | av香港经典三级级 在线 | 久久久久se色偷偷亚洲精品av | 久久久久久久人妻无码中文字幕爆 | 国产成人无码区免费内射一片色欲 | 老熟女乱子伦 | 97精品人妻一区二区三区香蕉 | 曰韩无码二三区中文字幕 | 日韩欧美中文字幕公布 | 亚洲色偷偷男人的天堂 | 伦伦影院午夜理论片 | 久久国产精品偷任你爽任你 | 少妇久久久久久人妻无码 | 亚洲七七久久桃花影院 | 午夜无码人妻av大片色欲 | 日本精品少妇一区二区三区 | 成人免费无码大片a毛片 | 成人免费视频一区二区 | 国产香蕉尹人综合在线观看 | 爆乳一区二区三区无码 | 精品久久久中文字幕人妻 | 十八禁视频网站在线观看 | 99久久精品无码一区二区毛片 | 国产乱码精品一品二品 | 97人妻精品一区二区三区 | 久久久精品欧美一区二区免费 | 午夜成人1000部免费视频 | 秋霞特色aa大片 | 亚洲午夜无码久久 | 国产99久久精品一区二区 | 欧美xxxx黑人又粗又长 | 精品国偷自产在线 | 国产午夜手机精彩视频 | 人妻无码αv中文字幕久久琪琪布 | 国内精品久久毛片一区二区 | 2019nv天堂香蕉在线观看 | 亚无码乱人伦一区二区 | 黑人粗大猛烈进出高潮视频 | 国产内射爽爽大片视频社区在线 | 亚洲成色www久久网站 | 亚洲 日韩 欧美 成人 在线观看 | 夫妻免费无码v看片 | 无码吃奶揉捏奶头高潮视频 | 国产在线无码精品电影网 | 久久人人97超碰a片精品 | 麻豆md0077饥渴少妇 | 亚洲s色大片在线观看 | 中文字幕无码日韩欧毛 | 精品亚洲韩国一区二区三区 | 国产精品免费大片 | 激情人妻另类人妻伦 | 欧美日韩人成综合在线播放 | 亚洲成av人综合在线观看 | 内射白嫩少妇超碰 | 亚洲性无码av中文字幕 | 激情内射亚州一区二区三区爱妻 | 国产卡一卡二卡三 | 最近的中文字幕在线看视频 | 丰腴饱满的极品熟妇 | 国产做国产爱免费视频 | 国产精品美女久久久久av爽李琼 | 日韩成人一区二区三区在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 午夜福利一区二区三区在线观看 | 性生交片免费无码看人 | 色综合视频一区二区三区 | 乱人伦人妻中文字幕无码久久网 | 亚洲伊人久久精品影院 | 久久久国产一区二区三区 | 美女极度色诱视频国产 | 亚洲色大成网站www | 国语精品一区二区三区 | 成 人 网 站国产免费观看 | 免费人成网站视频在线观看 | 亚洲第一网站男人都懂 | 精品偷拍一区二区三区在线看 | 亚洲熟女一区二区三区 | 成人欧美一区二区三区黑人免费 | 天堂一区人妻无码 | 亚洲精品中文字幕 | 亚洲成a人片在线观看日本 | 美女黄网站人色视频免费国产 | 97夜夜澡人人爽人人喊中国片 | 俺去俺来也在线www色官网 | 99国产欧美久久久精品 | 欧美人妻一区二区三区 | 国产成人综合美国十次 | 又大又紧又粉嫩18p少妇 | 国产乱人无码伦av在线a | 人妻中文无码久热丝袜 | 精品国产麻豆免费人成网站 | 国产内射爽爽大片视频社区在线 | 国产va免费精品观看 | www成人国产高清内射 | 久久久中文字幕日本无吗 | 国产精品内射视频免费 | 亚洲国精产品一二二线 | 男女下面进入的视频免费午夜 | 中文字幕+乱码+中文字幕一区 | 俺去俺来也www色官网 | 在线播放无码字幕亚洲 | 亚洲人成影院在线观看 | 国产免费久久久久久无码 | 国产香蕉尹人综合在线观看 | 欧美 丝袜 自拍 制服 另类 | 色婷婷av一区二区三区之红樱桃 | 99久久无码一区人妻 | 国产av一区二区精品久久凹凸 | 国产精品亚洲一区二区三区喷水 | 亚洲综合无码一区二区三区 | 国产精品第一国产精品 | 欧美成人免费全部网站 | 狠狠色欧美亚洲狠狠色www | 伊人久久大香线蕉av一区二区 | 无码av中文字幕免费放 | a国产一区二区免费入口 | 18禁黄网站男男禁片免费观看 | 黑人大群体交免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 成人精品视频一区二区 | 欧美精品一区二区精品久久 | 久久久成人毛片无码 | 中文字幕无码视频专区 | 免费无码一区二区三区蜜桃大 | 亚洲欧美精品aaaaaa片 | 色综合天天综合狠狠爱 | 又大又紧又粉嫩18p少妇 | 玩弄少妇高潮ⅹxxxyw | 2020最新国产自产精品 | 日韩少妇白浆无码系列 | 扒开双腿疯狂进出爽爽爽视频 | 国产一区二区三区日韩精品 | 无码国内精品人妻少妇 | 国产偷国产偷精品高清尤物 | 欧美阿v高清资源不卡在线播放 | 国产乱码精品一品二品 | 动漫av一区二区在线观看 | 人妻aⅴ无码一区二区三区 | 亚洲精品综合一区二区三区在线 | 好屌草这里只有精品 | 人妻中文无码久热丝袜 | 午夜丰满少妇性开放视频 | 国产极品视觉盛宴 | 在线天堂新版最新版在线8 | 欧美日本精品一区二区三区 | 亚洲人成人无码网www国产 | 欧美日韩亚洲国产精品 | 国产一精品一av一免费 | 国产xxx69麻豆国语对白 | 久久精品中文闷骚内射 | 暴力强奷在线播放无码 | 亚欧洲精品在线视频免费观看 | 久久亚洲精品成人无码 | 女高中生第一次破苞av | 久久精品国产一区二区三区肥胖 | 国产亚洲精品久久久久久久久动漫 | 精品国产aⅴ无码一区二区 | 亚洲人成网站在线播放942 | 欧美精品一区二区精品久久 | 人妻体内射精一区二区三四 | 国产精品嫩草久久久久 | 午夜精品久久久久久久 | 国产小呦泬泬99精品 | 一个人免费观看的www视频 | av无码不卡在线观看免费 | 性生交大片免费看l | 国产莉萝无码av在线播放 | 久久久av男人的天堂 | 欧美 日韩 亚洲 在线 | 色综合天天综合狠狠爱 | 久久久精品欧美一区二区免费 | 国产又粗又硬又大爽黄老大爷视 | 国产成人无码av片在线观看不卡 | 亚洲 日韩 欧美 成人 在线观看 | 无码毛片视频一区二区本码 | 黑人巨大精品欧美一区二区 | 亚洲一区二区三区国产精华液 | 国产亚洲人成在线播放 | 精品乱子伦一区二区三区 | 色爱情人网站 | 国产真实夫妇视频 | 少妇被黑人到高潮喷出白浆 | 国产人成高清在线视频99最全资源 | a片免费视频在线观看 | 欧美性色19p | 欧美丰满老熟妇xxxxx性 | 大色综合色综合网站 | 欧洲熟妇色 欧美 | 久久伊人色av天堂九九小黄鸭 | 领导边摸边吃奶边做爽在线观看 | 国产熟妇高潮叫床视频播放 | 国产亚洲日韩欧美另类第八页 | 中文字幕日韩精品一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 国产精品18久久久久久麻辣 | 国产精华av午夜在线观看 | 色一情一乱一伦一区二区三欧美 | 男人的天堂2018无码 | 色综合久久久久综合一本到桃花网 | 亚洲精品一区二区三区婷婷月 | 色综合久久中文娱乐网 | 成熟女人特级毛片www免费 | 激情内射亚州一区二区三区爱妻 | 日日摸夜夜摸狠狠摸婷婷 | 国产成人无码a区在线观看视频app | 精品国产精品久久一区免费式 | 国产精品无码mv在线观看 | 天堂在线观看www | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 少妇性荡欲午夜性开放视频剧场 | 伊人久久大香线焦av综合影院 | 狠狠躁日日躁夜夜躁2020 | 清纯唯美经典一区二区 | 中文字幕乱码人妻无码久久 | 色一情一乱一伦 | 久久亚洲精品中文字幕无男同 | 日日摸天天摸爽爽狠狠97 | 伦伦影院午夜理论片 | 天天av天天av天天透 | 女高中生第一次破苞av | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 色一情一乱一伦一视频免费看 | 亚洲人成人无码网www国产 | 一本久久a久久精品vr综合 | 欧美国产日韩久久mv | 欧美人与善在线com | 欧美成人午夜精品久久久 | 国产精品无码成人午夜电影 | 波多野结衣一区二区三区av免费 | 色婷婷av一区二区三区之红樱桃 | 久久精品中文字幕一区 | 精品偷拍一区二区三区在线看 | 中文字幕日韩精品一区二区三区 | 亚洲精品一区二区三区大桥未久 | 久久精品人妻少妇一区二区三区 | 免费人成网站视频在线观看 | 一本色道婷婷久久欧美 | 无套内射视频囯产 | 久久久久99精品国产片 | 国产亚洲人成a在线v网站 | 老熟妇乱子伦牲交视频 | 天堂久久天堂av色综合 | 一本久道高清无码视频 | 中文字幕 人妻熟女 | 久久99精品国产麻豆蜜芽 | 欧洲精品码一区二区三区免费看 | 日韩欧美群交p片內射中文 | 午夜福利一区二区三区在线观看 | 色 综合 欧美 亚洲 国产 | 人人妻人人澡人人爽人人精品浪潮 | 性欧美牲交在线视频 | 在线精品国产一区二区三区 | 欧美日韩色另类综合 | 日本免费一区二区三区最新 | 国产激情无码一区二区app | 撕开奶罩揉吮奶头视频 | 日本一区二区三区免费高清 | 欧美 丝袜 自拍 制服 另类 | 成人一区二区免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩人妻无码一区二区三区久久99 | 国产熟女一区二区三区四区五区 | 美女毛片一区二区三区四区 | 亚洲色www成人永久网址 | 在线精品亚洲一区二区 | 在线播放免费人成毛片乱码 | 少妇性l交大片欧洲热妇乱xxx | 亚洲热妇无码av在线播放 | 精品日本一区二区三区在线观看 | 中文字幕人妻丝袜二区 | 久久无码中文字幕免费影院蜜桃 | 亚洲成av人影院在线观看 | 少妇高潮喷潮久久久影院 | 亚洲人成影院在线观看 | 牲欲强的熟妇农村老妇女视频 | 欧美 日韩 人妻 高清 中文 | 日本精品高清一区二区 | 国产一区二区不卡老阿姨 | 亚无码乱人伦一区二区 | 九九热爱视频精品 | 乱码午夜-极国产极内射 | 国产艳妇av在线观看果冻传媒 | 色欲人妻aaaaaaa无码 | 亚洲国产精品一区二区第一页 | 色窝窝无码一区二区三区色欲 | 久久久婷婷五月亚洲97号色 | 麻豆md0077饥渴少妇 | 日韩精品乱码av一区二区 | 国语精品一区二区三区 | 欧美肥老太牲交大战 | 妺妺窝人体色www婷婷 | 国产农村妇女高潮大叫 | 久久国产精品_国产精品 | 麻花豆传媒剧国产免费mv在线 | 国产婷婷色一区二区三区在线 | 久久99精品久久久久久 | 人人澡人人透人人爽 | 999久久久国产精品消防器材 | 久久久久亚洲精品中文字幕 | 亚洲狠狠色丁香婷婷综合 | 女人被男人躁得好爽免费视频 | 国产欧美精品一区二区三区 | 久久99精品久久久久婷婷 | 国产成人无码a区在线观看视频app | 欧美性黑人极品hd | 377p欧洲日本亚洲大胆 | 丁香花在线影院观看在线播放 | 亚洲综合在线一区二区三区 | 亚洲精品一区二区三区四区五区 | 亚洲a无码综合a国产av中文 | 国产精品久久久av久久久 | 国产亚洲tv在线观看 | 亚洲人成网站色7799 | 色婷婷综合激情综在线播放 | 亚洲精品国产精品乱码视色 | 又大又紧又粉嫩18p少妇 | 任你躁国产自任一区二区三区 | 国产精品99久久精品爆乳 | 亚洲理论电影在线观看 | 18无码粉嫩小泬无套在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 东京一本一道一二三区 | 在线观看免费人成视频 | 伊人久久大香线焦av综合影院 | 大乳丰满人妻中文字幕日本 | 成年美女黄网站色大免费全看 | 国产极品美女高潮无套在线观看 | 成人一在线视频日韩国产 | 麻豆成人精品国产免费 | 色五月丁香五月综合五月 | 极品嫩模高潮叫床 | 一本久久伊人热热精品中文字幕 | 国产乱人偷精品人妻a片 | 天天燥日日燥 | 麻豆蜜桃av蜜臀av色欲av | 最近免费中文字幕中文高清百度 | 国产无套内射久久久国产 | 久久久中文久久久无码 | 亚洲国产精品毛片av不卡在线 | 鲁一鲁av2019在线 | 国精产品一品二品国精品69xx | 熟妇女人妻丰满少妇中文字幕 | 中文字幕无码av波多野吉衣 | 亚洲欧美中文字幕5发布 | 国产成人无码av一区二区 | 国产成人精品无码播放 | 国产精品国产三级国产专播 | 国产真实乱对白精彩久久 | 亚洲一区av无码专区在线观看 | 亚洲色成人中文字幕网站 | 日本护士毛茸茸高潮 | 国产亚洲精品久久久久久久久动漫 | 夜夜躁日日躁狠狠久久av | 欧美成人午夜精品久久久 | 国产婷婷色一区二区三区在线 | 成人aaa片一区国产精品 | 国产av一区二区三区最新精品 | 亚洲s色大片在线观看 | 久久久久久av无码免费看大片 | 在线亚洲高清揄拍自拍一品区 | 一本一道久久综合久久 | 亚洲 a v无 码免 费 成 人 a v | 久久无码专区国产精品s | 国产午夜精品一区二区三区嫩草 | 日日躁夜夜躁狠狠躁 | 国产热a欧美热a在线视频 | 夜先锋av资源网站 | 久久精品一区二区三区四区 | 国产乱人偷精品人妻a片 | 又大又紧又粉嫩18p少妇 | 欧洲美熟女乱又伦 | 国内精品人妻无码久久久影院蜜桃 | 国产成人精品视频ⅴa片软件竹菊 | 国产麻豆精品一区二区三区v视界 | 无套内谢的新婚少妇国语播放 | 午夜免费福利小电影 | 久久综合久久自在自线精品自 | 老司机亚洲精品影院 | 久久久亚洲欧洲日产国码αv | 婷婷丁香五月天综合东京热 | 中文字幕无线码免费人妻 | 亚洲日韩一区二区 | 人妻少妇精品无码专区二区 | 亚洲国产高清在线观看视频 | 蜜桃av抽搐高潮一区二区 | 久久综合香蕉国产蜜臀av | 性生交大片免费看l | 日本又色又爽又黄的a片18禁 | 国产精华av午夜在线观看 | 2020最新国产自产精品 | 国产超碰人人爽人人做人人添 | 少妇高潮喷潮久久久影院 | 亚洲狠狠婷婷综合久久 | 色婷婷综合激情综在线播放 | 国产在热线精品视频 | 国产口爆吞精在线视频 | 性欧美疯狂xxxxbbbb | 亚洲一区二区三区香蕉 | 亚洲国产精品成人久久蜜臀 | 亚洲日韩av片在线观看 | 久久 国产 尿 小便 嘘嘘 | 久久久久久亚洲精品a片成人 | 美女极度色诱视频国产 | 国产精品欧美成人 | 亚洲成a人片在线观看无码3d | 国语精品一区二区三区 | 人妻天天爽夜夜爽一区二区 | 免费观看黄网站 | 日韩视频 中文字幕 视频一区 | 初尝人妻少妇中文字幕 | 岛国片人妻三上悠亚 | 精品欧洲av无码一区二区三区 | 国产精品无码mv在线观看 | 中文字幕 亚洲精品 第1页 | 野外少妇愉情中文字幕 | 成 人 网 站国产免费观看 | 中文字幕精品av一区二区五区 | 狂野欧美性猛交免费视频 | 男女下面进入的视频免费午夜 | 在线天堂新版最新版在线8 | 国产高清不卡无码视频 | 宝宝好涨水快流出来免费视频 | 日本一本二本三区免费 | 国产欧美熟妇另类久久久 | 亚洲成av人影院在线观看 | 领导边摸边吃奶边做爽在线观看 | 性色av无码免费一区二区三区 | 性欧美熟妇videofreesex | 妺妺窝人体色www婷婷 | 日日夜夜撸啊撸 | 亚洲日韩中文字幕在线播放 | 国产精品无码成人午夜电影 | 精品人妻中文字幕有码在线 | 伦伦影院午夜理论片 | 欧美性猛交内射兽交老熟妇 | 日本护士xxxxhd少妇 | 亚洲成a人片在线观看日本 | 国产卡一卡二卡三 | 午夜无码人妻av大片色欲 | 日本精品人妻无码免费大全 | 97久久精品无码一区二区 | 亚洲日本va午夜在线电影 | 中国女人内谢69xxxx | 精品久久久无码人妻字幂 | 综合人妻久久一区二区精品 | 国产av剧情md精品麻豆 | 最新国产乱人伦偷精品免费网站 | 乱人伦人妻中文字幕无码久久网 | 国产精品二区一区二区aⅴ污介绍 | 国产电影无码午夜在线播放 | 99久久精品国产一区二区蜜芽 | 成人片黄网站色大片免费观看 | 免费国产黄网站在线观看 | 国产av无码专区亚洲a∨毛片 | 无码国产激情在线观看 | 久久婷婷五月综合色国产香蕉 | 成人一在线视频日韩国产 | 97色伦图片97综合影院 | 精品乱码久久久久久久 | 国产精品久久久久久无码 | 在线精品亚洲一区二区 | 国产真实伦对白全集 | 野狼第一精品社区 | 中文字幕无线码 | 强开小婷嫩苞又嫩又紧视频 | 色综合久久久久综合一本到桃花网 | 久久午夜夜伦鲁鲁片无码免费 | 88国产精品欧美一区二区三区 | 日韩精品无码免费一区二区三区 | 四虎影视成人永久免费观看视频 | 日日天日日夜日日摸 | www成人国产高清内射 | 国产又粗又硬又大爽黄老大爷视 | 亚洲国产成人a精品不卡在线 | 亚洲精品一区二区三区四区五区 | 国产综合在线观看 | 三级4级全黄60分钟 | 免费中文字幕日韩欧美 | 日本高清一区免费中文视频 | 麻豆国产丝袜白领秘书在线观看 | 扒开双腿吃奶呻吟做受视频 | 欧美xxxx黑人又粗又长 | 爆乳一区二区三区无码 | 国产莉萝无码av在线播放 | 欧美精品在线观看 | 女人被男人爽到呻吟的视频 | 亚洲自偷自拍另类第1页 | 极品尤物被啪到呻吟喷水 | 中文无码成人免费视频在线观看 | 日韩人妻少妇一区二区三区 | 人人妻人人澡人人爽欧美一区 | 日本va欧美va欧美va精品 | 欧美喷潮久久久xxxxx | 亚洲 日韩 欧美 成人 在线观看 | 欧美一区二区三区视频在线观看 | 爱做久久久久久 | 亚洲啪av永久无码精品放毛片 | 午夜不卡av免费 一本久久a久久精品vr综合 | 人妻体内射精一区二区三四 | 欧洲vodafone精品性 | 久久久久成人精品免费播放动漫 | 亚洲精品久久久久中文第一幕 | 性生交片免费无码看人 | 人妻插b视频一区二区三区 | 国产一区二区三区影院 | 国内精品人妻无码久久久影院蜜桃 | 人人妻人人澡人人爽欧美精品 | 亚洲区欧美区综合区自拍区 | 欧美国产日产一区二区 | 久久久久久国产精品无码下载 | 国产一区二区三区四区五区加勒比 | 丰满少妇熟乱xxxxx视频 | 白嫩日本少妇做爰 | 精品国产aⅴ无码一区二区 | 精品欧洲av无码一区二区三区 | 国产精品高潮呻吟av久久4虎 | 精品国产麻豆免费人成网站 | 亚洲gv猛男gv无码男同 | 天干天干啦夜天干天2017 | 久久久久se色偷偷亚洲精品av | 精品乱码久久久久久久 | 麻花豆传媒剧国产免费mv在线 | 中文字幕人成乱码熟女app | 精品久久8x国产免费观看 | 欧美老人巨大xxxx做受 | 中文字幕无码免费久久9一区9 | 亚洲一区二区三区在线观看网站 | 国产精品第一区揄拍无码 | 中文字幕人妻无码一区二区三区 | 露脸叫床粗话东北少妇 | 少妇厨房愉情理9仑片视频 | 伊人久久婷婷五月综合97色 | 麻豆果冻传媒2021精品传媒一区下载 | 97资源共享在线视频 | 98国产精品综合一区二区三区 | 精品无人国产偷自产在线 | 精品 日韩 国产 欧美 视频 | 狠狠色噜噜狠狠狠7777奇米 | 午夜精品一区二区三区在线观看 | 未满成年国产在线观看 | 日本一区二区三区免费高清 | 精品人妻中文字幕有码在线 | yw尤物av无码国产在线观看 | 妺妺窝人体色www在线小说 | 理论片87福利理论电影 | 亚洲精品一区三区三区在线观看 | 欧美乱妇无乱码大黄a片 | 亚洲中文字幕av在天堂 | 台湾无码一区二区 | 国产特级毛片aaaaaa高潮流水 | 男女性色大片免费网站 | 国产精品人人妻人人爽 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 2020久久超碰国产精品最新 | 国产卡一卡二卡三 | 国产黄在线观看免费观看不卡 | 在教室伦流澡到高潮hnp视频 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕无码人妻少妇免费 | 真人与拘做受免费视频一 | 亚洲成在人网站无码天堂 | 欧美国产日产一区二区 | 国产精品鲁鲁鲁 | 久久99精品国产麻豆蜜芽 | 亚洲 日韩 欧美 成人 在线观看 | 荫蒂添的好舒服视频囗交 | 国产午夜无码视频在线观看 | 精品偷拍一区二区三区在线看 | 日本熟妇人妻xxxxx人hd | 在线成人www免费观看视频 | 国产精品久久久久久久影院 | 国产做国产爱免费视频 | 国产成人精品必看 | 久久久久成人精品免费播放动漫 | 欧美喷潮久久久xxxxx | 久久伊人色av天堂九九小黄鸭 | 国产性生大片免费观看性 | 久久久精品国产sm最大网站 | 国产超碰人人爽人人做人人添 | 国产亚洲欧美在线专区 | 国产精品人人妻人人爽 | 少妇无码av无码专区在线观看 | 无码国内精品人妻少妇 | 色窝窝无码一区二区三区色欲 | 国产精品va在线观看无码 | 久久久久成人精品免费播放动漫 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕日韩精品一区二区三区 | 2020久久香蕉国产线看观看 | 青春草在线视频免费观看 | 国产人成高清在线视频99最全资源 | 国产乱人偷精品人妻a片 | 国产乱人无码伦av在线a | 131美女爱做视频 | 成人一区二区免费视频 | 久久久久免费精品国产 | 内射白嫩少妇超碰 | 亚洲自偷自拍另类第1页 | 国产精品人人爽人人做我的可爱 | 日本欧美一区二区三区乱码 | 2019nv天堂香蕉在线观看 | 狠狠cao日日穞夜夜穞av | 亚洲狠狠婷婷综合久久 | 无码人妻av免费一区二区三区 | 少女韩国电视剧在线观看完整 | 久久久久久九九精品久 | a在线亚洲男人的天堂 | 国产超级va在线观看视频 | 少妇被黑人到高潮喷出白浆 | 又大又硬又黄的免费视频 | 久久精品99久久香蕉国产色戒 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 一本久道高清无码视频 | 麻豆果冻传媒2021精品传媒一区下载 | 国产成人无码专区 | 成人无码影片精品久久久 | 野狼第一精品社区 | 又粗又大又硬又长又爽 | 久久久中文字幕日本无吗 | 亚洲日韩av片在线观看 | 欧美人与牲动交xxxx | 欧美国产亚洲日韩在线二区 | 无码吃奶揉捏奶头高潮视频 | 人妻少妇被猛烈进入中文字幕 | 国产乡下妇女做爰 | 亚洲精品一区二区三区在线观看 | 人妻少妇精品无码专区动漫 | 麻豆人妻少妇精品无码专区 | 国产超碰人人爽人人做人人添 | 国产性生交xxxxx无码 | 午夜无码人妻av大片色欲 | 色婷婷av一区二区三区之红樱桃 | 无码帝国www无码专区色综合 | 国产成人无码a区在线观看视频app | 波多野结衣av一区二区全免费观看 | 狠狠cao日日穞夜夜穞av | 精品久久8x国产免费观看 | 成熟人妻av无码专区 | 精品无人区无码乱码毛片国产 | 国产成人av免费观看 | 少妇一晚三次一区二区三区 | 国产小呦泬泬99精品 | 2020最新国产自产精品 | 亚洲自偷精品视频自拍 | 婷婷五月综合缴情在线视频 | 一个人看的www免费视频在线观看 | 国产精品美女久久久久av爽李琼 | 鲁一鲁av2019在线 | 国产精品国产三级国产专播 | 国产激情综合五月久久 | 久久国语露脸国产精品电影 | 国产成人无码区免费内射一片色欲 | 久久久久久av无码免费看大片 | 亚洲精品国产第一综合99久久 | 亚洲人成人无码网www国产 | 午夜丰满少妇性开放视频 | 丝袜人妻一区二区三区 | 天天av天天av天天透 | 一二三四在线观看免费视频 | 天天燥日日燥 | 亚洲色偷偷偷综合网 | 日本精品人妻无码免费大全 | 无码人妻精品一区二区三区下载 | 国产成人亚洲综合无码 | 人妻少妇精品无码专区动漫 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日日躁夜夜躁狠狠躁 | 领导边摸边吃奶边做爽在线观看 | 久久精品国产大片免费观看 | 久久综合给合久久狠狠狠97色 | 欧美性猛交内射兽交老熟妇 | 精品少妇爆乳无码av无码专区 | 人人澡人人妻人人爽人人蜜桃 | 无码国模国产在线观看 | 水蜜桃亚洲一二三四在线 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品人人妻人人爽 | 水蜜桃亚洲一二三四在线 | 亚洲人成网站色7799 | 精品夜夜澡人妻无码av蜜桃 | 国产精品永久免费视频 | 亚洲精品综合一区二区三区在线 | 澳门永久av免费网站 | 日本一区二区更新不卡 | 国产成人精品优优av | a在线观看免费网站大全 | 国产精品.xx视频.xxtv | 亚洲日韩av一区二区三区四区 | 国产激情综合五月久久 | 欧美真人作爱免费视频 | 免费网站看v片在线18禁无码 | 成人三级无码视频在线观看 | 老熟妇乱子伦牲交视频 | 欧美自拍另类欧美综合图片区 | 成在人线av无码免观看麻豆 | 无码纯肉视频在线观看 | 美女扒开屁股让男人桶 | av人摸人人人澡人人超碰下载 | 国产精品永久免费视频 | 东京热无码av男人的天堂 | 人妻少妇被猛烈进入中文字幕 | 好男人www社区 | 国产内射爽爽大片视频社区在线 | 成人免费视频在线观看 | 人妻中文无码久热丝袜 | 国内精品久久久久久中文字幕 | 亚洲乱亚洲乱妇50p | 亚洲精品一区二区三区婷婷月 | 波多野结衣av一区二区全免费观看 | 中文字幕+乱码+中文字幕一区 | 少妇无码av无码专区在线观看 | 亚洲最大成人网站 | 在线观看免费人成视频 | 麻豆av传媒蜜桃天美传媒 | 久久久无码中文字幕久... | 国产美女精品一区二区三区 | 无码午夜成人1000部免费视频 | 在线а√天堂中文官网 | 欧美35页视频在线观看 | 熟妇人妻中文av无码 | 人妻中文无码久热丝袜 | 日日橹狠狠爱欧美视频 | 国产又爽又黄又刺激的视频 | 一本久久a久久精品vr综合 | 扒开双腿吃奶呻吟做受视频 | 亚洲色无码一区二区三区 | 高清无码午夜福利视频 | 成人性做爰aaa片免费看 | 强辱丰满人妻hd中文字幕 | 国产亚洲视频中文字幕97精品 | 国产av无码专区亚洲awww | 久久99精品国产.久久久久 | 亚洲人成影院在线无码按摩店 | 午夜无码区在线观看 | 俺去俺来也www色官网 | 全黄性性激高免费视频 | 国产精品久久久av久久久 | 亚洲国产午夜精品理论片 | 精品无人国产偷自产在线 | 国产黄在线观看免费观看不卡 | 在线看片无码永久免费视频 | 中文字幕无码人妻少妇免费 | 成人精品一区二区三区中文字幕 | 在线成人www免费观看视频 | 日韩人妻无码一区二区三区久久99 | 国产亚洲精品久久久闺蜜 | 少妇无码一区二区二三区 | 无码人妻丰满熟妇区五十路百度 | 午夜福利一区二区三区在线观看 | 日本一卡2卡3卡四卡精品网站 | 国产乱码精品一品二品 | 久久久精品国产sm最大网站 | 精品人人妻人人澡人人爽人人 | 色婷婷久久一区二区三区麻豆 | 激情爆乳一区二区三区 | 国内精品一区二区三区不卡 | 亚洲精品国产精品乱码视色 | 牲欲强的熟妇农村老妇女 | 国产激情综合五月久久 | 中文字幕无码av激情不卡 | 欧美老妇与禽交 | 樱花草在线社区www | 又大又紧又粉嫩18p少妇 | 国产精品久久久一区二区三区 | 精品一区二区三区无码免费视频 | 天天综合网天天综合色 | 欧洲精品码一区二区三区免费看 | 少妇高潮喷潮久久久影院 | 色综合久久88色综合天天 | 初尝人妻少妇中文字幕 | 内射老妇bbwx0c0ck | 久久综合网欧美色妞网 | 欧美黑人乱大交 | 国产在线精品一区二区高清不卡 | 国产成人一区二区三区在线观看 | 成人亚洲精品久久久久软件 | 国产熟妇高潮叫床视频播放 | 免费观看的无遮挡av | 日本熟妇大屁股人妻 | 久久国产精品_国产精品 | 精品一区二区不卡无码av | 精品无码国产自产拍在线观看蜜 | 精品偷拍一区二区三区在线看 | 中文字幕无码免费久久99 | 国产无遮挡又黄又爽免费视频 | 日韩精品久久久肉伦网站 | 久久久久久av无码免费看大片 | 国产在线精品一区二区三区直播 | 亚洲а∨天堂久久精品2021 | 国产成人无码av片在线观看不卡 | 乌克兰少妇性做爰 | 亚洲小说春色综合另类 | 欧美xxxx黑人又粗又长 | 久久综合给合久久狠狠狠97色 | 日本丰满熟妇videos | 成人精品视频一区二区 | 精品国产一区二区三区av 性色 | 狠狠躁日日躁夜夜躁2020 | 日韩欧美中文字幕公布 | 99久久精品无码一区二区毛片 | 国产成人精品三级麻豆 | 久久aⅴ免费观看 | 国产精品无码mv在线观看 | 色综合视频一区二区三区 | 色婷婷香蕉在线一区二区 | 国产一区二区三区影院 | 中文字幕无码热在线视频 | 欧美xxxx黑人又粗又长 | 亚洲一区二区三区 | 亚洲国产精品久久久天堂 | 亚洲爆乳大丰满无码专区 | 丰满人妻一区二区三区免费视频 | 丰满护士巨好爽好大乳 | 久久精品视频在线看15 | 两性色午夜视频免费播放 | 日本又色又爽又黄的a片18禁 | 欧洲vodafone精品性 | 欧洲欧美人成视频在线 | 日韩无套无码精品 | 欧美35页视频在线观看 | 亚洲区欧美区综合区自拍区 | 男女作爱免费网站 | 天天躁日日躁狠狠躁免费麻豆 | 自拍偷自拍亚洲精品10p | 色偷偷人人澡人人爽人人模 | 无码人妻丰满熟妇区五十路百度 | 成人片黄网站色大片免费观看 | √天堂中文官网8在线 | 亚洲综合在线一区二区三区 | 亚洲伊人久久精品影院 | 国产超级va在线观看视频 | 欧美乱妇无乱码大黄a片 | 好爽又高潮了毛片免费下载 | 日本www一道久久久免费榴莲 | 国产精品国产三级国产专播 | 免费看男女做好爽好硬视频 | 中国大陆精品视频xxxx | 国产亚洲视频中文字幕97精品 | 欧美日韩一区二区三区自拍 | 最新国产麻豆aⅴ精品无码 | 欧美真人作爱免费视频 | 欧美高清在线精品一区 | 色一情一乱一伦一视频免费看 | 最新国产乱人伦偷精品免费网站 | 久久人妻内射无码一区三区 | 国产精品a成v人在线播放 | 欧美人与禽猛交狂配 | 日产国产精品亚洲系列 | 国产精品久久久久无码av色戒 | 国产热a欧美热a在线视频 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲日本va中文字幕 | 2019nv天堂香蕉在线观看 | 呦交小u女精品视频 | 风流少妇按摩来高潮 | 日日碰狠狠躁久久躁蜜桃 | 亚洲欧美综合区丁香五月小说 | 日本丰满护士爆乳xxxx | 日本精品久久久久中文字幕 | 色五月丁香五月综合五月 | 日本va欧美va欧美va精品 | 精品夜夜澡人妻无码av蜜桃 | 高潮喷水的毛片 | 国产精品久久久久久亚洲影视内衣 | 妺妺窝人体色www婷婷 | 国产精品久久久午夜夜伦鲁鲁 | 狠狠色欧美亚洲狠狠色www | 好爽又高潮了毛片免费下载 | 亚洲 a v无 码免 费 成 人 a v | 学生妹亚洲一区二区 | 亚洲理论电影在线观看 | 免费观看又污又黄的网站 | 正在播放老肥熟妇露脸 | 精品乱码久久久久久久 | 精品少妇爆乳无码av无码专区 | 久久99精品国产麻豆 | 色婷婷香蕉在线一区二区 | 日本精品少妇一区二区三区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码人妻av免费一区二区三区 | av小次郎收藏 | 亚洲热妇无码av在线播放 | 强伦人妻一区二区三区视频18 | 97夜夜澡人人爽人人喊中国片 | 亚洲精品久久久久久久久久久 | 西西人体www44rt大胆高清 | 对白脏话肉麻粗话av | 久久精品国产大片免费观看 | 精品夜夜澡人妻无码av蜜桃 | 天天摸天天碰天天添 | 图片小说视频一区二区 | 又色又爽又黄的美女裸体网站 | 国产一区二区三区日韩精品 | 内射老妇bbwx0c0ck | 国产亚洲人成在线播放 | 熟妇人妻无码xxx视频 | 日本一卡2卡3卡四卡精品网站 | 国产精品无码一区二区桃花视频 | 国产区女主播在线观看 | 成熟妇人a片免费看网站 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 四虎国产精品免费久久 | 国产无遮挡又黄又爽免费视频 | 色婷婷久久一区二区三区麻豆 | 黑森林福利视频导航 | 成人无码视频在线观看网站 | 欧美黑人性暴力猛交喷水 | 女人被男人躁得好爽免费视频 | 久久精品人妻少妇一区二区三区 | 高中生自慰www网站 | 欧美人妻一区二区三区 | 亚洲人成网站色7799 | 国精产品一品二品国精品69xx | 亚洲国产精品美女久久久久 | av无码久久久久不卡免费网站 | 亚洲色www成人永久网址 | 午夜成人1000部免费视频 | 亚洲午夜无码久久 | 亚洲热妇无码av在线播放 | 牛和人交xxxx欧美 | 国语精品一区二区三区 | 免费中文字幕日韩欧美 | 领导边摸边吃奶边做爽在线观看 | 男人的天堂2018无码 | 成人精品视频一区二区三区尤物 | 久久这里只有精品视频9 | 少妇愉情理伦片bd | 亚洲精品久久久久中文第一幕 | 老司机亚洲精品影院无码 | 九九热爱视频精品 | 4hu四虎永久在线观看 | 一本大道伊人av久久综合 | 成人一区二区免费视频 | 久久久久久a亚洲欧洲av冫 | 国产精品久久福利网站 | 高清不卡一区二区三区 | 无码国产色欲xxxxx视频 | 婷婷综合久久中文字幕蜜桃三电影 | 国内揄拍国内精品少妇国语 | 在线欧美精品一区二区三区 | 日欧一片内射va在线影院 | 激情国产av做激情国产爱 | 亚洲精品综合五月久久小说 | 少妇久久久久久人妻无码 | 亚洲一区二区三区在线观看网站 | 九月婷婷人人澡人人添人人爽 | 日韩精品a片一区二区三区妖精 | 欧美国产日产一区二区 | 天天av天天av天天透 | 人人妻人人澡人人爽精品欧美 | 国产三级久久久精品麻豆三级 | 乱中年女人伦av三区 | 图片小说视频一区二区 | 久久久久免费看成人影片 | 日韩人妻少妇一区二区三区 | 国产乱人伦av在线无码 | 99久久精品日本一区二区免费 | 国精品人妻无码一区二区三区蜜柚 | 18无码粉嫩小泬无套在线观看 | 少妇愉情理伦片bd | 九一九色国产 | 国产亚洲精品久久久久久 | 正在播放东北夫妻内射 | 在线亚洲高清揄拍自拍一品区 | 人妻无码久久精品人妻 | 国产日产欧产精品精品app | 免费无码午夜福利片69 | 奇米影视7777久久精品人人爽 | 女人和拘做爰正片视频 | 老熟女重囗味hdxx69 | 好男人社区资源 | 国产免费久久精品国产传媒 | 波多野42部无码喷潮在线 | 亚欧洲精品在线视频免费观看 | 精品人妻人人做人人爽夜夜爽 | 国产精品人妻一区二区三区四 | 在线a亚洲视频播放在线观看 | 国产日产欧产精品精品app | 国产一区二区三区影院 | 人妻少妇精品无码专区二区 | 中文字幕无码乱人伦 | 久久天天躁狠狠躁夜夜免费观看 | 少妇人妻av毛片在线看 | 成人三级无码视频在线观看 | 骚片av蜜桃精品一区 | 一个人看的视频www在线 | 亚洲一区二区三区在线观看网站 | 中文亚洲成a人片在线观看 | 欧美日韩一区二区三区自拍 | 亚洲国产精品成人久久蜜臀 | 国精品人妻无码一区二区三区蜜柚 | 少妇性俱乐部纵欲狂欢电影 | 婷婷丁香五月天综合东京热 | 亚洲男人av香蕉爽爽爽爽 | 国精产品一品二品国精品69xx | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲中文字幕在线无码一区二区 | а√天堂www在线天堂小说 | 国产精品亚洲五月天高清 | 东北女人啪啪对白 | 国产一区二区不卡老阿姨 | 亚洲爆乳大丰满无码专区 | 无码人妻av免费一区二区三区 | 大色综合色综合网站 | 精品日本一区二区三区在线观看 | 大屁股大乳丰满人妻 | 久久精品国产大片免费观看 | 亚洲の无码国产の无码影院 | 日韩人妻少妇一区二区三区 | 欧美阿v高清资源不卡在线播放 | 俄罗斯老熟妇色xxxx | 日韩精品无码一本二本三本色 | 久久综合网欧美色妞网 | av无码电影一区二区三区 | 熟妇激情内射com | 少妇高潮喷潮久久久影院 | 伊人久久大香线蕉av一区二区 | 亚洲无人区午夜福利码高清完整版 | 青青草原综合久久大伊人精品 | 亚洲第一网站男人都懂 | 精品水蜜桃久久久久久久 | 国产色在线 | 国产 | 狠狠cao日日穞夜夜穞av | 久久久久成人精品免费播放动漫 | 国产精品亚洲五月天高清 | 成人一在线视频日韩国产 | 噜噜噜亚洲色成人网站 | 免费乱码人妻系列无码专区 | 水蜜桃av无码 | 国产国产精品人在线视 | 男人的天堂av网站 | 久久99精品久久久久婷婷 | 天天av天天av天天透 | 又湿又紧又大又爽a视频国产 | 国产精品久久久午夜夜伦鲁鲁 | 日本乱偷人妻中文字幕 | 久久亚洲中文字幕无码 | 久久久久久久人妻无码中文字幕爆 | 熟妇人妻无乱码中文字幕 | 国产激情艳情在线看视频 | 熟妇激情内射com | 真人与拘做受免费视频一 | www成人国产高清内射 | 精品日本一区二区三区在线观看 | 高潮毛片无遮挡高清免费视频 | 亚洲综合伊人久久大杳蕉 | 99久久久国产精品无码免费 | 狠狠cao日日穞夜夜穞av | 亚洲无人区一区二区三区 | 色诱久久久久综合网ywww | 精品国产一区二区三区四区 | 人妻少妇被猛烈进入中文字幕 | 亚洲人成无码网www | 成熟妇人a片免费看网站 | 亚洲欧美综合区丁香五月小说 | 波多野结衣 黑人 | 一本色道婷婷久久欧美 | 亚洲国产成人a精品不卡在线 | 国产午夜无码精品免费看 | 在线观看国产午夜福利片 | 日本丰满熟妇videos | 亚洲第一无码av无码专区 | 日日夜夜撸啊撸 | 亚洲国精产品一二二线 | 三级4级全黄60分钟 | 成人无码视频在线观看网站 | 久青草影院在线观看国产 | 国产欧美熟妇另类久久久 | 成人女人看片免费视频放人 | 国产激情精品一区二区三区 | 欧洲vodafone精品性 | 亚洲 日韩 欧美 成人 在线观看 | 色窝窝无码一区二区三区色欲 | 亚洲 a v无 码免 费 成 人 a v | 国产在线aaa片一区二区99 | 成人欧美一区二区三区黑人 | 娇妻被黑人粗大高潮白浆 | 一本大道伊人av久久综合 | √天堂资源地址中文在线 | 日韩无套无码精品 | 好爽又高潮了毛片免费下载 | 久久熟妇人妻午夜寂寞影院 | 日韩人妻少妇一区二区三区 | aⅴ亚洲 日韩 色 图网站 播放 | 久久久成人毛片无码 | 亚洲精品一区二区三区四区五区 | 国产人妻精品一区二区三区不卡 | 国产精品亚洲专区无码不卡 | 18禁止看的免费污网站 | 国产精品.xx视频.xxtv | 国产精品人人爽人人做我的可爱 | 亚洲熟妇自偷自拍另类 | 黑人巨大精品欧美一区二区 | 午夜福利不卡在线视频 | 狠狠躁日日躁夜夜躁2020 | 少妇性荡欲午夜性开放视频剧场 | 无码av最新清无码专区吞精 | 在线欧美精品一区二区三区 | 欧美老妇交乱视频在线观看 | 免费播放一区二区三区 | 亚洲人成无码网www | 一本无码人妻在中文字幕免费 | 亚洲午夜福利在线观看 | 日韩成人一区二区三区在线观看 | 天堂а√在线中文在线 | 初尝人妻少妇中文字幕 | 国产真实乱对白精彩久久 | 六十路熟妇乱子伦 | 成人性做爰aaa片免费看 |