日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果

發布時間:2025/3/15 windows 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DirectX11 With Windows SDK--17 利用幾何著色器實現公告板效果 原文:DirectX11 With Windows SDK--17 利用幾何著色器實現公告板效果

前言

上一章我們知道了如何使用幾何著色器將頂點通過流輸出階段輸出到綁定的頂點緩沖區。接下來我們繼續利用它來實現一些新的效果,在這一章,你將了解:

  • 實現公告板效果
  • Alpha-To-Coverage
  • 對GPU資源進行讀/寫操作
  • 紋理數組
  • 實現霧效
  • 在此之前需要額外了解的章節如下:

    章節回顧
    深入理解與使用2D紋理資源(重點閱讀紋理數組)
    15 幾何著色器初探

    DirectX11 With Windows SDK完整目錄

    Github項目源碼

    歡迎加入QQ群: 727623616 可以一起探討DX11,以及有什么問題也可以在這里匯報。

    實現霧效

    雖然這部分與幾何著色器并沒有什么關系,但是霧的效果在該Demo中會用到,并且前面也沒有講過這部分內容,故先在這里提出來。

    有時候我們需要在游戲中模擬一些特定的天氣條件,比如說大霧。它可以讓物體平滑出現而不是突然蹦出來那樣(物體的一部分留在視錐體內使得只能看到該部分,然后在逐漸靠近該物體的時候,該物體就像經過了一個無形的掃描門被逐漸構造出來那樣)。通過讓霧在某一范圍內具有一定的層次(讓不可見區域比視錐體裁剪區域還近),我們可以避免上面所說的情況。但即便是晴朗的天氣,你可能仍希望包含一個較廣范圍的霧效,即距離達到很遠的地方才逐漸看不清物體。

    我們可以使用這種方式來實現霧效:指定霧的顏色,以攝像機為原點的霧開始的最小距離,霧效范圍值(超過起始距離+霧效范圍值的范圍外的顏色皆被指定的霧色取代)。在需要繪制的三角形內,某一像素片元的顏色如下:
    \(\begin{align} foggedColor &= litColor + s(fogColor - litColor)\\ &= (1-s) \cdot litColor + s \cdot fogColor\\ \end{align}\)

    該函數對應HLSL中的lerp函數,s取0的時候最終顏色為litColor,然后逐漸增大并逼近1的時候,最終顏色就逐漸趨近于fogColor。然后參數s的值取決于下面的函數:
    \(s = saturate(\frac{dist(\mathbf{p},\mathbf{E}) - fogStart}{fogRange})\)
    \(saturate(x) = \begin{cases} x, 0 \le x \le 1\\ 0, x < 0\\ 1, x > 1\\ \end{cases}\)

    其中dist(p,E)指的是兩點之間的距離值。配合下面的圖去理解:

    還有注意一點,在每次清空重新繪制的時候,要用霧的顏色進行清空。

    HLSL代碼

    與霧效相關的值存儲在下面的常量緩沖區中,并且繪制3D物體的頂點沒有發生變化:

    // Basic.fx // ...cbuffer CBDrawingStates : register(b2) {float4 g_FogColor;int g_FogEnabled;float g_FogStart;float g_FogRange;float g_Pad2; }// ... struct VertexPosNormalTex {float3 PosL : POSITION;float3 NormalL : NORMAL;float2 Tex : TEXCOORD; };struct VertexPosHWNormalTex {float4 PosH : SV_POSITION;float3 PosW : POSITION; // 在世界中的位置float3 NormalW : NORMAL; // 法向量在世界中的方向float2 Tex : TEXCOORD; };

    Basic_VS.hlsl也與之前一樣,沒有什么變動:

    // Basic_VS.hlsl #include "Basic.hlsli"// 頂點著色器 VertexPosHWNormalTex VS(VertexPosNormalTex vIn) {VertexPosHWNormalTex vOut;matrix viewProj = mul(g_View, g_Proj);vector posW = mul(float4(vIn.PosL, 1.0f), g_World);vOut.PosW = posW.xyz;vOut.PosH = mul(posW, viewProj);vOut.NormalW = mul(vIn.NormalL, (float3x3) g_WorldInvTranspose);vOut.Tex = vIn.Tex;return vOut; }

    而Basic_PS.hlsl現在使用了4盞方向光以保證4種不同方向的光能夠均勻照射,并添加了霧效部分的處理:

    // Basic_PS.hlsl #include "Basic.hlsli"// 像素著色器 float4 PS(VertexPosHWNormalTex pIn) : SV_Target {// 提前進行裁剪,對不符合要求的像素可以避免后續運算float4 texColor = g_Tex.Sample(g_Sam, pIn.Tex);clip(texColor.a - 0.05f);// 標準化法向量pIn.NormalW = normalize(pIn.NormalW);// 求出頂點指向眼睛的向量,以及頂點與眼睛的距離float3 toEyeW = normalize(g_EyePosW - pIn.PosW);float distToEye = distance(g_EyePosW, pIn.PosW);// 初始化為0 float4 ambient = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 diffuse = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 spec = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 A = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 D = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 S = float4(0.0f, 0.0f, 0.0f, 0.0f);[unroll]for (int i = 0; i < 4; ++i){ComputeDirectionalLight(g_Material, g_DirLight[i], pIn.NormalW, toEyeW, A, D, S);ambient += A;diffuse += D;spec += S;}float4 litColor = texColor * (ambient + diffuse) + spec;// 霧效部分[flatten]if (g_FogEnabled){// 限定在0.0f到1.0f范圍float fogLerp = saturate((distToEye - g_FogStart) / g_FogRange);// 根據霧色和光照顏色進行線性插值litColor = lerp(litColor, g_FogColor, fogLerp);}litColor.a = texColor.a * g_Material.Diffuse.a;return litColor; }

    對于白天來說,我們可以使用RGBA=(0.75f, 0.75f, 0.75f, 1.0f)來作為霧的顏色。

    而對于黑夜來說,這個霧效更像是戰爭迷霧的效果,我們使用RGBA=(0.0f, 0.0f, 0.0f, 1.0f)來作為霧的顏色,這樣遠處的物體我們就讓它看不見,而在可視范圍內,距離越遠的物體能見度越低。

    具體的演示效果在最后可以看到。

    樹的公告板效果

    當一棵樹離攝像機太遠的話,我們可以使用公告板技術,用一張樹的貼圖來進行繪制,取代原來繪制3D樹模型的方式。首先我們給出樹的紋理貼圖組成:

    關注Alpha通道部分,白色區域指代Alpha值為1.0(完全不透明),而黑色區域指代Alpha值0.0(完全透明)。所以在渲染樹紋理的時候,我們只需要對Alpha值為0.0的像素區域進行裁剪即可。

    實現公告板的關鍵點在于:公告板要永遠正向攝像機(即視線要與公告板表面垂直),使得用戶的視線在x0z面上的投影一直與貼圖表面垂直。這樣做省去了大量頂點的輸入和處理,顯得更加高效,并且這個小技巧還能夠欺騙玩家讓人誤以為還是原來的3D模型(眼尖的玩家還是有可能認得出來),只要你別一開始就告訴人家這棵樹的繪制用了公告板原理就行了(→_→)。

    現在不考慮坐標系的Y軸部分(即從上方俯視),從下面的圖可以看到,公告板投影的中心部分的法向量是直接指向攝像機的。

    因此我們可以得到公告板的u軸, v軸和w軸單位向量以及根據公告板構建的局部坐標系:
    \(\mathbf{w}=\frac{(E_x-C_x,0,E_z-C_z)}{E_x-C_x,0,E_z-C_z}\)
    \(\mathbf{v}=(0,1,0)\)
    \(\mathbf{u}=\mathbf{v}\times\mathbf{w}\)

    然后已知中心頂點位置、樹寬度和高度,就可以求得2D樹矩形的四個頂點了:

    // 計算出公告板矩形的四個頂點 // up // v1___|___v3 // | | | // right__|___| | // |__/____| // v0 / v2 // look v[0] = float4(center + halfWidth * right - halfHeight * up, 1.0f); v[1] = float4(center + halfWidth * right + halfHeight * up, 1.0f); v[2] = float4(center - halfWidth * right - halfHeight * up, 1.0f); v[3] = float4(center - halfWidth * right + halfHeight * up, 1.0f);

    注意上面的加減運算是針對float3進行的,然后用1.0f填充成4D向量。并且由于每個公告板所處的局部坐標系不一樣,我們需要對它們分別計算出對應的坐標軸向量。

    若現在我們需要繪制公告板,則在輸入的時候僅提供對應的中心頂點,然后圖元類型選擇D3D11_PRIMITIVE_TOPOLOGY_POINTLIST,在幾何著色階段我們直接將頂點直傳到幾何著色階段,這些頂點傳遞給幾何著色器后就會解釋成一個個矩形(兩個三角形),產生公告板。

    HLSL代碼

    下面是Basic.hlsli的完整代碼:

    // Basic.hlsli#include "LightHelper.hlsli"Texture2D g_Tex : register(t0); Texture2DArray g_TexArray : register(t1); SamplerState g_Sam : register(s0);cbuffer CBChangesEveryDrawing : register(b0) {matrix g_World;matrix g_WorldInvTranspose;Material g_Material; }cbuffer CBChangesEveryFrame : register(b1) {matrix g_View;float3 g_EyePosW;float g_Pad; }cbuffer CBDrawingStates : register(b2) {float4 g_FogColor;int g_FogEnabled;float g_FogStart;float g_FogRange;float g_Pad2; }cbuffer CBChangesOnResize : register(b3) {matrix g_Proj; }cbuffer CBChangesRarely : register(b4) {DirectionalLight g_DirLight[5];PointLight g_PointLight[5];SpotLight g_SpotLight[5]; }struct VertexPosNormalTex {float3 PosL : POSITION;float3 NormalL : NORMAL;float2 Tex : TEXCOORD; };struct VertexPosHWNormalTex {float4 PosH : SV_POSITION;float3 PosW : POSITION; // 在世界中的位置float3 NormalW : NORMAL; // 法向量在世界中的方向float2 Tex : TEXCOORD; };struct PointSprite {float3 PosW : POSITION;float2 SizeW : SIZE; };struct BillboardVertex {float4 PosH : SV_POSITION;float3 PosW : POSITION;float3 NormalW : NORMAL;float2 Tex : TEXCOORD;uint PrimID : SV_PrimitiveID; };

    而幾何著色器的代碼如下:

    // Billboard_GS.hlsl#include "Basic.hlsli"// 節省內存資源,先用float4向量聲明。 static const float4 g_Vec[2] = { float4(0.0f, 1.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 0.0f) }; static const float2 g_TexCoord[4] = (float2[4])g_Vec;[maxvertexcount(4)] void GS(point PointSprite input[1], uint primID : SV_PrimitiveID, inout TriangleStream<BillboardVertex> output) {// 計算公告板所處的局部坐標系,其中公告板相當于// 被投影在了局部坐標系的xy平面,z=0float3 up = float3(0.0f, 1.0f, 0.0f);float3 look = g_EyePosW - input[0].PosW;look.y = 0.0f; // look向量只取投影到xz平面的向量look = normalize(look);float3 right = cross(up, look);// 計算出公告板矩形的四個頂點// up// v1 ___|___ v3// | | |// right__|___| |// | / |// |_/_____|// v0 / v2// look float4 v[4];float3 center = input[0].PosW;float halfWidth = 0.5f * input[0].SizeW.x;float halfHeight = 0.5f * input[0].SizeW.y;v[0] = float4(center + halfWidth * right - halfHeight * up, 1.0f);v[1] = float4(center + halfWidth * right + halfHeight * up, 1.0f);v[2] = float4(center - halfWidth * right - halfHeight * up, 1.0f);v[3] = float4(center - halfWidth * right + halfHeight * up, 1.0f);// 對頂點位置進行矩陣變換,并以TriangleStrip形式輸出BillboardVertex gOut;matrix viewProj = mul(g_View, g_Proj);[unroll]for (int i = 0; i < 4; ++i){gOut.PosW = v[i].xyz;gOut.PosH = mul(v[i], viewProj);gOut.NormalW = look;gOut.Tex = g_TexCoord[i];gOut.PrimID = primID;output.Append(gOut);}}

    首先一開始不用float2數組是因為每個float2元素會單獨打包,浪費了一半的空間,因此這里采取一種特殊的語法形式使得內存可以得到充分利用。

    然后要注意maxvertexcount的值要設為4,盡管Append的次數為4,但實際上輸出的三角形頂點數為6。

    圖元ID

    現在講述系統值SV_PrimitiveID,我們可以將它作為函數的額外形參進行提供。它告訴我們在輸入裝配階段下自動分配的圖元ID值。當我們調用了一個draw方法,需要繪制n個圖元,那么第一個圖元對應的ID值為0,第二個為1,直到最后一個為n-1.當前的所有圖元ID僅在當前的單次調用繪制是唯一的。其中該系統值的寫入操作允許在幾何著色器和像素著色器進行,而讀取操作則允許在幾何/像素/外殼/域著色器中進行。

    在上面的例子中,我們將一個頂點產生的矩形四個頂點都標記為同一個圖元ID,是因為到后續的像素著色器中,我們用該圖元ID映射到紋理數組的索引值,來對應到要繪制的樹的紋理。

    注意: 如果幾何著色器沒有提供圖元ID,在像素著色器中也可以將它加進參數列表中以使用:

    float4 PS(Vertex3DOut pin, uint primID : SV_PrimitiveID) : SV_Target { // Pixel shader body… }

    但如果像素著色器提供了圖元ID,渲染管線又綁定了幾何著色器,則幾何著色器必須提供該參數。在幾何著色器中你可以使用或修改圖元ID值。

    頂點ID

    緊接著是系統值SV_VertexID,在輸入裝配階段的時候渲染管線就會為這些輸入的頂點分配頂點ID值。若使用的是Draw方法,則這些頂點將會按順序從0到n-1被標記(n為頂點數目);若使用的是DrawIndexed方法,則頂點ID對應到的是該頂點所處的索引值。該參數僅能在頂點著色器的參數列表中提供:

    VertexOut VS(VertexIn vin, uint vertID : SV_VertexID) { // vertex shader body… }

    最后給出像素著色器的代碼:

    // Billboard_PS.hlsl#include "Basic.hlsli"float4 PS(BillboardVertex pIn) : SV_Target {// 每4棵樹一個循環,盡量保證出現不同的樹float4 texColor = g_TexArray.Sample(g_Sam, float3(pIn.Tex, pIn.PrimID % 4));// 提前進行裁剪,對不符合要求的像素可以避免后續運算clip(texColor.a - 0.05f);// 標準化法向量pIn.NormalW = normalize(pIn.NormalW);// 求出頂點指向眼睛的向量,以及頂點與眼睛的距離float3 toEyeW = normalize(g_EyePosW - pIn.PosW);float distToEye = distance(g_EyePosW, pIn.PosW);// 初始化為0 float4 ambient = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 diffuse = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 spec = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 A = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 D = float4(0.0f, 0.0f, 0.0f, 0.0f);float4 S = float4(0.0f, 0.0f, 0.0f, 0.0f);[unroll]for (int i = 0; i < 4; ++i){ComputeDirectionalLight(g_Material, g_DirLight[i], pIn.NormalW, toEyeW, A, D, S);ambient += A;diffuse += D;spec += S;}float4 litColor = texColor * (ambient + diffuse) + spec;// 霧效部分[flatten]if (g_FogEnabled){// 限定在0.0f到1.0f范圍float fogLerp = saturate((distToEye - g_FogStart) / g_FogRange);// 根據霧色和光照顏色進行線性插值litColor = lerp(litColor, g_FogColor, fogLerp);}litColor.a = texColor.a * g_Material.Diffuse.a;return litColor; }

    這里加上了剛才的霧效,并使用了紋理數組。如果你對紋理數組這部分內容不熟悉的話,請回到開頭閱讀"深入理解與使用2D紋理資源"中的紋理數組部分

    Alpha-To-Coverage

    在Demo運行的時候,仔細觀察可以發現樹公告板的某些邊緣部分有一些比較突出的黑邊。

    這是因為當前默認使用的是Alpha Test,即HLSL中使用clip函數將Alpha值為0的像素點給剔除掉,這些像素也不是樹的一部分。該函數決定某一像素是留下還是拋棄,這會導致不平滑的過渡現象,在攝像機逐漸靠近該紋理時,圖片本身也在不斷放大,硬邊部分也會被放大,就像下面那張圖:

    當然,你也可以使用透明混合的方式,但是透明混合對繪制的順序是有要求的,要求透明物體按從后到前的順序進行繪制,即需要在繪制透明物體前先對物體按到攝像機的距離排個序。當然如果需要繪制大量的草叢的話,這種方法所需要的開銷會變得非常大,操作起來也十分麻煩。

    當然,我們可以考慮下使用MSAA(多重采樣抗鋸齒),并配合Alpha Test進行。MSAA可以用于將多邊形的鋸齒邊緣平滑處理,然后讓Direct3D開啟alpha-to-coverage技術,標記邊緣部分。

    在創建后備緩沖區、深度/模板緩沖區前需要打開4倍多重采樣的支持,目前的項目在d3dApp中已經默認開啟好了。

    然后在之前的例子里,我們已經在RenderStates類中預先創建好了混合狀態:

    D3D11_BLEND_DESC blendDesc; ZeroMemory(&blendDesc, sizeof(blendDesc)); auto& rtDesc = blendDesc.RenderTarget[0]; // Alpha-To-Coverage模式 blendDesc.AlphaToCoverageEnable = true; blendDesc.IndependentBlendEnable = false; rtDesc.BlendEnable = false; rtDesc.RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; HR(device->CreateBlendState(&blendDesc, BSAlphaToCoverage.ReleaseAndGetAddressOf()));

    然后只需要在需要的時候綁定該狀態即可。

    BasicEffect的變化

    BasicEffect::SetRenderBillboard方法--公告板繪制

    該方法要考慮輸入的是一系列頂點圖元:

    void BasicEffect::SetRenderBillboard(ID3D11DeviceContext * deviceContext, bool enableAlphaToCoverage) {deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);deviceContext->IASetInputLayout(pImpl->m_pVertexPosSizeLayout.Get());deviceContext->VSSetShader(pImpl->m_pBillboardVS.Get(), nullptr, 0);deviceContext->GSSetShader(pImpl->m_pBillboardGS.Get(), nullptr, 0);deviceContext->RSSetState(RenderStates::RSNoCull.Get());deviceContext->PSSetShader(pImpl->m_pBillboardPS.Get(), nullptr, 0);deviceContext->PSSetSamplers(0, 1, RenderStates::SSLinearWrap.GetAddressOf());deviceContext->OMSetDepthStencilState(nullptr, 0);deviceContext->OMSetBlendState((enableAlphaToCoverage ? RenderStates::BSAlphaToCoverage.Get() : nullptr),nullptr, 0xFFFFFFFF);}

    參數enableAlphaToCoverage決定是否要綁定渲染狀態對象RenderStates::BSAlphaToCoverage。

    GameApp類的變化

    GameApp::InitPointSpritesBuffer方法--初始化存放點精靈的緩沖區

    該方法會生成20個頂點,均勻并略帶隨機性地環繞在原點周圍。這些頂點一經創建就不可以被修改了,它們將會被用于公告板的創建:

    void GameApp::InitPointSpritesBuffer() {srand((unsigned)time(nullptr));VertexPosSize vertexes[16];float theta = 0.0f;for (int i = 0; i < 16; ++i){// 取20-50的半徑放置隨機的樹float radius = (float)(rand() % 31 + 20);float randomRad = rand() % 256 / 256.0f * XM_2PI / 16;vertexes[i].pos = XMFLOAT3(radius * cosf(theta + randomRad), 8.0f, radius * sinf(theta + randomRad));vertexes[i].size = XMFLOAT2(30.0f, 30.0f);theta += XM_2PI / 16;}// 設置頂點緩沖區描述D3D11_BUFFER_DESC vbd;ZeroMemory(&vbd, sizeof(vbd));vbd.Usage = D3D11_USAGE_IMMUTABLE; // 數據不可修改vbd.ByteWidth = sizeof (vertexes);vbd.BindFlags = D3D11_BIND_VERTEX_BUFFER;vbd.CPUAccessFlags = 0;// 新建頂點緩沖區D3D11_SUBRESOURCE_DATA InitData;ZeroMemory(&InitData, sizeof(InitData));InitData.pSysMem = vertexes;HR(m_pd3dDevice->CreateBuffer(&vbd, &InitData, mPointSpritesBuffer.GetAddressOf())); }

    GameApp::InitResource方法--初始化資源

    該方法集成了所有資源的初始化,注意樹的紋理數組要提供到輸入槽1,對應紋理寄存器t1的Texture2DArray:

    bool GameApp::InitResource() {// ******************// 初始化各種物體//// 初始化樹紋理資源ComPtr<ID3D11Texture2D> test;HR(CreateDDSTexture2DArrayFromFile(m_pd3dDevice.Get(),m_pd3dImmediateContext.Get(),std::vector<std::wstring>{L"Texture\\tree0.dds",L"Texture\\tree1.dds",L"Texture\\tree2.dds",L"Texture\\tree3.dds"},test.GetAddressOf(),mTreeTexArray.GetAddressOf()));m_BasicEffect.SetTextureArray(mTreeTexArray.Get());// 初始化點精靈緩沖區InitPointSpritesBuffer();// 初始化樹的材質m_TreeMat.ambient = XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f);m_TreeMat.diffuse = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);m_TreeMat.specular = XMFLOAT4(0.2f, 0.2f, 0.2f, 16.0f);ComPtr<ID3D11ShaderResourceView> texture;// 初始化地板m_Ground.SetBuffer(m_pd3dDevice.Get(), Geometry::CreatePlane(XMFLOAT3(0.0f, -5.0f, 0.0f), XMFLOAT2(100.0f, 100.0f), XMFLOAT2(10.0f, 10.0f)));HR(CreateDDSTextureFromFile(m_pd3dDevice.Get(), L"Texture\\Grass.dds", nullptr, texture.GetAddressOf()));m_Ground.SetTexture(texture.Get());Material material{};material.ambient = XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f);material.diffuse = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);material.specular = XMFLOAT4(0.2f, 0.2f, 0.2f, 16.0f);m_Ground.SetMaterial(material);// ******************// 初始化不會變化的值//// 方向光DirectionalLight dirLight[4];dirLight[0].ambient = XMFLOAT4(0.1f, 0.1f, 0.1f, 1.0f);dirLight[0].diffuse = XMFLOAT4(0.25f, 0.25f, 0.25f, 1.0f);dirLight[0].specular = XMFLOAT4(0.1f, 0.1f, 0.1f, 1.0f);dirLight[0].direction = XMFLOAT3(-0.577f, -0.577f, 0.577f);dirLight[1] = dirLight[0];dirLight[1].direction = XMFLOAT3(0.577f, -0.577f, 0.577f);dirLight[2] = dirLight[0];dirLight[2].direction = XMFLOAT3(0.577f, -0.577f, -0.577f);dirLight[3] = dirLight[0];dirLight[3].direction = XMFLOAT3(-0.577f, -0.577f, -0.577f);for (int i = 0; i < 4; ++i)m_BasicEffect.SetDirLight(i, dirLight[i]);// ******************// 初始化攝像機//auto camera = std::shared_ptr<FirstPersonCamera>(new FirstPersonCamera);m_pCamera = camera;camera->SetViewPort(0.0f, 0.0f, (float)m_ClientWidth, (float)m_ClientHeight);camera->SetPosition(XMFLOAT3());camera->SetFrustum(XM_PI / 3, AspectRatio(), 1.0f, 1000.0f);camera->LookTo(XMVectorSet(0.0f, 0.0f, 0.0f, 1.0f),XMVectorSet(0.0f, 0.0f, 1.0f, 1.0f),XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f));camera->UpdateViewMatrix();m_BasicEffect.SetWorldMatrix(XMMatrixIdentity());m_BasicEffect.SetViewMatrix(camera->GetViewXM());m_BasicEffect.SetProjMatrix(camera->GetProjXM());m_BasicEffect.SetEyePos(camera->GetPositionXM());// ******************// 初始化霧效和天氣等//m_BasicEffect.SetFogState(m_FogEnabled);m_BasicEffect.SetFogColor(XMVectorSet(0.75f, 0.75f, 0.75f, 1.0f));m_BasicEffect.SetFogStart(15.0f);m_BasicEffect.SetFogRange(75.0f);return true; }

    其余方法限于篇幅就不放在這里了,讀者可以查看源碼觀察剩余部分的代碼實現。現在來看實現效果吧。

    實現效果

    可以觀察到,在與公告版近距離接觸時可以很明顯地看到公告板在跟著攝像機旋轉。如果距離很遠的話轉動的幅度就會很小,用戶才會比較難以分辨出遠處物體是否為公告板或3D模型了。

    下面演示了白天和黑夜的霧效

    最后則是Alpha-To-Coverage的開啟/關閉效果對比

    DirectX11 With Windows SDK完整目錄

    Github項目源碼

    歡迎加入QQ群: 727623616 可以一起探討DX11,以及有什么問題也可以在這里匯報。

    posted on 2019-05-05 09:57 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

    轉載于:https://www.cnblogs.com/lonelyxmas/p/10811385.html

    總結

    以上是生活随笔為你收集整理的DirectX11 With Windows SDK--17 利用几何着色器实现公告板效果的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产亚洲成av人片在线观看桃 | 亚洲免费a | 91最新在线视频 | 96精品高清视频在线观看软件特色 | 欧美性免费| 精品国内自产拍在线观看视频 | 国产乱对白刺激视频不卡 | 久久99国产一区二区三区 | 久久国产精品小视频 | 最近免费观看的电影完整版 | 国产99久久久国产精品成人免费 | 日韩网页| 久久国产精品久久精品 | 精品国自产在线观看 | 国产欧美三级 | bayu135国产精品视频 | 国内精品视频一区二区三区八戒 | 免费v片| 成人一级免费电影 | 亚洲欧洲一区二区在线观看 | 黄a在线| av在线激情 | 精品一区二区视频 | 99爱视频在线观看 | 激情久久综合网 | 视频一区视频二区在线观看 | 成人午夜电影免费在线观看 | 91在线porny国产在线看 | 成年人黄色免费视频 | 中文字幕中文字幕在线中文字幕三区 | 91黄视频在线 | 99热最新地址| 精品久久久久久久久久久久 | 日韩欧美视频在线观看免费 | 99自拍视频在线观看 | 日韩三级精品 | 黄色网大全 | 啪啪精品| 狠狠狠色丁香综合久久天下网 | 在线视频亚洲 | 国产午夜在线观看视频 | 国产精品视频久久久 | 日韩av男人的天堂 | 一级特黄aaa大片在线观看 | 精品国产一区二区三区免费 | 日韩在线观看中文 | 国产一区二区高清不卡 | 夜夜爽88888免费视频4848 | 国产精品久久久99 | 国产精品久久久久久久久久 | 国产一卡久久电影永久 | 区一区二在线 | 欧美一区二区三区激情视频 | 国产精品久久久久久影院 | 国产一级大片在线观看 | 国产视频日韩视频欧美视频 | 欧美大片在线观看一区 | 久久久久亚洲精品国产 | 国产精品久久久久三级 | 久久不射电影网 | 久久精品国产免费看久久精品 | 日本在线视频网址 | 国产精品激情在线观看 | 亚洲国产精品99久久久久久久久 | 欧美一区二区三区不卡 | 日韩久久久久久 | 日韩免费视频播放 | 99久久精品国产网站 | 三级av在线播放 | 欧美精品久久 | 国产一级性生活视频 | 狠狠干夜夜 | 亚洲人人av| 亚洲精品男人天堂 | 天天射天| 欧美黑人巨大xxxxx | 国产精品久久久免费 | 亚洲精品网址在线观看 | 天天躁天天躁天天躁婷 | 91片网| 欧美亚洲免费在线一区 | 亚洲伦理中文字幕 | 亚洲精品在线观看网站 | 日韩成人免费在线电影 | 国产精品成人av电影 | 美国三级黄色大片 | 一本一道久久a久久综合蜜桃 | 狠狠狠色丁香婷婷综合激情 | www.色午夜,com | 91在线播放视频 | 综合网色| 亚洲日本va午夜在线影院 | 国产专区视频在线观看 | 999久久国产| 中文欧美字幕免费 | 国产黄色片在线 | www黄色软件 | 国产中文字幕视频在线观看 | 伊人激情综合 | 日日天天 | 热久久视久久精品18亚洲精品 | 中文字幕高清免费日韩视频在线 | 99久久久国产精品美女 | www国产在线 | 91精品国产入口 | 少妇bbb | 成人av电影在线 | 久久久久久久久久久免费视频 | 午夜在线国产 | 欧美日韩亚洲在线观看 | 亚洲综合色丁香婷婷六月图片 | 国产精品岛国久久久久久久久红粉 | 在线久草视频 | 9999精品视频 | 欧美黑人性爽 | 国产精品久久99 | 国产高清久久久久 | 韩日电影在线免费看 | 国产专区在线播放 | 日韩在线视频一区二区三区 | 中文字幕高清在线播放 | 国产亚洲视频在线免费观看 | 九九久久影视 | 欧美日韩国产精品久久 | 九九在线免费视频 | 亚洲综合爱 | 欧美激情视频在线免费观看 | 午夜影院一级片 | 在线观看视频中文字幕 | 色综合久久中文综合久久牛 | av网在线观看 | 国产91精品久久久久 | 深爱激情婷婷网 | 亚洲综合激情网 | 成人性生交大片免费看中文网站 | 青青河边草免费观看 | 色综合久久久久久中文网 | 国产视频九色蝌蚪 | 人人搞人人爽 | 超碰97网站 | 人人艹视频 | 欧美激情精品久久久久久免费印度 | av免费在线观 | 国产99久久九九精品免费 | 免费色视频网站 | 一区二区视频在线免费观看 | 麻豆91网站| 亚洲精品国产精品国自 | 日韩一区二区三区高清免费看看 | 免费99精品国产自在在线 | 久草手机视频 | 黄色影院在线免费观看 | 在线国产视频观看 | 一区二区三区在线不卡 | 天堂网一区 | 六月婷色| 日韩综合精品 | 欧美在线观看视频免费 | 91亚·色| 在线观看日本高清mv视频 | 国产日韩欧美在线 | 色噜噜色噜噜 | 国产福利资源 | 国产精品久久免费看 | 欧美天天综合网 | 91成人免费看片 | 日本在线免费看 | 91成人小视频 | 日韩资源在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 成人av播放 | 中文字幕视频 | 国产精品久久久久永久免费 | 一区二区三区韩国免费中文网站 | 午夜精品久久久久久久99热影院 | 香蕉久久国产 | 亚洲片在线 | 特级a老妇做爰全过程 | 欧美片一区二区三区 | 狠狠躁夜夜a产精品视频 | 天天摸天天弄 | 九九视频在线 | 狠狠躁夜夜躁人人爽视频 | 一级片视频免费观看 | 蜜桃av观看 | 一区二区在线影院 | 欧美三级高清 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | www.色五月| 97视频在线免费播放 | 精品国产三级 | 8090yy亚洲精品久久 | 中文字幕高清 | 最新国产中文字幕 | 国产五月色婷婷六月丁香视频 | 日本天天操 | 四虎成人精品永久免费av九九 | 色999五月色| 欧美另类sm图片 | 国产美女久久久 | 激情婷婷综合 | 一级免费片 | 成年一级片 | 91人人插 | 亚洲精品麻豆视频 | 免费又黄又爽 | 中文字幕久久精品一区 | 91精品国产成人www | 国产精品v欧美精品v日韩 | 五月天中文字幕 | 国产一线二线三线性视频 | 97国产精品 | 久久久久久久久久久久久国产精品 | 精品国内 | www.夜夜干.com | 黄色网免费 | 在线观看日韩国产 | 福利视频网站 | 1000部国产精品成人观看 | 久久综合久久久 | 中文字幕第 | 在线视频黄 | 国产人成看黄久久久久久久久 | 久久久96 | 91亚洲成人 | 国产最新在线视频 | 日韩免费看 | 国产第一福利网 | 国产高清av在线播放 | 一区二区三区在线观看中文字幕 | 99久久99久久 | 亚洲午夜久久久久久久久电影网 | 亚洲精品午夜久久久久久久 | 一区中文字幕在线观看 | 中文av网站 | 国内视频在线观看 | 丁香午夜 | 国内精品视频免费 | 国产精品18久久久久vr手机版特色 | 日本中文字幕久久 | 欧美一区二区视频97 | 精品国产a| 中文字幕在线观看一区二区 | 黄色www免费 | 久久久国产精品成人免费 | 福利电影一区二区 | 亚洲男人天堂a | 久久国产精品一区二区三区四区 | 综合久久婷婷 | 国内久久久久久 | 亚洲免费在线视频 | 国产在线观看中文字幕 | 在线观看视频免费大全 | 婷婷资源站| 国产夫妻自拍av | 欧美在线你懂的 | 一区二区三区 亚洲 | 色综合久久88色综合天天人守婷 | 色在线高清 | 久久精品屋 | av官网在线| 亚洲午夜精品一区 | 色婷婷成人 | 欧美一区二区视频97 | 亚洲91中文字幕无线码三区 | 美女免费视频网站 | 就色干综合 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 91精品色 | 国产91对白在线播 | av免费观看高清 | 国产亚洲情侣一区二区无 | 99久久精品免费看国产免费软件 | 中文字幕在线免费97 | 九九在线国产视频 | 免费大片av | 91桃色免费观看 | 国产裸体视频bbbbb | 麻豆观看| 久久久久国产精品免费网站 | 狠狠插天天干 | 久久久久久久免费 | 黄在线免费观看 | 日韩一区正在播放 | 成人国产一区二区 | 国产高清黄 | 亚洲高清在线精品 | 99视| 四虎永久网站 | 91麻豆精品国产91久久久更新时间 | 亚洲伊人网在线观看 | 日韩av网页 | 99精品国产高清在线观看 | 天天婷婷| 国产精品福利久久久 | 国产手机视频在线播放 | av最新资源 | 成人片在线播放 | 99精品视频免费观看 | 不卡视频在线 | 天天操天天添天天吹 | 免费看的视频 | 国产视频在线播放 | 午夜在线日韩 | 日韩久久精品一区二区三区下载 | 99精品视频在线观看免费 | 亚洲极色 | 欧美成人性网 | 欧美成年黄网站色视频 | 国产精品九九热 | 日本精品久久久久中文字幕5 | 婷婷在线资源 | 午夜性色 | 亚洲精品乱码 | 国产高清精| 亚洲一区美女视频在线观看免费 | 黄色网址在线播放 | 日韩免费电影一区二区三区 | 91传媒在线看 | 又黄又爽的免费高潮视频 | 成人在线观看免费视频 | 91传媒在线看 | 999在线精品 | 97麻豆视频| 色吧av色av | 欧美久久成人 | 美女网站色免费 | 懂色av懂色av粉嫩av分享吧 | 国产高清视频色在线www | 亚洲另类xxxx | 99精品免费久久久久久日本 | 欧美日韩不卡一区 | 色a网| 毛片黄色一级 | 久久国产网站 | 精品久久久久久久久久岛国gif | 91精品国产91热久久久做人人 | 中文字幕观看av | 久久久99精品免费观看app | av看片网 | 成人免费看黄 | 国产国产人免费人成免费视频 | 国产精品久久一卡二卡 | 免费日韩 精品中文字幕视频在线 | 国产精品一区免费在线观看 | 亚洲精品乱码久久久久v最新版 | 国产精品理论在线观看 | 三级a视频 | 欧美成人在线免费 | 亚洲国产理论片 | a√资源在线 | 国产成人一区三区 | 色综合天天射 | 欧美黑人巨大xxxxx | 欧美日韩国产高清视频 | 夜夜夜夜夜夜操 | 全黄网站 | 在线看小早川怜子av | 四虎国产视频 | 91在线观看欧美日韩 | 色av男人的天堂免费在线 | 精品999在线观看 | 夜夜干天天操 | 国产主播大尺度精品福利免费 | 精品久久福利 | 日韩激情在线视频 | 在线观看完整版免费 | 国产精品乱码久久久久 | 免费在线观看黄 | av网站地址| 国产欧美精品一区二区三区 | 国产精品久久久久久久久费观看 | 欧美一区二区在线刺激视频 | 中文字幕在线免费看线人 | 亚洲美女精品区人人人人 | 国产日韩高清在线 | 亚洲天天 | 91中文字幕在线播放 | 91高清免费看 | 国产精品视频专区 | 国产成人三级在线 | 亚洲国产视频网站 | 人人爱天天操 | 在线观看视频在线 | 午夜精品福利影院 | 色婷五月天 | 中文字幕在线看视频 | 天天综合网入口 | 日韩欧美视频在线观看免费 | 91香蕉国产在线观看软件 | 黄色小说在线观看视频 | 日韩免费一级a毛片在线播放一级 | 亚州国产精品久久久 | 在线国产视频 | 在线 国产一区 | 麻豆小视频在线观看 | 成人av免费在线 | 免费高清无人区完整版 | 欧美疯狂性受xxxxx另类 | www.夜夜干.com| 久久露脸国产精品 | 五月婷婷狠狠 | 久久久久久久久久久影院 | 国产一区在线观看免费 | 午夜黄色大片 | 五月天网页 | 91精品久久久久久综合五月天 | 亚洲精品视频在线播放 | 欧美日韩国产精品爽爽 | 欧美日韩精品在线播放 | 91网页版在线观看 | 日韩综合色 | 日韩视| 极品美女被弄高潮视频网站 | 天天操夜夜曰 | 81精品国产乱码久久久久久 | 亚洲精品视频在线观看免费视频 | 成人av电影在线观看 | 最近的中文字幕大全免费版 | 中文字幕资源在线 | 国产成人精品一区二区三区福利 | 在线观看亚洲精品 | 亚洲国产三级在线 | 亚洲视频综合 | 成年人看片网站 | 91精品一区二区三区蜜桃 | 亚洲欧美视屏 | 欧美精品久久久久久久久久白贞 | 久久精品国产免费观看 | 日韩精品免费一区二区在线观看 | av色综合| 美女网站视频免费都是黄 | 日本久久久久久久久 | 91丨九色丨勾搭 | 欧美孕妇与黑人孕交 | 免费99视频 | 国产成人精品一区二区三区在线观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产一级三级 | 久久精品男人的天堂 | 亚洲国产精品一区二区尤物区 | 91九色porny蝌蚪主页 | 国语精品久久 | 奇米四色影狠狠爱7777 | 黄色大片视频网站 | 九九九九九九精品 | 特级毛片网 | 国产精品久久久久久久久久妇女 | 欧美va电影 | 久久成人高清视频 | 精品国产欧美一区二区 | 啪啪肉肉污av国网站 | 天天色中文 | 免费午夜av | 亚洲综合网站在线观看 | 久保带人 | 亚洲精品一区二区三区在线观看 | 日韩动漫免费观看高清完整版在线观看 | 国产精品福利在线 | 一区二区三区高清在线观看 | 亚洲精品欧美成人 | 丁香五月亚洲综合在线 | 国产精品www| 亚洲综合激情五月 | 久久久久久久久久免费视频 | 一区二区三区电影 | 国产精品久久久久久久久久尿 | 久艹在线播放 | 五月天综合色激情 | 91香蕉视频720p | www.天天干 | 欧美另类交人妖 | 中字幕视频在线永久在线观看免费 | 91超级碰碰| 丁香视频全集免费观看 | 国产又粗又长又硬免费视频 | 激情综合网五月 | 91麻豆精品国产91久久久更新时间 | 黄免费网站 | 美女久久久久 | 日本久久久久久 | 黄p在线播放 | 中文字幕在线观看网站 | 国产精品一区二区三区在线看 | 在线激情小视频 | 人人超碰在线 | 免费又黄又爽视频 | 97电影在线看视频 | 日韩com | 黄色91在线观看 | 国产一区视频在线观看免费 | 欧美综合在线观看 | 久久理论影院 | 成片免费观看视频 | 国产不卡免费 | 在线观看91 | 97在线资源 | 日韩二区在线播放 | 91精品啪啪 | 国产黄色精品在线观看 | 国产91免费在线观看 | 狠狠躁日日躁狂躁夜夜躁av | 婷婷丁香激情综合 | 91网址在线观看 | 国产在线色视频 | 久久久香蕉视频 | 久久久久| 美女网站色免费 | 亚洲综合小说电影qvod | 欧美国产日韩中文 | 亚洲国产精彩中文乱码av | 天天爱天天爽 | 免费在线a | 国内99视频 | 在线观看黄污 | 亚洲精品在线观看中文字幕 | 国产高清第一页 | 欧美大荫蒂xxx | 亚洲区色 | 精品产品国产在线不卡 | 国产精品一区二区久久国产 | 色婷av| 麻豆视频入口 | 九九九热精品 | 国产中文字幕亚洲 | 一区二区三区免费看 | 亚洲精品视频大全 | 精品在线观看一区二区 | 天天躁天天躁天天躁婷 | 天天玩天天操天天射 | 天天爱天天爽 | 天天爽夜夜操 | 成人看片| 91麻豆精品国产91久久久使用方法 | 国产精品高清一区二区三区 | 中文字幕av全部资源www中文字幕在线观看 | 久久久精品视频网站 | 国产最顶级的黄色片在线免费观看 | 六月丁香在线观看 | 亚洲视频一级 | 婷婷丁香自拍 | 国产v视频| 日日夜夜天天人人 | 久久免费在线观看 | 丁香视频全集免费观看 | 午夜在线国产 | 日本性高潮视频 | 狠狠的日 | 国产96av| 小草av在线播放 | 精品亚洲欧美无人区乱码 | 国产精品免费观看在线 | 久久爱综合| 欧美专区国产专区 | 91一区二区在线 | 992tv又爽又黄的免费视频 | 综合网久久 | 久精品视频在线 | 国产v在线观看 | 亚洲视频在线观看 | 天天撸夜夜操 | 18国产精品福利片久久婷 | 黄色美女免费网站 | 九九热免费在线观看 | 久草网在线视频 | 国产黄色观看 | 国产最新视频在线 | 亚洲国产中文字幕在线观看 | 在线免费观看黄色av | 97av在线| 九九九免费视频 | 三级毛片视频 | 国产成人福利在线观看 | 99精品国产一区二区三区不卡 | 国产高清在线 | 又黄又刺激的视频 | 粉嫩一二三区 | 奇米四色影狠狠爱7777 | 黄色一级在线视频 | 九九99靖品| 99久久婷婷国产精品综合 | 在线精品亚洲一区二区 | 久久精品国产精品亚洲 | 月丁香婷婷 | avcom在线| 亚洲v精品 | 狠狠狠狠狠狠干 | 色香天天 | 色偷偷av男人天堂 | 免费看黄电影 | 久久国产精品免费看 | 黄色片网站免费 | 亚洲黄色片 | 97精产国品一二三产区在线 | a在线观看免费视频 | 欧美日韩中文国产一区发布 | 欧美日韩久久 | 四虎免费在线观看 | 丁香五月缴情综合网 | 狠狠操夜夜 | 久草网站在线 | 久久久久欧美精品 | 黄色免费观看视频 | 一级片视频在线 | 免费a视频 | 欧美天堂视频在线 | 69国产精品视频 | 色婷婷成人 | 91精品视频在线 | 久久草网站| 久久精品99国产精品日本 | 国产精品毛片一区视频 | 一区二区伦理 | 五月激情天 | 超碰激情在线 | 在线观看免费一级片 | 成人影音在线 | 久久夜靖品 | 日韩精品一区在线播放 | 久久字幕网 | 久久一区二区免费视频 | 97看片| 91亚州 | 色婷婷av一区二 | 狠狠天天 | 精品一区二区在线观看 | 久久午夜免费视频 | 精品亚洲va在线va天堂资源站 | 欧美日韩xxxxx | 欧美色伊人 | 亚洲最新av网站 | 日日草视频| 欧美另类高潮 | 在线观看va | 国产精品一区二区吃奶在线观看 | 免费高清在线视频一区· | 插插插色综合 | 欧美日韩在线观看不卡 | 欧美日韩另类在线 | 欧美日产在线观看 | 日韩免费中文字幕 | 久久免费国产 | 日日干av| 亚洲美女免费精品视频在线观看 | 久久精品国产亚洲a | 成人精品一区二区三区中文字幕 | 亚洲激情小视频 | 五月天激情电影 | 中文字幕av全部资源www中文字幕在线观看 | 91九色蝌蚪在线 | 91亚洲在线 | 久草在线视频资源 | 日日添夜夜添 | 欧美日韩免费一区二区三区 | 夜色成人av | 国产精品美女久久久久久2018 | 成人手机在线视频 | 午夜电影久久久 | 18久久久| 国产成人精品午夜在线播放 | 国内少妇自拍视频一区 | 亚洲伦理一区 | 久久99精品国产一区二区三区 | www日日| 色婷婷婷| 成人久久久久 | 成人黄色在线观看视频 | 精品国产乱码久久久久 | 亚洲精品456在线播放第一页 | 四虎影视成人永久免费观看视频 | 91亚洲精品国偷拍 | 亚洲精品高清一区二区三区四区 | 精品国产一区二区三区噜噜噜 | 国语精品免费视频 | 国内成人精品视频 | 久久深夜| 一区二区欧美在线观看 | 国产精品美女视频 | 国产一级免费av | 亚洲精品在线观看网站 | 日韩av电影国产 | 伊人色播 | 国产69精品久久久久久 | 欧美午夜视频在线 | 欧美天天射 | 国产精品麻豆果冻传媒在线播放 | 一区二区免费不卡在线 | 日韩欧美在线一区 | 日本一区二区三区免费看 | 国产黄色大片 | 免费观看日韩 | 国产精品久久久久久久久久久杏吧 | 国产97色在线| 91av手机在线 | 久久视频中文字幕 | 超碰在线观看97 | 亚洲高清不卡av | 最近中文字幕在线中文高清版 | 高潮毛片无遮挡高清免费 | 男女男视频| 婷婷在线视频 | 久久99偷拍视频 | 国产一区二区三区网站 | 九色视频网址 | 91一区二区三区久久久久国产乱 | 免费观看国产精品视频 | 夜色资源网 | 天天爱天天舔 | 亚洲黄色在线播放 | 草免费视频 | 福利电影久久 | 久久这里有 | 91天堂在线观看 | 天天色中文 | 91久久久久久久一区二区 | 天天综合网天天综合色 | 夜夜夜夜夜夜操 | 国产免费一区二区三区网站免费 | 麻豆影视在线免费观看 | 国产精品一区专区欧美日韩 | 国产精品久久久久久久久久 | 日韩一区正在播放 | 激情视频区| 超碰97人人干| 天天色天天上天天操 | 天堂在线视频免费观看 | 丁香九月激情综合 | 偷拍精偷拍精品欧洲亚洲网站 | 黄a网| 99久久精品国产网站 | 国产精品1024| 成人亚洲精品久久久久 | 日日操日日插 | 99欧美| 欧美精品中文在线免费观看 | 亚洲黄色激情小说 | 亚洲 综合 激情 | 亚洲高清免费在线 | 日韩欧在线 | 精品国产黄色片 | 亚洲激情小视频 | 精品一区 在线 | 亚洲成av人影片在线观看 | 色婷婷久久 | 天天色天天操综合 | 久久久久亚洲精品成人网小说 | 国产精品2018 | 香蕉影院在线播放 | 亚洲不卡在线 | 99精品偷拍视频一区二区三区 | 久久亚洲私人国产精品va | 啪啪免费观看网站 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 最近日本韩国中文字幕 | 国产一区国产二区在线观看 | 久久久噜噜噜久久久 | 日韩一区二区久久 | 国产区精品视频 | 99av国产精品欲麻豆 | 亚洲爱av | 一 级 黄 色 片免费看的 | 69国产成人综合久久精品欧美 | 国产一区二区不卡视频 | 九九久 | 在线免费国产 | 久久精品中文字幕一区二区三区 | 欧美日韩视频免费 | 日韩av手机在线看 | 一区二区不卡高清 | 国产精品久久99综合免费观看尤物 | 国产视频一区在线免费观看 | 热久精品 | 久草网视频在线观看 | 天天干天天草 | 国产98色在线 | 日韩 | 制服丝袜亚洲 | 成人在线黄色电影 | 国产高清视频在线免费观看 | 天堂久久电影网 | 五月天激情视频 | 特级片免费看 | 四虎影视成人永久免费观看视频 | 日韩av二区| 中国一级片在线 | 亚洲欧美日韩国产一区二区三区 | 国产黄在线播放 | 国产麻豆剧果冻传媒视频播放量 | 日韩性xxx| 欧美激情h | 日韩精品1区2区 | 91精品第一页 | 国产精品免费观看视频 | 美女久久久久久久久久久 | 97国产小视频 | 国产日韩精品一区二区在线观看播放 | 天天操天天谢 | a黄色片在线观看 | 亚洲综合色网站 | 国产第页 | 在线观看av大片 | 天堂va在线观看 | 亚洲精品乱码久久久久 | 成人毛片久久 | 少妇高潮冒白浆 | 国产精品久久久久久一二三四五 | 日韩免费在线视频 | 亚洲精品一区二区在线观看 | 精品国产91亚洲一区二区三区www | 成人av网页 | 久久艹国产| 最近免费中文字幕mv在线视频3 | 天天爱综合 | 人人爽久久久噜噜噜电影 | 久久调教视频 | 国产精品免费久久久 | 国产一级不卡毛片 | 精品国产不卡 | 日韩高清免费无专码区 | 免费成人看片 | 蜜臀av网址 | 精品国产一二区 | 国产成人亚洲在线电影 | 日韩精品视频免费专区在线播放 | 99色在线播放 | 日韩精品在线视频 | 日韩在线色视频 | 国产伦理精品一区二区 | 久草在线综合 | 91视频免费看 | 在线小视频你懂得 | 97av免费视频 | 十八岁免进欧美 | 国产精品99久久久久久宅男 | 操操操天天操 | 日韩有码中文字幕在线 | 97视频在线免费 | 国产精品国产三级国产aⅴ无密码 | 国产精品免费av | 综合网天天 | 99精品国产99久久久久久福利 | 国产麻豆精品一区二区 | 国产99中文字幕 | 色噜噜狠狠色综合中国 | 国产精品一区二区美女视频免费看 | 免费精品在线 | 在线观看一区二区精品 | 天天色天天草天天射 | 99久久精品日本一区二区免费 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品尤物 | 男女全黄一级一级高潮免费看 | 丁香 婷婷 激情 | 91丨九色丨高潮丰满 | 欧美天堂影院 | 四虎影视国产精品免费久久 | 国产一级不卡视频 | 麻豆91在线看 | 成人在线播放网站 | 久久激情综合网 | 成人一区二区在线观看 | 色综合久久综合 | 91视频xxxx| 在线观看av网站 | 中文字幕在线有码 | 亚洲午夜久久久久久久久久久 | 欧美91成人网 | 亚洲精品456在线播放 | 午夜精品一区二区国产 | 午夜免费福利视频 | 免费视频黄色 | 成人一区二区在线 | 91在线视频观看 | 国产精品 中文在线 | 国产精品久久久久久一二三四五 | 中文字幕中文字幕在线中文字幕三区 | 狠狠狠狠狠狠狠 | 国产精品99久久99久久久二8 | 国产精品观看 | 久久黄色影视 | 天堂网一区 | 国产视频黄 | 亚洲黄在线观看 | 欧美一区二区三区在线 | 国产日韩精品在线观看 | 91精品啪在线观看国产线免费 | 欧美日韩亚洲一 | 日韩网站在线看片你懂的 | 有没有在线观看av | 免费看成年人 | 日韩欧美视频在线播放 | 18久久久 | 又黄又爽又色无遮挡免费 | 最近中文字幕视频完整版 | 免费在线观看日韩视频 | 国产一级片免费视频 | 伊人视频 | 9ⅰ精品久久久久久久久中文字幕 | 久久人人艹 | 天天干,狠狠干 | av在线直接看 | 国产 精品 资源 | 久久美女高清视频 | www.久久久精品 | 不卡的av在线播放 | 久久久受www免费人成 | 欧洲视频一区 | 欧美热久久 | 亚洲成人av片在线观看 | 国产xxxx性hd极品 | 精品中文字幕视频 | 亚洲综合色视频在线观看 | 久久人人爽人人爽人人片av免费 | 国产乱码精品一区二区三区介绍 | av电影av在线| 久久久精品 一区二区三区 国产99视频在线观看 | 日韩免费av片 | av电影在线免费 | 黄色免费观看网址 | 亚洲精品高清一区二区三区四区 | 91九色蝌蚪视频 | 久久综合狠狠综合 | 99热99re6国产在线播放 | 黄色激情网址 | 欧美国产精品一区二区 | 91综合视频在线观看 | 日本精品中文字幕 | 日韩在线观看小视频 | 久久久国产精品久久久 | 中文av在线播放 | 国产在线第三页 | 久草在线视频首页 | 日韩三级免费 | 亚洲视频axxx| 国产精品资源在线 | 九九电影在线 | 五月婷婷.com| 婷婷丁香五 | 中文字幕色在线视频 | av免费在线免费观看 | 天天射天天射 | 91亚洲精品久久久中文字幕 | 久久精品美女视频 | 日韩在线三级 | 五月婷婷毛片 | 69夜色精品国产69乱 | 欧美在线你懂的 | 日韩高清久久 | 高清精品在线 | 日韩在线三区 | 日韩国产精品毛片 | 人人狠狠综合久久亚洲 | 在线观看一区二区视频 | 中文字幕日本电影 | 亚洲涩涩网站 | www天天干com | 中文日韩在线 | 青青草在久久免费久久免费 | 中文字幕大全 | 亚洲免费专区 | 伊人婷婷久久 | 911免费视频| 精品毛片一区二区免费看 | 美女黄频 | 国产精品 国产精品 | 日韩欧美精品在线视频 | 国产在线免费 | 伊人久久婷婷 | 亚洲天堂激情 | 色噜噜在线观看 | 粉嫩aⅴ一区二区三区 | 高清av影院 | 免费精品在线视频 | 中文字幕 在线看 | 91成人欧美 | 国产精品一区二区av影院萌芽 | 日日干av | 91亚洲精品在线 | а天堂中文最新一区二区三区 | 三级黄色理论片 | 天天干亚洲 | 制服丝袜欧美 | 亚洲欧美日韩精品久久久 | 少妇搡bbbb搡bbb搡69 | 国产在线一卡 | 亚洲精品免费观看视频 | 国产精品久久久久9999吃药 | 在线色网站| 免费合欢视频成人app | 国产精品久久毛片 | 91在线视频免费播放 | av中文字幕网 | 久久综合偷偷噜噜噜色 | 91av官网 | 色狠狠综合天天综合综合 | 亚洲高清视频一区二区三区 | 黄色毛片观看 | 欧美一区二区免费在线观看 | 国产一二区在线观看 |