久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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)基础教程(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

午夜嘿嘿嘿影院 | 97精品国产97久久久久久免费 | 久久国产精品二国产精品 | 青青青手机频在线观看 | 性欧美videos高清精品 | 国内精品一区二区三区不卡 | 亚洲欧美精品伊人久久 | 亚洲最大成人网站 | 久久久久久av无码免费看大片 | 国产凸凹视频一区二区 | 欧美精品一区二区精品久久 | 天天拍夜夜添久久精品 | 亚洲日本va午夜在线电影 | 成人综合网亚洲伊人 | 亚洲第一无码av无码专区 | 国产真实伦对白全集 | 99精品国产综合久久久久五月天 | 国产艳妇av在线观看果冻传媒 | 日韩精品a片一区二区三区妖精 | 国产亚洲精品精品国产亚洲综合 | 国产亚洲欧美在线专区 | 一个人看的www免费视频在线观看 | 亚洲の无码国产の无码步美 | 青青青手机频在线观看 | 思思久久99热只有频精品66 | 无码人妻黑人中文字幕 | 欧美一区二区三区视频在线观看 | 99国产精品白浆在线观看免费 | 初尝人妻少妇中文字幕 | 午夜精品久久久久久久久 | 精品无码一区二区三区的天堂 | 欧洲熟妇色 欧美 | 熟妇激情内射com | 精品人人妻人人澡人人爽人人 | 亚洲成a人片在线观看日本 | 亚洲日韩精品欧美一区二区 | 好屌草这里只有精品 | aⅴ在线视频男人的天堂 | 永久黄网站色视频免费直播 | 亚洲乱码日产精品bd | 国产亚洲精品精品国产亚洲综合 | 一本色道久久综合亚洲精品不卡 | 性欧美熟妇videofreesex | 亚欧洲精品在线视频免费观看 | 高清国产亚洲精品自在久久 | 扒开双腿吃奶呻吟做受视频 | 国产亲子乱弄免费视频 | 久久久久国色av免费观看性色 | 国产福利视频一区二区 | 亚洲精品一区三区三区在线观看 | 欧美激情内射喷水高潮 | 自拍偷自拍亚洲精品被多人伦好爽 | 欧美肥老太牲交大战 | 中文字幕乱码中文乱码51精品 | 无码任你躁久久久久久久 | 久久久精品国产sm最大网站 | 欧美丰满熟妇xxxx性ppx人交 | 无码播放一区二区三区 | 日韩欧美成人免费观看 | 好屌草这里只有精品 | 樱花草在线社区www | 日韩精品无码一区二区中文字幕 | 精品人妻人人做人人爽夜夜爽 | 日韩人妻少妇一区二区三区 | 精品亚洲韩国一区二区三区 | 国产手机在线αⅴ片无码观看 | 天堂а√在线中文在线 | 无码吃奶揉捏奶头高潮视频 | 夜夜高潮次次欢爽av女 | 日日碰狠狠丁香久燥 | 成人片黄网站色大片免费观看 | 国产熟妇高潮叫床视频播放 | 日日天日日夜日日摸 | 国产热a欧美热a在线视频 | 色综合天天综合狠狠爱 | 久久婷婷五月综合色国产香蕉 | 婷婷丁香六月激情综合啪 | 99视频精品全部免费免费观看 | 欧美日韩一区二区免费视频 | 午夜精品久久久久久久久 | 国产一区二区三区影院 | 国产成人精品久久亚洲高清不卡 | 国产美女极度色诱视频www | 18禁止看的免费污网站 | 老头边吃奶边弄进去呻吟 | 成人欧美一区二区三区黑人 | 特级做a爰片毛片免费69 | 国产精品内射视频免费 | 久久午夜无码鲁丝片午夜精品 | 精品人妻人人做人人爽 | 久久精品成人欧美大片 | 日本一区二区三区免费播放 | 欧美老熟妇乱xxxxx | 人妻天天爽夜夜爽一区二区 | 无码人妻精品一区二区三区不卡 | 国产成人亚洲综合无码 | 麻豆国产丝袜白领秘书在线观看 | 欧美日韩一区二区综合 | 男人和女人高潮免费网站 | 青青青爽视频在线观看 | 55夜色66夜色国产精品视频 | 欧美 亚洲 国产 另类 | 99久久久无码国产精品免费 | 国产人妻精品一区二区三区不卡 | 日本一卡2卡3卡四卡精品网站 | 欧美日韩亚洲国产精品 | 中文字幕+乱码+中文字幕一区 | 日韩精品久久久肉伦网站 | 免费看男女做好爽好硬视频 | 欧美第一黄网免费网站 | 国产成人无码av在线影院 | 日韩在线不卡免费视频一区 | 久久精品一区二区三区四区 | 国产偷自视频区视频 | 中文字幕日韩精品一区二区三区 | 未满成年国产在线观看 | 欧美 日韩 人妻 高清 中文 | 天天摸天天透天天添 | 国产在热线精品视频 | 无码人妻丰满熟妇区毛片18 | 精品国产乱码久久久久乱码 | 亚洲毛片av日韩av无码 | 欧美乱妇无乱码大黄a片 | 国产极品视觉盛宴 | 国产超碰人人爽人人做人人添 | 精品偷拍一区二区三区在线看 | 无码乱肉视频免费大全合集 | 国产亚洲精品久久久久久久久动漫 | 思思久久99热只有频精品66 | 伊人久久大香线蕉亚洲 | 亚洲中文字幕无码一久久区 | 日韩精品成人一区二区三区 | 中文字幕av日韩精品一区二区 | 亚洲日本一区二区三区在线 | 亚洲国产精品毛片av不卡在线 | 亚洲国产欧美国产综合一区 | 日本一卡2卡3卡四卡精品网站 | 婷婷五月综合缴情在线视频 | 久久综合网欧美色妞网 | 国产精品va在线观看无码 | 免费国产黄网站在线观看 | 日韩人妻无码中文字幕视频 | 午夜成人1000部免费视频 | 国内少妇偷人精品视频 | 国产高潮视频在线观看 | 亚洲天堂2017无码中文 | 俄罗斯老熟妇色xxxx | 午夜精品一区二区三区在线观看 | 国产精品久久精品三级 | 欧美性猛交内射兽交老熟妇 | 任你躁国产自任一区二区三区 | 东京热一精品无码av | 在线欧美精品一区二区三区 | 麻豆国产97在线 | 欧洲 | 亚洲 激情 小说 另类 欧美 | 偷窥日本少妇撒尿chinese | 精品亚洲韩国一区二区三区 | 国产精品美女久久久久av爽李琼 | 亚洲熟妇色xxxxx亚洲 | 伊人久久大香线蕉午夜 | 人人妻人人藻人人爽欧美一区 | 日韩精品成人一区二区三区 | 无码任你躁久久久久久久 | 性史性农村dvd毛片 | 又紧又大又爽精品一区二区 | 日本www一道久久久免费榴莲 | 男人和女人高潮免费网站 | 人妻少妇精品无码专区动漫 | 黑人巨大精品欧美一区二区 | 国产九九九九九九九a片 | 精品国产一区二区三区四区 | 四十如虎的丰满熟妇啪啪 | 无码一区二区三区在线观看 | 夜精品a片一区二区三区无码白浆 | 99精品视频在线观看免费 | 亚洲の无码国产の无码影院 | 午夜精品久久久久久久 | 国产熟妇另类久久久久 | 国产精品国产自线拍免费软件 | v一区无码内射国产 | 日本精品人妻无码免费大全 | 精品国产青草久久久久福利 | 动漫av一区二区在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲va中文字幕无码久久不卡 | 国产精品va在线播放 | 久久亚洲a片com人成 | 波多野结衣乳巨码无在线观看 | 久久国产劲爆∧v内射 | 久久精品一区二区三区四区 | 国产成人精品优优av | 亚洲精品欧美二区三区中文字幕 | 熟妇人妻中文av无码 | 欧美日韩综合一区二区三区 | 国产精品对白交换视频 | 欧美成人午夜精品久久久 | 亚洲国产精品一区二区第一页 | 国产高清不卡无码视频 | 亚洲成av人片天堂网无码】 | 夜夜躁日日躁狠狠久久av | 学生妹亚洲一区二区 | 欧洲美熟女乱又伦 | 撕开奶罩揉吮奶头视频 | 亚洲一区二区三区四区 | 2019午夜福利不卡片在线 | 人妻无码久久精品人妻 | 蜜桃av抽搐高潮一区二区 | 人人妻人人澡人人爽欧美精品 | 亚洲色无码一区二区三区 | 最新国产乱人伦偷精品免费网站 | 久久伊人色av天堂九九小黄鸭 | 蜜桃视频韩日免费播放 | 狠狠综合久久久久综合网 | 波多野结衣av一区二区全免费观看 | 少妇激情av一区二区 | 亚洲男人av香蕉爽爽爽爽 | 成人一在线视频日韩国产 | 熟妇激情内射com | 噜噜噜亚洲色成人网站 | 精品国产av色一区二区深夜久久 | 国产后入清纯学生妹 | 国产高清不卡无码视频 | 国产亚洲精品久久久久久久久动漫 | 免费国产黄网站在线观看 | 大胆欧美熟妇xx | 亚洲一区二区三区偷拍女厕 | 天堂亚洲2017在线观看 | 人人澡人人妻人人爽人人蜜桃 | 免费无码的av片在线观看 | 国产精品va在线观看无码 | 99精品国产综合久久久久五月天 | 一本久道久久综合婷婷五月 | 东京热一精品无码av | 99久久精品国产一区二区蜜芽 | 久久久久免费看成人影片 | 国产精品高潮呻吟av久久 | 永久免费精品精品永久-夜色 | 亚洲国产精品一区二区美利坚 | 亚洲精品久久久久久一区二区 | 国产精品无码永久免费888 | 国产免费无码一区二区视频 | 欧美zoozzooz性欧美 | 免费观看激色视频网站 | 国语精品一区二区三区 | 无码精品国产va在线观看dvd | 1000部夫妻午夜免费 | 亚洲成a人片在线观看无码 | 国产xxx69麻豆国语对白 | 久久亚洲精品成人无码 | 精品国产成人一区二区三区 | 久久综合给久久狠狠97色 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 99视频精品全部免费免费观看 | 亚洲国产精品一区二区第一页 | 久久综合给合久久狠狠狠97色 | 国产精品美女久久久久av爽李琼 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲综合另类小说色区 | 免费观看的无遮挡av | 精品久久久无码中文字幕 | 国产精品久久久久久亚洲影视内衣 | 麻豆国产人妻欲求不满谁演的 | 成人三级无码视频在线观看 | 男人扒开女人内裤强吻桶进去 | 18精品久久久无码午夜福利 | 国产在热线精品视频 | 日韩人妻无码中文字幕视频 | 久久婷婷五月综合色国产香蕉 | 国产美女极度色诱视频www | 精品一二三区久久aaa片 | 亚洲国产日韩a在线播放 | aⅴ亚洲 日韩 色 图网站 播放 | 曰韩少妇内射免费播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲综合另类小说色区 | 日本爽爽爽爽爽爽在线观看免 | 中文字幕无码日韩欧毛 | 乱人伦人妻中文字幕无码久久网 | 无套内谢的新婚少妇国语播放 | 国产9 9在线 | 中文 | 日韩视频 中文字幕 视频一区 | 久久精品视频在线看15 | 99久久亚洲精品无码毛片 | 久久久久成人片免费观看蜜芽 | 奇米影视888欧美在线观看 | 久久久久se色偷偷亚洲精品av | 国产成人午夜福利在线播放 | 一本久久伊人热热精品中文字幕 | 精品无码一区二区三区的天堂 | 老熟妇仑乱视频一区二区 | 亚洲成a人片在线观看无码 | 99久久人妻精品免费一区 | 亚洲精品综合五月久久小说 | 久久精品人人做人人综合 | 丁香啪啪综合成人亚洲 | 狠狠综合久久久久综合网 | 美女张开腿让人桶 | 夜夜高潮次次欢爽av女 | 又黄又爽又色的视频 | 日本熟妇乱子伦xxxx | 精品 日韩 国产 欧美 视频 | 国产超碰人人爽人人做人人添 | 国产三级精品三级男人的天堂 | 给我免费的视频在线观看 | 久久伊人色av天堂九九小黄鸭 | 亚洲 另类 在线 欧美 制服 | 国产绳艺sm调教室论坛 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 色妞www精品免费视频 | 久久无码专区国产精品s | 国产精品怡红院永久免费 | 一本精品99久久精品77 | 国产激情一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 成年女人永久免费看片 | 久久亚洲中文字幕精品一区 | 国产卡一卡二卡三 | 又粗又大又硬毛片免费看 | 国产在线无码精品电影网 | 台湾无码一区二区 | 久久精品中文字幕大胸 | 亚洲一区二区三区偷拍女厕 | 天天燥日日燥 | 国产小呦泬泬99精品 | 亚洲成av人片在线观看无码不卡 | 国产精品久久久久久久影院 | 亚洲中文字幕乱码av波多ji | av人摸人人人澡人人超碰下载 | v一区无码内射国产 | 亚洲熟妇自偷自拍另类 | 国产美女极度色诱视频www | 亚洲gv猛男gv无码男同 | 内射后入在线观看一区 | 99久久久无码国产aaa精品 | 粗大的内捧猛烈进出视频 | 最新版天堂资源中文官网 | 国産精品久久久久久久 | 内射老妇bbwx0c0ck | 装睡被陌生人摸出水好爽 | 欧美乱妇无乱码大黄a片 | 日韩欧美中文字幕公布 | 欧美熟妇另类久久久久久多毛 | 国产成人无码午夜视频在线观看 | 国产成人av免费观看 | 久久人妻内射无码一区三区 | 久久熟妇人妻午夜寂寞影院 | 欧美亚洲国产一区二区三区 | 樱花草在线播放免费中文 | 久久精品99久久香蕉国产色戒 | 亚洲精品中文字幕乱码 | 久久99精品国产.久久久久 | www国产亚洲精品久久久日本 | 影音先锋中文字幕无码 | 国产人妻精品午夜福利免费 | 精品国产av色一区二区深夜久久 | 成人毛片一区二区 | 国产精品-区区久久久狼 | www国产亚洲精品久久久日本 | 鲁鲁鲁爽爽爽在线视频观看 | 欧美阿v高清资源不卡在线播放 | 日日干夜夜干 | 麻豆果冻传媒2021精品传媒一区下载 | 少女韩国电视剧在线观看完整 | 99久久久国产精品无码免费 | 丝袜 中出 制服 人妻 美腿 | 在线天堂新版最新版在线8 | 亚洲国产高清在线观看视频 | 国产suv精品一区二区五 | 少妇无码一区二区二三区 | 天天综合网天天综合色 | 国产精品久久久久影院嫩草 | 欧美 亚洲 国产 另类 | 中文字幕无码乱人伦 | 无码av免费一区二区三区试看 | 亚洲一区av无码专区在线观看 | 奇米影视888欧美在线观看 | 在线播放亚洲第一字幕 | 国产亚洲精品精品国产亚洲综合 | 波多野结衣乳巨码无在线观看 | 99久久久国产精品无码免费 | 亚洲国产精品美女久久久久 | 久久精品国产亚洲精品 | yw尤物av无码国产在线观看 | 亚洲国产精品久久久天堂 | 天堂无码人妻精品一区二区三区 | 夜精品a片一区二区三区无码白浆 | 亚洲爆乳精品无码一区二区三区 | 1000部啪啪未满十八勿入下载 | 精品一区二区不卡无码av | 青青青爽视频在线观看 | 欧美zoozzooz性欧美 | 欧美日本免费一区二区三区 | 99久久婷婷国产综合精品青草免费 | 激情内射日本一区二区三区 | 岛国片人妻三上悠亚 | 日韩亚洲欧美精品综合 | 国产九九九九九九九a片 | 久久亚洲精品成人无码 | 黑人玩弄人妻中文在线 | 国产精品久久久一区二区三区 | 久在线观看福利视频 | 国产在线精品一区二区高清不卡 | 又粗又大又硬毛片免费看 | 一个人看的视频www在线 | 亚洲 激情 小说 另类 欧美 | 国产69精品久久久久app下载 | 无码一区二区三区在线 | 国产va免费精品观看 | а天堂中文在线官网 | 黑人粗大猛烈进出高潮视频 | 亚洲日本va中文字幕 | 亚洲欧美日韩综合久久久 | 在线亚洲高清揄拍自拍一品区 | 激情内射日本一区二区三区 | 无码人妻精品一区二区三区下载 | 国产精品99久久精品爆乳 | 性欧美牲交xxxxx视频 | 久久97精品久久久久久久不卡 | 欧美国产亚洲日韩在线二区 | 国产三级久久久精品麻豆三级 | 欧美国产日产一区二区 | 成人精品一区二区三区中文字幕 | 亚洲va欧美va天堂v国产综合 | 国产精品丝袜黑色高跟鞋 | 日本丰满熟妇videos | 少妇性荡欲午夜性开放视频剧场 | 日日麻批免费40分钟无码 | 国产人妖乱国产精品人妖 | 少妇性俱乐部纵欲狂欢电影 | 久久精品国产精品国产精品污 | 国产精品99久久精品爆乳 | 天干天干啦夜天干天2017 | 男女爱爱好爽视频免费看 | 国产激情一区二区三区 | 丰满岳乱妇在线观看中字无码 | 乱人伦人妻中文字幕无码 | 中文字幕无码日韩专区 | 日本va欧美va欧美va精品 | 久久午夜无码鲁丝片午夜精品 | 中文字幕无码日韩欧毛 | 丁香花在线影院观看在线播放 | 亚洲精品一区二区三区婷婷月 | 国产明星裸体无码xxxx视频 | 窝窝午夜理论片影院 | 久久精品一区二区三区四区 | 欧美freesex黑人又粗又大 | 国产午夜视频在线观看 | 99久久久无码国产精品免费 | 三级4级全黄60分钟 | 亚洲国产精品一区二区第一页 | 国产精品手机免费 | 一区二区三区乱码在线 | 欧洲 | 暴力强奷在线播放无码 | 国产精品99爱免费视频 | 精品水蜜桃久久久久久久 | 国産精品久久久久久久 | 少妇激情av一区二区 | 久久久久se色偷偷亚洲精品av | 国产免费无码一区二区视频 | 无码播放一区二区三区 | 大肉大捧一进一出视频出来呀 | 国产无av码在线观看 | 日本xxxx色视频在线观看免费 | 亚洲国产午夜精品理论片 | 曰韩少妇内射免费播放 | 亚洲精品中文字幕久久久久 | 国産精品久久久久久久 | 无码av免费一区二区三区试看 | 波多野结衣av一区二区全免费观看 | 国产成人无码av片在线观看不卡 | 国产午夜无码视频在线观看 | 日本熟妇人妻xxxxx人hd | 国产精品人人妻人人爽 | 免费看男女做好爽好硬视频 | 性生交片免费无码看人 | 日韩av无码一区二区三区 | 欧美日韩精品 | 国产又爽又黄又刺激的视频 | 无码国模国产在线观看 | 日本www一道久久久免费榴莲 | 少妇无码一区二区二三区 | 久久成人a毛片免费观看网站 | 天下第一社区视频www日本 | 成人精品视频一区二区三区尤物 | 国产亚洲精品精品国产亚洲综合 | 中国女人内谢69xxxxxa片 | 成人女人看片免费视频放人 | 国产精品无码成人午夜电影 | 高潮毛片无遮挡高清免费视频 | 亚洲国产精品久久久天堂 | 无码人妻出轨黑人中文字幕 | 图片区 小说区 区 亚洲五月 | 性色av无码免费一区二区三区 | 亚洲小说春色综合另类 | 国产av一区二区精品久久凹凸 | 蜜桃臀无码内射一区二区三区 | 人人妻人人澡人人爽欧美精品 | 国产国产精品人在线视 | 国产亚洲tv在线观看 | 国产成人午夜福利在线播放 | 综合人妻久久一区二区精品 | 欧美精品无码一区二区三区 | 亚洲s码欧洲m码国产av | 成人试看120秒体验区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产成人精品一区二区在线小狼 | 亚洲色大成网站www国产 | 熟女俱乐部五十路六十路av | 亚洲经典千人经典日产 | 无遮挡国产高潮视频免费观看 | 精品久久久久久亚洲精品 | 欧美35页视频在线观看 | 人妻尝试又大又粗久久 | 天堂а√在线中文在线 | 成人无码视频免费播放 | 免费视频欧美无人区码 | 狠狠亚洲超碰狼人久久 | 欧洲精品码一区二区三区免费看 | 国产人妻精品午夜福利免费 | 少妇被黑人到高潮喷出白浆 | 国产深夜福利视频在线 | 丝袜足控一区二区三区 | 日本肉体xxxx裸交 | 国产精品久久久久久久影院 | 国产一区二区三区四区五区加勒比 | 四虎4hu永久免费 | 在线播放亚洲第一字幕 | 亚洲 欧美 激情 小说 另类 | 欧美性生交xxxxx久久久 | 午夜精品久久久久久久久 | 日本精品人妻无码免费大全 | 日本xxxx色视频在线观看免费 | 东京热一精品无码av | 成人影院yy111111在线观看 | 少妇性l交大片 | 国产一区二区三区精品视频 | 爽爽影院免费观看 | 中文字幕人妻无码一夲道 | 久久久久久亚洲精品a片成人 | 亚洲欧美精品伊人久久 | 日韩人妻少妇一区二区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 久久99精品国产麻豆蜜芽 | 玩弄中年熟妇正在播放 | 亚洲男人av天堂午夜在 | 国产一区二区三区四区五区加勒比 | 久久精品国产一区二区三区 | 亚洲七七久久桃花影院 | 国产亚洲精品久久久久久国模美 | 久久久精品456亚洲影院 | 欧美人与禽zoz0性伦交 | 骚片av蜜桃精品一区 | 久久国内精品自在自线 | 天天燥日日燥 | 婷婷五月综合缴情在线视频 | 成人综合网亚洲伊人 | 亚洲国产精品无码久久久久高潮 | 黑人巨大精品欧美黑寡妇 | 日产精品高潮呻吟av久久 | 久热国产vs视频在线观看 | 无遮挡国产高潮视频免费观看 | 风流少妇按摩来高潮 | 日日碰狠狠丁香久燥 | 日韩精品久久久肉伦网站 | 少妇太爽了在线观看 | 国产精品亚洲专区无码不卡 | 亚洲国产欧美国产综合一区 | 欧美大屁股xxxxhd黑色 | 国产免费久久久久久无码 | 色婷婷久久一区二区三区麻豆 | 在线观看免费人成视频 | 国产乱人无码伦av在线a | a国产一区二区免费入口 | 久久www免费人成人片 | 国产精品久久久久影院嫩草 | 3d动漫精品啪啪一区二区中 | 中文字幕+乱码+中文字幕一区 | 国产va免费精品观看 | 骚片av蜜桃精品一区 | 少妇性荡欲午夜性开放视频剧场 | 成人无码视频在线观看网站 | 一本色道婷婷久久欧美 | 永久黄网站色视频免费直播 | 欧美肥老太牲交大战 | 亚洲aⅴ无码成人网站国产app | 天天综合网天天综合色 | 九月婷婷人人澡人人添人人爽 | 午夜免费福利小电影 | 欧美喷潮久久久xxxxx | 欧洲vodafone精品性 | 成 人影片 免费观看 | 国产成人久久精品流白浆 | 国语自产偷拍精品视频偷 | 中文字幕人妻无码一夲道 | 国产亚洲日韩欧美另类第八页 | 四虎影视成人永久免费观看视频 | 亚洲s色大片在线观看 | 精品一区二区三区无码免费视频 | 日本又色又爽又黄的a片18禁 | 真人与拘做受免费视频一 | 荫蒂被男人添的好舒服爽免费视频 | 成人无码精品1区2区3区免费看 | 精品乱码久久久久久久 | 永久黄网站色视频免费直播 | 色狠狠av一区二区三区 | 四虎永久在线精品免费网址 | 午夜嘿嘿嘿影院 | 中文字幕无线码免费人妻 | 鲁大师影院在线观看 | 性欧美videos高清精品 | 欧美熟妇另类久久久久久不卡 | 久久久久久久久蜜桃 | 夜先锋av资源网站 | 成人性做爰aaa片免费看 | 成人av无码一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 亚洲精品一区二区三区四区五区 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲乱码中文字幕在线 | 激情综合激情五月俺也去 | 大胆欧美熟妇xx | 国产内射爽爽大片视频社区在线 | 疯狂三人交性欧美 | 强奷人妻日本中文字幕 | 久久五月精品中文字幕 | 日韩亚洲欧美精品综合 | 欧美日本精品一区二区三区 | 无码av最新清无码专区吞精 | 图片区 小说区 区 亚洲五月 | 色妞www精品免费视频 | 丰满诱人的人妻3 | 亚洲区欧美区综合区自拍区 | 色情久久久av熟女人妻网站 | 亚洲日韩乱码中文无码蜜桃臀网站 | www成人国产高清内射 | 无码av最新清无码专区吞精 | 牲欲强的熟妇农村老妇女 | 久久精品国产99久久6动漫 | 正在播放东北夫妻内射 | 中文字幕无码免费久久99 | 男女猛烈xx00免费视频试看 | 日本熟妇人妻xxxxx人hd | 无码人妻黑人中文字幕 | 精品乱子伦一区二区三区 | 亚洲一区二区观看播放 | 国精品人妻无码一区二区三区蜜柚 | www国产亚洲精品久久网站 | 精品日本一区二区三区在线观看 | 丰满少妇高潮惨叫视频 | 又粗又大又硬毛片免费看 | 国产精品亚洲а∨无码播放麻豆 | 国产99久久精品一区二区 | 十八禁真人啪啪免费网站 | 国产后入清纯学生妹 | 丰满妇女强制高潮18xxxx | 福利一区二区三区视频在线观看 | 女人高潮内射99精品 | 日本肉体xxxx裸交 | 无码一区二区三区在线 | 女人被男人躁得好爽免费视频 | 日本在线高清不卡免费播放 | 欧美第一黄网免费网站 | 亚洲一区二区三区在线观看网站 | 成人片黄网站色大片免费观看 | 亚洲中文字幕久久无码 | 国产欧美精品一区二区三区 | 国产在线一区二区三区四区五区 | 内射欧美老妇wbb | 国产成人无码av在线影院 | 思思久久99热只有频精品66 | 18禁黄网站男男禁片免费观看 | 亚洲精品中文字幕 | 狠狠色欧美亚洲狠狠色www | 2020久久香蕉国产线看观看 | 亚洲区欧美区综合区自拍区 | 亚洲a无码综合a国产av中文 | 久久人人爽人人爽人人片ⅴ | 亚洲精品一区二区三区在线观看 | 九九久久精品国产免费看小说 | 蜜桃臀无码内射一区二区三区 | 免费观看的无遮挡av | 美女扒开屁股让男人桶 | 少妇高潮一区二区三区99 | 亚洲一区二区观看播放 | 2020久久超碰国产精品最新 | 日本成熟视频免费视频 | 午夜精品一区二区三区的区别 | 欧美人与禽猛交狂配 | 福利一区二区三区视频在线观看 | 国产在热线精品视频 | 18无码粉嫩小泬无套在线观看 | 4hu四虎永久在线观看 | 国产偷自视频区视频 | 露脸叫床粗话东北少妇 | 精品人妻人人做人人爽 | 久久无码中文字幕免费影院蜜桃 | 午夜不卡av免费 一本久久a久久精品vr综合 | 清纯唯美经典一区二区 | 久久久久久a亚洲欧洲av冫 | 亚洲人成网站免费播放 | 夜夜影院未满十八勿进 | 国产亚洲美女精品久久久2020 | 国产舌乚八伦偷品w中 | 性欧美牲交xxxxx视频 | 久久久成人毛片无码 | 亚洲成熟女人毛毛耸耸多 | 精品无码国产一区二区三区av | 色诱久久久久综合网ywww | 丰满少妇女裸体bbw | a片在线免费观看 | 最新国产麻豆aⅴ精品无码 | 狠狠亚洲超碰狼人久久 | 99精品国产综合久久久久五月天 | 国产女主播喷水视频在线观看 | 巨爆乳无码视频在线观看 | 人妻无码久久精品人妻 | 精品无码一区二区三区的天堂 | 国产乱码精品一品二品 | 久久zyz资源站无码中文动漫 | 波多野结衣av在线观看 | 久久精品国产99精品亚洲 | 狠狠噜狠狠狠狠丁香五月 | 日日天日日夜日日摸 | 激情综合激情五月俺也去 | 久久亚洲国产成人精品性色 | 俺去俺来也www色官网 | 东京热男人av天堂 | 久久久国产一区二区三区 | 国产精品视频免费播放 | 欧美日韩一区二区三区自拍 | 少妇无套内谢久久久久 | 久久99精品国产.久久久久 | 日本成熟视频免费视频 | 55夜色66夜色国产精品视频 | 精品无码成人片一区二区98 | 亚洲日韩一区二区三区 | 国产精华av午夜在线观看 | 国产免费久久精品国产传媒 | 男人的天堂2018无码 | 中文字幕无码日韩欧毛 | 久久久精品人妻久久影视 | 激情五月综合色婷婷一区二区 | 国产av一区二区三区最新精品 | 亚洲午夜福利在线观看 | 女高中生第一次破苞av | 高清无码午夜福利视频 | 亚洲国产精品无码久久久久高潮 | 风流少妇按摩来高潮 | 曰韩无码二三区中文字幕 | 又粗又大又硬又长又爽 | 国产女主播喷水视频在线观看 | 亚洲一区二区三区国产精华液 | 日本在线高清不卡免费播放 | 性做久久久久久久免费看 | 黑人粗大猛烈进出高潮视频 | 国产性生交xxxxx无码 | 在线精品国产一区二区三区 | 内射白嫩少妇超碰 | 天堂亚洲免费视频 | 亚洲日韩中文字幕在线播放 | 国产亚av手机在线观看 | av无码不卡在线观看免费 | 在线播放免费人成毛片乱码 | 国产人妖乱国产精品人妖 | 亚洲呦女专区 | 久久精品中文字幕大胸 | 少妇被粗大的猛进出69影院 | 青青草原综合久久大伊人精品 | 一个人看的视频www在线 | 国产超碰人人爽人人做人人添 | 天天躁日日躁狠狠躁免费麻豆 | 久久久久国色av免费观看性色 | 无码中文字幕色专区 | 国内少妇偷人精品视频 | 亚洲熟女一区二区三区 | 日韩人妻无码一区二区三区久久99 | 久久久久成人精品免费播放动漫 | 日本丰满护士爆乳xxxx | 亚洲一区二区三区在线观看网站 | 麻豆精品国产精华精华液好用吗 | 久久久www成人免费毛片 | 亚洲欧美国产精品专区久久 | 精品国偷自产在线视频 | 亚洲熟妇色xxxxx欧美老妇y | 成人影院yy111111在线观看 | 国产三级久久久精品麻豆三级 | 水蜜桃色314在线观看 | 乱人伦人妻中文字幕无码久久网 | 国产一区二区三区影院 | 国产精品久久久av久久久 | 国产精品久久精品三级 | 中文字幕 亚洲精品 第1页 | 激情五月综合色婷婷一区二区 | 久久精品人妻少妇一区二区三区 | 精品水蜜桃久久久久久久 | 久久久婷婷五月亚洲97号色 | 日产国产精品亚洲系列 | 亚洲人成网站色7799 | 日韩 欧美 动漫 国产 制服 | 在线播放无码字幕亚洲 | 纯爱无遮挡h肉动漫在线播放 | 丰腴饱满的极品熟妇 | 亚洲精品成人福利网站 | 18禁黄网站男男禁片免费观看 | av小次郎收藏 | 国产69精品久久久久app下载 | 99麻豆久久久国产精品免费 | 网友自拍区视频精品 | 欧美精品无码一区二区三区 | 大乳丰满人妻中文字幕日本 | 亚洲精品久久久久久久久久久 | 亚洲成av人在线观看网址 | 亚洲娇小与黑人巨大交 | 51国偷自产一区二区三区 | 18禁止看的免费污网站 | 欧美精品在线观看 | 欧美阿v高清资源不卡在线播放 | 激情人妻另类人妻伦 | 夜夜高潮次次欢爽av女 | 亚洲第一无码av无码专区 | 久久久久久久女国产乱让韩 | 亚洲综合在线一区二区三区 | 国产成人午夜福利在线播放 | 日韩人妻无码一区二区三区久久99 | 人妻夜夜爽天天爽三区 | 国产精品怡红院永久免费 | 国产色xx群视频射精 | 人人爽人人澡人人人妻 | 国产成人精品优优av | 高潮喷水的毛片 | 国产精品自产拍在线观看 | а√资源新版在线天堂 | 国产免费久久精品国产传媒 | 亚洲va欧美va天堂v国产综合 | 女人被爽到呻吟gif动态图视看 | a国产一区二区免费入口 | 粉嫩少妇内射浓精videos | 精品国产成人一区二区三区 | 国产色在线 | 国产 | 精品日本一区二区三区在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲精品久久久久久一区二区 | 乱人伦人妻中文字幕无码久久网 | 激情国产av做激情国产爱 | 国内老熟妇对白xxxxhd | 少妇无码吹潮 | 久久国产自偷自偷免费一区调 | 无套内谢的新婚少妇国语播放 | 色综合久久久久综合一本到桃花网 | 一区二区三区高清视频一 | 精品国产福利一区二区 | 双乳奶水饱满少妇呻吟 | 一本久道久久综合狠狠爱 | 中文亚洲成a人片在线观看 | 日产精品高潮呻吟av久久 | 夫妻免费无码v看片 | 精品夜夜澡人妻无码av蜜桃 | 久久97精品久久久久久久不卡 | 无码人妻精品一区二区三区不卡 | 啦啦啦www在线观看免费视频 | 99久久精品日本一区二区免费 | 国产精品欧美成人 | 成熟女人特级毛片www免费 | 人人爽人人爽人人片av亚洲 | 亚洲成av人在线观看网址 | 大肉大捧一进一出好爽视频 | 中文字幕精品av一区二区五区 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲国产欧美日韩精品一区二区三区 | 日韩无码专区 | 国产精品久久久久影院嫩草 | 国产成人无码专区 | 一本色道婷婷久久欧美 | 人人爽人人澡人人高潮 | 亚洲s色大片在线观看 | 国产精品美女久久久网av | 欧洲vodafone精品性 | 美女黄网站人色视频免费国产 | 国产亚洲美女精品久久久2020 | 2020久久香蕉国产线看观看 | 亚洲区欧美区综合区自拍区 | 久久国产精品偷任你爽任你 | 中文无码精品a∨在线观看不卡 | 性欧美熟妇videofreesex | 亚洲の无码国产の无码影院 | 粗大的内捧猛烈进出视频 | 国产热a欧美热a在线视频 | 国内丰满熟女出轨videos | 波多野结衣乳巨码无在线观看 | 精品国偷自产在线视频 | 野外少妇愉情中文字幕 | 日本爽爽爽爽爽爽在线观看免 | 色综合久久久久综合一本到桃花网 | 少妇激情av一区二区 | 四十如虎的丰满熟妇啪啪 | 国产两女互慰高潮视频在线观看 | 国产无遮挡吃胸膜奶免费看 | 无码一区二区三区在线 | 精品夜夜澡人妻无码av蜜桃 | 波多野结衣一区二区三区av免费 | 无码任你躁久久久久久久 | 国产午夜亚洲精品不卡下载 | 日韩亚洲欧美中文高清在线 | 久久久久久a亚洲欧洲av冫 | 久久99精品国产麻豆 | 激情内射亚州一区二区三区爱妻 | 亚洲精品中文字幕乱码 | 熟妇人妻中文av无码 | 久久99精品久久久久婷婷 | 中文字幕无码av激情不卡 | 亚洲 激情 小说 另类 欧美 | 欧美野外疯狂做受xxxx高潮 | 一区二区传媒有限公司 | 夜精品a片一区二区三区无码白浆 | 国产乱人伦偷精品视频 | 亚洲一区二区三区国产精华液 | а√资源新版在线天堂 | 亚洲自偷自拍另类第1页 | 性欧美大战久久久久久久 | 男女超爽视频免费播放 | 网友自拍区视频精品 | 亚洲成av人影院在线观看 | 国产97色在线 | 免 | 樱花草在线播放免费中文 | √天堂中文官网8在线 | 亚洲人成无码网www | 久久成人a毛片免费观看网站 | 啦啦啦www在线观看免费视频 | 99久久99久久免费精品蜜桃 | 国产偷国产偷精品高清尤物 | 少妇厨房愉情理9仑片视频 | 人人妻人人澡人人爽人人精品 | 一个人看的www免费视频在线观看 | 亚洲色成人中文字幕网站 | 香港三级日本三级妇三级 | 99精品国产综合久久久久五月天 | 国产精品丝袜黑色高跟鞋 | 人人爽人人澡人人人妻 | 四虎国产精品一区二区 | 一本加勒比波多野结衣 | 亚洲天堂2017无码 | 美女毛片一区二区三区四区 | 国产欧美熟妇另类久久久 | 亚洲国产av精品一区二区蜜芽 | 欧美日韩一区二区三区自拍 | 国产精品久久久久久无码 | 国产精品久久国产精品99 | 国产精品内射视频免费 | 日本熟妇浓毛 | 亚洲精品无码人妻无码 | 老熟女乱子伦 | 自拍偷自拍亚洲精品10p | 极品尤物被啪到呻吟喷水 | 亚洲精品一区二区三区婷婷月 | 清纯唯美经典一区二区 | 国产激情无码一区二区 | 日本精品高清一区二区 | 欧美人与物videos另类 | 精品少妇爆乳无码av无码专区 | 特黄特色大片免费播放器图片 | 精品一区二区三区波多野结衣 | 国产精品久久久久影院嫩草 | 亚洲欧美日韩成人高清在线一区 | 国产精品亚洲lv粉色 | 老熟妇乱子伦牲交视频 | 久久久久国色av免费观看性色 | 国产又爽又黄又刺激的视频 | 最近的中文字幕在线看视频 | 性生交大片免费看女人按摩摩 | 中文字幕色婷婷在线视频 | 国産精品久久久久久久 | 国产无套内射久久久国产 | 人妻天天爽夜夜爽一区二区 | 日本xxxx色视频在线观看免费 | 狠狠综合久久久久综合网 | 亚洲国产日韩a在线播放 | 成人性做爰aaa片免费看 | 99re在线播放 | 99久久精品国产一区二区蜜芽 | 熟女体下毛毛黑森林 | 亚洲欧美色中文字幕在线 | 久久亚洲精品中文字幕无男同 | 中文字幕久久久久人妻 | 国产凸凹视频一区二区 | 国产情侣作爱视频免费观看 | 老熟女乱子伦 | 男人扒开女人内裤强吻桶进去 | 欧美人妻一区二区三区 | 天天摸天天碰天天添 | 国产精品亚洲lv粉色 | 丰满少妇人妻久久久久久 | 亚洲一区二区三区偷拍女厕 | 少妇无码一区二区二三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久久久av无码免费看大片 | 亚洲乱亚洲乱妇50p | 中文字幕无码av波多野吉衣 | 国产97色在线 | 免 | 中文字幕人妻无码一区二区三区 | 粉嫩少妇内射浓精videos | 国产成人精品三级麻豆 | 18禁黄网站男男禁片免费观看 | 久久国产精品偷任你爽任你 | 狠狠色色综合网站 | 日本www一道久久久免费榴莲 | 乱码av麻豆丝袜熟女系列 | 乱码午夜-极国产极内射 | 内射爽无广熟女亚洲 | 国产熟妇另类久久久久 | 男女性色大片免费网站 | 少妇性荡欲午夜性开放视频剧场 | 欧美 丝袜 自拍 制服 另类 | 久久无码中文字幕免费影院蜜桃 | 帮老师解开蕾丝奶罩吸乳网站 | 桃花色综合影院 | 国产成人精品无码播放 | 精品aⅴ一区二区三区 | 老熟女重囗味hdxx69 | 六月丁香婷婷色狠狠久久 | 欧美野外疯狂做受xxxx高潮 | 久久久精品人妻久久影视 | 纯爱无遮挡h肉动漫在线播放 | 亚洲成av人在线观看网址 | 国内精品人妻无码久久久影院 | 亚拍精品一区二区三区探花 | 夜精品a片一区二区三区无码白浆 | 久久综合香蕉国产蜜臀av | 日日天干夜夜狠狠爱 | 国产成人久久精品流白浆 | 国产真人无遮挡作爱免费视频 | 色综合久久88色综合天天 | 熟女俱乐部五十路六十路av | 国产精品va在线播放 | 熟妇人妻中文av无码 | 鲁鲁鲁爽爽爽在线视频观看 | 强奷人妻日本中文字幕 | 精品久久久久香蕉网 | 少妇被黑人到高潮喷出白浆 | 色婷婷久久一区二区三区麻豆 | 最新国产麻豆aⅴ精品无码 | 一个人免费观看的www视频 | 久久精品国产99精品亚洲 | 少妇性荡欲午夜性开放视频剧场 | 婷婷六月久久综合丁香 | 天天做天天爱天天爽综合网 | 强奷人妻日本中文字幕 | 久久久中文久久久无码 | 久久久久久久人妻无码中文字幕爆 | 亚洲 激情 小说 另类 欧美 | 国产亲子乱弄免费视频 | 国产熟女一区二区三区四区五区 | 荫蒂被男人添的好舒服爽免费视频 | 欧美老人巨大xxxx做受 | 久久久久久av无码免费看大片 | 久久99精品国产.久久久久 | 成人精品视频一区二区三区尤物 | 日产精品99久久久久久 | 在线精品亚洲一区二区 | 日本www一道久久久免费榴莲 | 日韩精品无码一本二本三本色 | 思思久久99热只有频精品66 | 亚洲 高清 成人 动漫 | 娇妻被黑人粗大高潮白浆 | 2020久久超碰国产精品最新 | 内射欧美老妇wbb | 国产偷国产偷精品高清尤物 | 亚洲无人区午夜福利码高清完整版 | 亚洲国产精品久久久天堂 | 午夜免费福利小电影 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 久久精品女人天堂av免费观看 | 国产精品免费大片 | 久热国产vs视频在线观看 | 国产手机在线αⅴ片无码观看 | 日本爽爽爽爽爽爽在线观看免 | 丰满少妇女裸体bbw | 国产成人一区二区三区别 | 久久综合给久久狠狠97色 | 蜜桃av抽搐高潮一区二区 | 久精品国产欧美亚洲色aⅴ大片 | 日韩在线不卡免费视频一区 | 亚洲精品一区二区三区在线 | 亚洲欧美日韩成人高清在线一区 | 成人一在线视频日韩国产 | 国产精品人人爽人人做我的可爱 | 曰本女人与公拘交酡免费视频 | 欧美真人作爱免费视频 | 红桃av一区二区三区在线无码av | 亚洲高清偷拍一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 欧美 日韩 人妻 高清 中文 | 国产成人精品优优av | 人妻少妇精品久久 | 国产av一区二区精品久久凹凸 | 色一情一乱一伦一视频免费看 | 国产一区二区三区日韩精品 | 日韩av激情在线观看 | 玩弄人妻少妇500系列视频 | 免费无码午夜福利片69 | 欧美人与禽zoz0性伦交 | 免费无码一区二区三区蜜桃大 | 久久久久成人精品免费播放动漫 | 成人女人看片免费视频放人 | 夜夜夜高潮夜夜爽夜夜爰爰 | 大肉大捧一进一出好爽视频 | 丰满少妇熟乱xxxxx视频 | 欧美freesex黑人又粗又大 | aⅴ在线视频男人的天堂 | 亚洲中文字幕成人无码 | 国产无套粉嫩白浆在线 | 亚洲国产精品成人久久蜜臀 | 色综合久久久久综合一本到桃花网 | 亚洲色欲久久久综合网东京热 | 久久精品国产一区二区三区 | 中文字幕无码日韩欧毛 | 亚洲の无码国产の无码影院 | 宝宝好涨水快流出来免费视频 | √8天堂资源地址中文在线 | 国产无遮挡吃胸膜奶免费看 | 欧美日韩综合一区二区三区 | 大肉大捧一进一出视频出来呀 | 99精品视频在线观看免费 | 美女毛片一区二区三区四区 | 亚洲中文字幕无码中字 | 天天爽夜夜爽夜夜爽 | 欧美zoozzooz性欧美 | 精品国产av色一区二区深夜久久 | 综合网日日天干夜夜久久 | 精品久久8x国产免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 美女张开腿让人桶 | 日本va欧美va欧美va精品 | 日韩精品乱码av一区二区 | 亚洲狠狠色丁香婷婷综合 | 成熟妇人a片免费看网站 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲乱码中文字幕在线 | 亚洲娇小与黑人巨大交 | 少妇太爽了在线观看 | 欧美 日韩 亚洲 在线 | 在线观看国产午夜福利片 | 伊人久久大香线蕉午夜 | 对白脏话肉麻粗话av | 无码福利日韩神码福利片 | 欧美熟妇另类久久久久久多毛 | 日韩精品无码一区二区中文字幕 | 免费播放一区二区三区 | 激情综合激情五月俺也去 | 久久亚洲国产成人精品性色 | 国产亚洲tv在线观看 | 波多野42部无码喷潮在线 | 久久亚洲a片com人成 | www国产亚洲精品久久网站 | 国产麻豆精品精东影业av网站 | 色老头在线一区二区三区 | 丝袜足控一区二区三区 | 99久久久无码国产精品免费 | 国产女主播喷水视频在线观看 | 欧美怡红院免费全部视频 | 高清无码午夜福利视频 | 黄网在线观看免费网站 | 国产又爽又猛又粗的视频a片 | 好爽又高潮了毛片免费下载 | 欧美阿v高清资源不卡在线播放 | 无码人妻精品一区二区三区下载 | 人妻插b视频一区二区三区 | 性欧美大战久久久久久久 | 牛和人交xxxx欧美 | 日日噜噜噜噜夜夜爽亚洲精品 | 成 人 免费观看网站 | 中文字幕久久久久人妻 | 国产在热线精品视频 | 亚洲国产精品无码久久久久高潮 | 99精品久久毛片a片 | 国产乡下妇女做爰 | 蜜臀aⅴ国产精品久久久国产老师 | 少妇的肉体aa片免费 | 欧洲欧美人成视频在线 | 亚洲欧洲日本无在线码 | 国产热a欧美热a在线视频 | 国产精品嫩草久久久久 | 性色欲网站人妻丰满中文久久不卡 | 无码福利日韩神码福利片 | 久久综合给合久久狠狠狠97色 | 露脸叫床粗话东北少妇 | 色偷偷人人澡人人爽人人模 | 国产成人精品无码播放 | 亚洲精品国产第一综合99久久 | 东京热无码av男人的天堂 | 精品少妇爆乳无码av无码专区 | 欧美三级a做爰在线观看 | a片免费视频在线观看 | 国产麻豆精品一区二区三区v视界 | 日本一区二区三区免费播放 | 日本熟妇人妻xxxxx人hd | 亚洲区小说区激情区图片区 | 图片小说视频一区二区 | 俺去俺来也在线www色官网 | 高潮毛片无遮挡高清免费 | 麻豆果冻传媒2021精品传媒一区下载 | 午夜性刺激在线视频免费 | 少妇无码一区二区二三区 | 全球成人中文在线 | 图片小说视频一区二区 | 久久精品视频在线看15 | 欧美xxxxx精品 | 国产免费观看黄av片 | 亚洲精品成人福利网站 | 99riav国产精品视频 | 久久久久久久人妻无码中文字幕爆 | 国产av一区二区精品久久凹凸 | www一区二区www免费 | 青青草原综合久久大伊人精品 | 最新国产乱人伦偷精品免费网站 | 亚洲色大成网站www | 4hu四虎永久在线观看 | 国产成人一区二区三区在线观看 | 无码国产色欲xxxxx视频 | 人妻与老人中文字幕 | 免费国产黄网站在线观看 | 精品无码国产一区二区三区av | 性欧美videos高清精品 | 亚洲欧美综合区丁香五月小说 | 极品尤物被啪到呻吟喷水 | 欧美熟妇另类久久久久久多毛 | 国产极品视觉盛宴 | 日韩视频 中文字幕 视频一区 | 精品人人妻人人澡人人爽人人 | 国产精品无码久久av | 日本一区二区三区免费高清 | 3d动漫精品啪啪一区二区中 | 亚洲精品国偷拍自产在线麻豆 | 欧美丰满少妇xxxx性 | 色婷婷av一区二区三区之红樱桃 | 久久99精品久久久久婷婷 | 女人和拘做爰正片视频 | 99久久久无码国产aaa精品 | 国产精品理论片在线观看 | 少妇无码一区二区二三区 | 欧美熟妇另类久久久久久不卡 | 窝窝午夜理论片影院 | 麻豆果冻传媒2021精品传媒一区下载 | 成人一区二区免费视频 | 亚洲第一网站男人都懂 | 麻豆人妻少妇精品无码专区 | 999久久久国产精品消防器材 | 国产精品美女久久久网av | 波多野结衣一区二区三区av免费 | 国产一区二区三区四区五区加勒比 | 岛国片人妻三上悠亚 | 嫩b人妻精品一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 97色伦图片97综合影院 | 亚洲成av人影院在线观看 | av在线亚洲欧洲日产一区二区 | 午夜无码人妻av大片色欲 | 亚洲色欲久久久综合网东京热 | 欧美日韩色另类综合 | 中文字幕久久久久人妻 | 无码人妻丰满熟妇区毛片18 | 最近中文2019字幕第二页 | 精品无人国产偷自产在线 | 76少妇精品导航 | 亚洲乱码国产乱码精品精 | 久久人人爽人人人人片 | 亚洲精品综合一区二区三区在线 | 欧美激情综合亚洲一二区 | 东京无码熟妇人妻av在线网址 | 我要看www免费看插插视频 | 伊人久久大香线焦av综合影院 | 人人妻人人澡人人爽人人精品 | 久久亚洲a片com人成 | 黄网在线观看免费网站 | 夜夜高潮次次欢爽av女 | 国内揄拍国内精品少妇国语 | 色婷婷久久一区二区三区麻豆 | 国产明星裸体无码xxxx视频 | 无码免费一区二区三区 | 国产精品无码一区二区三区不卡 | 狠狠综合久久久久综合网 | 少妇人妻大乳在线视频 | 亚洲国产精华液网站w | 久久精品视频在线看15 | 国产精品美女久久久久av爽李琼 | 波多野结衣一区二区三区av免费 | 无人区乱码一区二区三区 | 久青草影院在线观看国产 | av无码久久久久不卡免费网站 | 久久久久成人精品免费播放动漫 | 国产凸凹视频一区二区 | 精品少妇爆乳无码av无码专区 | 国内综合精品午夜久久资源 | 又大又硬又黄的免费视频 | 色诱久久久久综合网ywww | 久久国产精品偷任你爽任你 | 久久久久亚洲精品中文字幕 | 日日碰狠狠躁久久躁蜜桃 | 久久精品国产一区二区三区肥胖 | 亚洲成在人网站无码天堂 | 红桃av一区二区三区在线无码av | 国产电影无码午夜在线播放 | 国产免费观看黄av片 | 日本肉体xxxx裸交 | 亚洲综合伊人久久大杳蕉 | 精品久久久无码人妻字幂 | 国产乡下妇女做爰 | 97精品人妻一区二区三区香蕉 | 日韩人妻无码一区二区三区久久99 | 久久久久成人片免费观看蜜芽 | 波多野结衣av一区二区全免费观看 | 久久无码人妻影院 | 免费视频欧美无人区码 | 成人无码视频在线观看网站 | 亚洲精品国产第一综合99久久 | 色婷婷av一区二区三区之红樱桃 | 又黄又爽又色的视频 | 久久成人a毛片免费观看网站 | 国产精品高潮呻吟av久久 | 中文无码成人免费视频在线观看 | 欧美性黑人极品hd | 国产办公室秘书无码精品99 | 亚洲精品一区二区三区婷婷月 | 无码精品人妻一区二区三区av | 装睡被陌生人摸出水好爽 | 午夜无码区在线观看 | 欧美乱妇无乱码大黄a片 | 麻豆蜜桃av蜜臀av色欲av | 最新版天堂资源中文官网 | 欧美丰满熟妇xxxx | 日韩无套无码精品 | 国产网红无码精品视频 | 娇妻被黑人粗大高潮白浆 | 无码av免费一区二区三区试看 | 熟女俱乐部五十路六十路av | 国产性生大片免费观看性 | 欧美野外疯狂做受xxxx高潮 | 精品无码国产自产拍在线观看蜜 | 亚洲日韩一区二区 | 九一九色国产 | 色综合久久久久综合一本到桃花网 | 一本色道久久综合狠狠躁 | 亚洲成色www久久网站 | 男女性色大片免费网站 | 亚洲精品综合五月久久小说 | 男女性色大片免费网站 | 无遮挡国产高潮视频免费观看 | 亚洲狠狠色丁香婷婷综合 | 欧美放荡的少妇 | 国语自产偷拍精品视频偷 | 国产精品久久久一区二区三区 | 十八禁视频网站在线观看 | 领导边摸边吃奶边做爽在线观看 | 四虎永久在线精品免费网址 | 强开小婷嫩苞又嫩又紧视频 | 亚洲色欲久久久综合网东京热 | 成人试看120秒体验区 | 无码精品国产va在线观看dvd | 亚洲成a人片在线观看无码 | 又粗又大又硬又长又爽 | 久在线观看福利视频 | 男女超爽视频免费播放 | 午夜嘿嘿嘿影院 | 久久久久久a亚洲欧洲av冫 | 欧美大屁股xxxxhd黑色 | 国产97在线 | 亚洲 | 久久人人爽人人人人片 | 欧美成人午夜精品久久久 | 亚洲人成影院在线无码按摩店 | 日韩精品一区二区av在线 | 日韩精品无码免费一区二区三区 | 色情久久久av熟女人妻网站 | 亚洲成在人网站无码天堂 | 国产精品高潮呻吟av久久 | 亚洲男女内射在线播放 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 人妻少妇被猛烈进入中文字幕 | 久久久精品456亚洲影院 | 精品国产av色一区二区深夜久久 | av无码不卡在线观看免费 | 久久久久久a亚洲欧洲av冫 | 高潮毛片无遮挡高清免费视频 | 人妻少妇精品无码专区二区 | 国产亚洲精品久久久久久久久动漫 | 狠狠色噜噜狠狠狠狠7777米奇 | 丝袜人妻一区二区三区 | 亚洲精品成a人在线观看 | 亚洲理论电影在线观看 | 日韩人妻系列无码专区 | 爆乳一区二区三区无码 | 两性色午夜免费视频 | 国产女主播喷水视频在线观看 | 国产人妻人伦精品1国产丝袜 | 亚洲综合无码久久精品综合 | 国产人妻久久精品二区三区老狼 | 亚洲男人av天堂午夜在 | 久久人人爽人人爽人人片av高清 | 国产无遮挡吃胸膜奶免费看 | 国产一区二区三区四区五区加勒比 | 丰满少妇高潮惨叫视频 | 免费国产黄网站在线观看 | 一本久道高清无码视频 | 国产无遮挡又黄又爽又色 | 麻豆国产丝袜白领秘书在线观看 | 国产人妻大战黑人第1集 | 樱花草在线播放免费中文 | 偷窥日本少妇撒尿chinese | 中文字幕av无码一区二区三区电影 | 性色av无码免费一区二区三区 | 综合激情五月综合激情五月激情1 | 亚洲精品美女久久久久久久 | 日日摸夜夜摸狠狠摸婷婷 | 国产在线精品一区二区高清不卡 | 成人综合网亚洲伊人 | 亚洲精品一区二区三区四区五区 | 丁香花在线影院观看在线播放 | 国产香蕉尹人综合在线观看 | 色欲久久久天天天综合网精品 | 成人动漫在线观看 | 精品国产av色一区二区深夜久久 | 97久久超碰中文字幕 | 亚洲精品一区三区三区在线观看 | 一本精品99久久精品77 | 欧美大屁股xxxxhd黑色 | 麻豆果冻传媒2021精品传媒一区下载 | 99久久亚洲精品无码毛片 | 乱人伦人妻中文字幕无码 | 天天燥日日燥 | 2020久久香蕉国产线看观看 | 国产真人无遮挡作爱免费视频 | 无码成人精品区在线观看 | 免费男性肉肉影院 | 亚洲精品无码国产 | 精品一区二区三区波多野结衣 | 国内精品久久毛片一区二区 | 婷婷六月久久综合丁香 | 国产热a欧美热a在线视频 | аⅴ资源天堂资源库在线 | 好男人www社区 | 国产一区二区不卡老阿姨 | 国产在线精品一区二区高清不卡 | 国产激情一区二区三区 | 成人性做爰aaa片免费看不忠 | 97久久精品无码一区二区 | 男人的天堂2018无码 | 99久久精品国产一区二区蜜芽 | 国产无遮挡又黄又爽免费视频 | 又大又硬又爽免费视频 | 亚洲の无码国产の无码影院 | 亚洲伊人久久精品影院 | 亚洲热妇无码av在线播放 | 一本久久a久久精品vr综合 | 精品少妇爆乳无码av无码专区 | 一个人看的视频www在线 | 精品aⅴ一区二区三区 | 人妻夜夜爽天天爽三区 | 天天综合网天天综合色 | 久久99热只有频精品8 | 国产激情精品一区二区三区 | 粗大的内捧猛烈进出视频 | 成年女人永久免费看片 | 久久精品99久久香蕉国产色戒 | 国产另类ts人妖一区二区 | 国产精品无码成人午夜电影 | 国产婷婷色一区二区三区在线 | 国产精品久久久久久亚洲影视内衣 | 国产精品欧美成人 | 麻豆人妻少妇精品无码专区 | 国产精品国产自线拍免费软件 | 国产精品多人p群无码 | 亚洲综合无码一区二区三区 | 亚洲精品一区二区三区四区五区 | 99精品国产综合久久久久五月天 | 天天摸天天透天天添 | 亚洲色大成网站www | 久久久国产精品无码免费专区 | 亚洲阿v天堂在线 | 亚洲国产av精品一区二区蜜芽 | 国产亚洲精品久久久ai换 | 亚洲精品午夜无码电影网 | 亚洲精品中文字幕久久久久 | 久久久久久久久888 | 青青草原综合久久大伊人精品 | 久激情内射婷内射蜜桃人妖 | 国产精品久久久久久亚洲影视内衣 | 人妻无码αv中文字幕久久琪琪布 | 人妻体内射精一区二区三四 | 初尝人妻少妇中文字幕 | 久久综合香蕉国产蜜臀av | 强伦人妻一区二区三区视频18 | 国产成人综合美国十次 | 熟妇人妻中文av无码 | 一本无码人妻在中文字幕免费 | 亚洲精品久久久久中文第一幕 | 中文字幕 亚洲精品 第1页 | 高潮喷水的毛片 | 久久综合给合久久狠狠狠97色 | 一本一道久久综合久久 | 偷窥日本少妇撒尿chinese | 亚洲啪av永久无码精品放毛片 | 亚洲国产精品毛片av不卡在线 | 欧美丰满熟妇xxxx | 少妇被粗大的猛进出69影院 | 日韩欧美成人免费观看 | 麻豆精品国产精华精华液好用吗 | 性欧美熟妇videofreesex | 国产suv精品一区二区五 | 国产精品无码久久av | 亚洲自偷自拍另类第1页 | 久久精品成人欧美大片 | 色欲人妻aaaaaaa无码 | 精品无码国产一区二区三区av | 国产艳妇av在线观看果冻传媒 | 日韩视频 中文字幕 视频一区 | 无码国产乱人伦偷精品视频 | 亚洲熟女一区二区三区 | 国产农村妇女高潮大叫 | 久久久精品人妻久久影视 | 欧美黑人性暴力猛交喷水 | 正在播放老肥熟妇露脸 | 久久午夜无码鲁丝片秋霞 | 日韩av激情在线观看 | 99精品久久毛片a片 | 成人欧美一区二区三区黑人免费 | 一个人免费观看的www视频 | 学生妹亚洲一区二区 | 福利一区二区三区视频在线观看 | 人妻aⅴ无码一区二区三区 | 日韩少妇白浆无码系列 | 国产办公室秘书无码精品99 | 久久久久久久久888 | 亚洲国产精品美女久久久久 | 午夜熟女插插xx免费视频 | 精品午夜福利在线观看 | 九月婷婷人人澡人人添人人爽 | 欧美熟妇另类久久久久久不卡 | 久久综合给合久久狠狠狠97色 | 妺妺窝人体色www婷婷 | 日韩精品无码免费一区二区三区 | 久久精品视频在线看15 | 欧洲极品少妇 | 国产麻豆精品一区二区三区v视界 | 中文字幕乱妇无码av在线 | 亚洲精品国产精品乱码视色 | 国产舌乚八伦偷品w中 | 人人爽人人爽人人片av亚洲 | 亚洲中文无码av永久不收费 | 无码人妻精品一区二区三区下载 | 亚洲欧洲中文日韩av乱码 | 日韩欧美成人免费观看 | 97夜夜澡人人爽人人喊中国片 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品-区区久久久狼 | 亚洲欧美国产精品专区久久 | 国产口爆吞精在线视频 | 国产精品人人爽人人做我的可爱 | 婷婷色婷婷开心五月四房播播 | 国产精品成人av在线观看 | 未满小14洗澡无码视频网站 | 综合人妻久久一区二区精品 | 久久精品人妻少妇一区二区三区 | 少妇人妻大乳在线视频 | 国产精品.xx视频.xxtv | 亚洲成a人片在线观看日本 | 欧美性猛交xxxx富婆 | 国产农村乱对白刺激视频 | 国产精品久久久久久亚洲影视内衣 | 无码人妻av免费一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 在线播放亚洲第一字幕 | 无套内射视频囯产 | 熟妇人妻中文av无码 | 精品国产福利一区二区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲va中文字幕无码久久不卡 | 久久国产36精品色熟妇 | 国产成人精品久久亚洲高清不卡 | 人人妻人人澡人人爽人人精品 | 欧美精品一区二区精品久久 | 国产在线aaa片一区二区99 | 女人被男人爽到呻吟的视频 | 成在人线av无码免观看麻豆 | 国内精品人妻无码久久久影院蜜桃 | 动漫av网站免费观看 | 成人av无码一区二区三区 | 午夜精品久久久内射近拍高清 | 亚洲一区二区三区香蕉 | 国产免费久久久久久无码 | 免费观看又污又黄的网站 | 日韩欧美成人免费观看 | 亚洲a无码综合a国产av中文 | 亚洲乱码日产精品bd | 欧美精品国产综合久久 | 99国产精品白浆在线观看免费 | 97精品人妻一区二区三区香蕉 | 欧洲精品码一区二区三区免费看 | 久久久中文字幕日本无吗 | 精品久久久久香蕉网 | 牲欲强的熟妇农村老妇女 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产卡一卡二卡三 | 人人澡人人妻人人爽人人蜜桃 | 国产成人人人97超碰超爽8 | 55夜色66夜色国产精品视频 | 国产综合在线观看 | 亚洲色大成网站www | 国产又粗又硬又大爽黄老大爷视 | 国产精品美女久久久 | 伊人久久婷婷五月综合97色 | 亚洲色大成网站www国产 | 97夜夜澡人人爽人人喊中国片 | 丰满少妇熟乱xxxxx视频 | 日本xxxx色视频在线观看免费 | 国产高潮视频在线观看 | 成人一在线视频日韩国产 | 欧美三级a做爰在线观看 | 色婷婷综合中文久久一本 | 中文字幕无码av激情不卡 | 好男人www社区 | 波多野结衣乳巨码无在线观看 | 国产香蕉尹人综合在线观看 | 成人精品天堂一区二区三区 | 亚洲国精产品一二二线 | 一本无码人妻在中文字幕免费 | 亚洲国产欧美日韩精品一区二区三区 | 成人av无码一区二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 黑人玩弄人妻中文在线 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲精品一区二区三区婷婷月 | 扒开双腿吃奶呻吟做受视频 | 欧美人与禽zoz0性伦交 | 麻豆精品国产精华精华液好用吗 | 亚洲色在线无码国产精品不卡 | 黑人大群体交免费视频 | 2019nv天堂香蕉在线观看 | 久久久中文字幕日本无吗 | 国产综合久久久久鬼色 | 西西人体www44rt大胆高清 | 亚洲 a v无 码免 费 成 人 a v | 97夜夜澡人人爽人人喊中国片 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲中文字幕无码中字 | 国产色精品久久人妻 | 久久久久av无码免费网 | 日本一区二区更新不卡 | 久久久久久久女国产乱让韩 | 欧美 日韩 亚洲 在线 | 国产成人午夜福利在线播放 | 久久亚洲国产成人精品性色 | 亚洲欧美色中文字幕在线 | 国产成人一区二区三区在线观看 | 国产精品福利视频导航 | 最新国产乱人伦偷精品免费网站 | 欧美成人高清在线播放 | 三上悠亚人妻中文字幕在线 | 精品国产国产综合精品 | 亚洲欧美国产精品专区久久 | 狠狠综合久久久久综合网 | 亚洲爆乳大丰满无码专区 | 精品厕所偷拍各类美女tp嘘嘘 | 国产婷婷色一区二区三区在线 | 亚洲成a人片在线观看日本 | 又大又硬又爽免费视频 | 国产又粗又硬又大爽黄老大爷视 | 亚洲精品午夜无码电影网 | 国产美女极度色诱视频www | 国产疯狂伦交大片 | 亚洲精品无码国产 | 狠狠躁日日躁夜夜躁2020 | 婷婷五月综合缴情在线视频 | 国产小呦泬泬99精品 | 又湿又紧又大又爽a视频国产 | 黑人粗大猛烈进出高潮视频 | 国产精品久久久久7777 | 久久www免费人成人片 |