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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

DirectX11 With Windows SDK--15 几何着色器初探

發(fā)布時(shí)間:2023/12/14 windows 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectX11 With Windows SDK--15 几何着色器初探 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
DirectX11 With Windows SDK--15 幾何著色器初探 原文:DirectX11 With Windows SDK--15 幾何著色器初探

前言

從這一部分開(kāi)始,感覺(jué)就像是踏入了無(wú)人深空一樣,在之前初學(xué)DX11的時(shí)候,這部分內(nèi)容都是基本上跳過(guò)的,現(xiàn)在打算重新認(rèn)真地把它給拾回來(lái)。

DirectX11 With Windows SDK完整目錄

Github項(xiàng)目源碼

歡迎加入QQ群: 727623616 可以一起探討DX11,以及有什么問(wèn)題也可以在這里匯報(bào)。

幾何著色器

首先用一張圖來(lái)回顧一下渲染管線的各個(gè)階段,目前為止我們接觸的著色器有頂點(diǎn)著色器和像素著色器,而接觸到的渲染管線階段有:輸入裝配階段、頂點(diǎn)著色階段、光柵化階段、像素著色階段、輸出合并階段。

可以看到,幾何著色器是我們?cè)趯㈨旤c(diǎn)送入光柵化階段之前,可以操作頂點(diǎn)的最后一個(gè)階段。它同樣也允許我們編寫自己的著色器代碼。幾何著色器可以做如下事情:

  • 讓程序自動(dòng)決定如何在渲染管線中插入/移除幾何體;
  • 通過(guò)流輸出階段將頂點(diǎn)信息再次傳遞到頂點(diǎn)緩沖區(qū);
  • 改變圖元類型(如輸入點(diǎn)圖元,輸出三角形圖元);
  • 但它也有缺點(diǎn),幾何著色器輸出的頂點(diǎn)數(shù)據(jù)很可能是有較多重復(fù)的,從流輸出拿回到頂點(diǎn)緩沖區(qū)的話會(huì)占用較多的內(nèi)存空間。它本身無(wú)法輸出索引數(shù)組。

    幾何著色階段會(huì)收到一系列代表輸入幾何體類型的頂點(diǎn),然后我們可以自由選擇其中的這些頂點(diǎn)信息,然后交給流輸出對(duì)象重新解釋成新的圖元類型(或者不變),傳遞給流輸出階段或者是光柵化階段。而幾何著色器僅能夠接受來(lái)自輸入裝配階段提供的頂點(diǎn)信息,對(duì)每個(gè)頂點(diǎn)進(jìn)行處理,無(wú)法自行決定增減頂點(diǎn)。

    注意:離開(kāi)幾何著色器的頂點(diǎn)如果要傳遞給光柵化階段,需要包含有轉(zhuǎn)換到齊次裁剪坐標(biāo)系的坐標(biāo)信息(語(yǔ)義為SV_POSITION的float4向量)

    可編程的幾何著色器

    從一個(gè)看似沒(méi)什么用的幾何著色器代碼入手

    若我們直接從VS項(xiàng)目新建一個(gè)幾何著色器文件,則可以看到下面的代碼:

    struct GSOutput {float4 pos : SV_POSITION; };[maxvertexcount(3)] void main(triangle float4 input[3] : SV_POSITION, inout TriangleStream< GSOutput > output ) {for (uint i = 0; i < 3; i++){GSOutput element;element.pos = input[i];output.Append(element);} }

    ps. 可能有些人會(huì)對(duì)void main的寫法表示不爽,比如說(shuō)我。不過(guò)這不是C語(yǔ)言的主函數(shù)......

    若在輸入裝配階段指定使用TriangleList圖元的話,初步觀察該代碼,實(shí)際上你可以發(fā)現(xiàn)其實(shí)該著色器只是把輸入的頂點(diǎn)按原樣輸出給流輸出對(duì)象,即跟什么都沒(méi)做(咸魚(yú))有什么區(qū)別。。不過(guò)從這份代碼里面就已經(jīng)包含了幾何著色器所特有的絕大部分語(yǔ)法了。

    首先,幾何著色器是根據(jù)圖元類型來(lái)進(jìn)行調(diào)用的,若使用的是TriangleList,則每一個(gè)三角形的三個(gè)頂點(diǎn)都會(huì)作為輸入,觸發(fā)幾何著色器的調(diào)用。這樣一個(gè)TriangleList解釋的30個(gè)頂點(diǎn)會(huì)觸發(fā)10次調(diào)用。

    對(duì)于幾何著色器,我們必須要指定它每次調(diào)用所允許輸出的最大頂點(diǎn)數(shù)目。我們可以使用屬性語(yǔ)法來(lái)強(qiáng)行修改著色器行為:

    [maxvertexcount(N)]

    這里N就是每次調(diào)用允許產(chǎn)出的最大頂點(diǎn)數(shù)目,然后最終輸出的頂點(diǎn)數(shù)目不會(huì)超過(guò)N的值。maxvertexcount的值應(yīng)當(dāng)盡可能的小。

    關(guān)于性能上的表現(xiàn),我根據(jù)龍書(shū)提供的引用找到了對(duì)應(yīng)的說(shuō)明文檔:

    NVIDIA08

    雖然是10年前的文檔,這里說(shuō)到:在GeForce 8800 GTX,一個(gè)幾何著色器的調(diào)用在輸出1到20個(gè)標(biāo)量的時(shí)候可以達(dá)到最大運(yùn)行性能表現(xiàn),但是當(dāng)我們指定最大允許輸出標(biāo)量的數(shù)目在27到40個(gè)時(shí),性能僅達(dá)到峰值的50%。比如說(shuō),如果頂點(diǎn)的聲明如下:

    struct V0 {float3 pos : POSITION;float2 tex : TEXCOORD; };

    這里每個(gè)頂點(diǎn)就已經(jīng)包含了5個(gè)標(biāo)量了,如果以它作為輸出類型,則maxvertexcount為4的時(shí)候就可以達(dá)到理論上的峰值性能(20個(gè)標(biāo)量)。

    但如果頂點(diǎn)類型中還包含有float3類型的法向量,每個(gè)頂點(diǎn)就額外包含了3個(gè)標(biāo)量,這樣在maxvertexcount為4的時(shí)候就輸出了32個(gè)標(biāo)量,只有50%的峰值性能表現(xiàn)。

    這份文檔已經(jīng)將近10年了,對(duì)于那時(shí)候的顯卡來(lái)說(shuō)使用幾何著色器可能不是一個(gè)很好的選擇,不過(guò)當(dāng)初的顯卡也早已不能和現(xiàn)在的顯卡相提并論了。

    注意:

  • maxvertexcount的值應(yīng)當(dāng)設(shè)置到盡可能小的值,因?yàn)樗鼘⒅苯記Q定幾何著色器的運(yùn)行效率。
  • 幾何著色器的每次調(diào)用最多只能處理1024個(gè)標(biāo)量,對(duì)于只包含4D位置向量的頂點(diǎn)來(lái)說(shuō)也只能處理256個(gè)頂點(diǎn)。
  • 幾何著色器輸入的結(jié)構(gòu)體類型不允許超過(guò)128個(gè)標(biāo)量,對(duì)于只包含4D位置向量的頂點(diǎn)來(lái)說(shuō)也只能包含32個(gè)頂點(diǎn)。
  • 在HLSL編譯器里,如果設(shè)置的maxvertexcount過(guò)大,會(huì)直接收到編譯錯(cuò)誤:

    然后代碼中的triangle是用于指定輸入的圖元類型,具體支持的關(guān)鍵字如下:

    圖元類型描述
    pointPoint list
    lineLine list or line strip
    triangleTriangle list or triangle strip
    lineadjLine list with adjacency or line strip with adjacency
    triangleadjTriangle list with adjacency or triangle strip with adjacency

    具體的圖元類型可以到第2章回顧:點(diǎn)擊此處

    而參數(shù)類型可以是用戶自定義的結(jié)構(gòu)體類型,或者是向量(float4)類型。從頂點(diǎn)著色器傳過(guò)來(lái)的頂點(diǎn)至少會(huì)包含一個(gè)表示齊次裁剪坐標(biāo)的向量。

    參數(shù)名inupt實(shí)際上用戶是可以任意指定的。

    對(duì)于該輸入?yún)?shù)的元素?cái)?shù)目,取決于前面聲明的圖元類型:

    圖元類型元素?cái)?shù)目
    point[1] 每次只能處理1個(gè)頂點(diǎn)
    line[2] 一個(gè)線段必須包含2個(gè)頂點(diǎn)
    triangle[3] 一個(gè)三角形需要3個(gè)頂點(diǎn)
    lineadj[4] 一個(gè)鄰接線段需要4個(gè)頂點(diǎn)
    triangleadj[6] 一個(gè)鄰接三角形需要6個(gè)頂點(diǎn)

    而第二個(gè)參數(shù)必須是一個(gè)流輸出對(duì)象,而且需要被指定為inout可讀寫類型。可以看到,它是一個(gè)類模板,模板的形參指定要輸出的類型。流輸出對(duì)象有如下三種:

    流輸出對(duì)象類型描述
    PointStream一系列點(diǎn)的圖元
    LineStream一系列線段的圖元
    TriangleStream一系列三角形的圖元

    流輸出對(duì)象都具有下面兩種方法:

    方法描述
    Append向指定的流輸出對(duì)象添加一個(gè)輸出的數(shù)據(jù)
    RestartStrip在以線段或者三角形作為圖元的時(shí)候,默認(rèn)是以strip的形式輸出的,
    如果我們不希望下一個(gè)輸出的頂點(diǎn)與之前的頂點(diǎn)構(gòu)成新圖元,則需要調(diào)用此方法來(lái)重新開(kāi)始新的strip。若希望輸出的圖元類型也保持和原
    來(lái)一樣的TriangleList,則需要每調(diào)用3次Append方法后就調(diào)用一次RestartStrip。

    注意:

  • 所謂的刪除頂點(diǎn),實(shí)際上就是不將該頂點(diǎn)傳遞給流輸出對(duì)象
  • 若傳入的頂點(diǎn)中多余的部分無(wú)法構(gòu)成對(duì)應(yīng)的圖元,則拋棄掉這些多余的頂點(diǎn)
  • 在開(kāi)始前,先放出Basic.hlsli文件的內(nèi)容:

    #include "LightHelper.hlsli"cbuffer CBChangesEveryFrame : register(b0) {matrix g_World;matrix g_WorldInvTranspose; }cbuffer CBChangesOnResize : register(b1) {matrix g_Proj; }cbuffer CBChangesRarely : register(b2) {DirectionalLight g_DirLight[5];PointLight g_PointLight[5];SpotLight g_SpotLight[5];Material g_Material;matrix g_View;float3 g_EyePosW;float g_CylinderHeight; }struct VertexPosColor {float3 PosL : POSITION;float4 Color : COLOR; };struct VertexPosHColor {float4 PosH : SV_POSITION;float4 Color : COLOR; };

    實(shí)戰(zhàn)1: 將一個(gè)三角形分割成三個(gè)三角形

    現(xiàn)在我們的目標(biāo)是把一個(gè)三角形分裂成三個(gè)三角形:

    這也為以后實(shí)現(xiàn)分形做為基礎(chǔ)。建議讀者可以先自行嘗試編寫著色器代碼再來(lái)對(duì)比。在編寫好著色器代碼后,
    要給渲染管線綁定好一切所需的資源才能夠看到效果。

    HLSL代碼

    Triangle_VS.hlsl, Triangle_GS.hlsl和Triangle_PS.hlsl的實(shí)現(xiàn)如下:

    // Triangle_VS.hlsl #include "Basic.hlsli"VertexPosHColor VS(VertexPosColor vIn) {matrix worldViewProj = mul(mul(g_World, g_View), g_Proj);VertexPosHColor vOut;vOut.Color = vIn.Color;vOut.PosH = mul(float4(vIn.PosL, 1.0f), worldViewProj);return vOut; } // Triangle_GS.hlsl #include "Basic.hlsli"[maxvertexcount(9)] void GS(triangle VertexPosHColor input[3], inout TriangleStream<VertexPosHColor> output) {//// 將一個(gè)三角形分裂成三個(gè)三角形,即沒(méi)有v3v4v5的三角形// v1// /\// / \// v3/____\v4// /\xxxx/\// / \xx/ \// /____\/____\// v0 v5 v2VertexPosHColor vertexes[6];int i;[unroll]for (i = 0; i < 3; ++i){vertexes[i] = input[i];vertexes[i + 3].Color = (input[i].Color + input[(i + 1) % 3].Color) / 2.0f;vertexes[i + 3].PosH = (input[i].PosH + input[(i + 1) % 3].PosH) / 2.0f;}[unroll]for (i = 0; i < 3; ++i){output.Append(vertexes[i]);output.Append(vertexes[3 + i]);output.Append(vertexes[(i + 2) % 3 + 3]);output.RestartStrip();} } // Triangle_PS.hlsl #include "Basic.hlsli"float4 PS(VertexPosHColor pIn) : SV_Target {return pIn.Color; }

    這里輸入和輸出的圖元類型都是一致的,但無(wú)論什么情況都一定要注意設(shè)置好maxvertexcount的值,這里固定一個(gè)三角形的三個(gè)頂點(diǎn)輸出9個(gè)頂點(diǎn)(構(gòu)成三個(gè)三角形),并且每3次Append就需要調(diào)用1次RestartStrip。

    實(shí)戰(zhàn)2: 通過(guò)圓線構(gòu)造圓柱體側(cè)面

    已知圖元類型為L(zhǎng)ineStrip,現(xiàn)在有一系列連續(xù)的頂點(diǎn)構(gòu)成圓線(近似圓弧的連續(xù)折線),構(gòu)造出圓柱體的側(cè)面。即輸入圖元類型為線段,輸出一個(gè)矩形(兩個(gè)三角形)。

    思路: 光有頂點(diǎn)位置還不足以構(gòu)造出圓柱體側(cè)面,因?yàn)闊o(wú)法確定圓柱往哪個(gè)方向延伸。所以我們還需要對(duì)每個(gè)頂點(diǎn)引入所在圓柱側(cè)面的法向量,通過(guò)叉乘就可以確定上方向/下方向并進(jìn)行延伸了。

    HLSL代碼

    Cylinder_VS.hlsl, Cylinder_GS.hlsl和Cylinder_PS.hlsl的實(shí)現(xiàn)如下:

    // Cylinder_VS.hlsl #include "Basic.hlsli"VertexPosHWNormalColor VS(VertexPosNormalColor vIn) {VertexPosHWNormalColor vOut;matrix viewProj = mul(g_View, g_Proj);float4 posW = mul(float4(vIn.PosL, 1.0f), g_World);vOut.PosH = mul(posW, viewProj);vOut.PosW = posW.xyz;vOut.NormalW = mul(vIn.NormalL, (float3x3) g_WorldInvTranspose);vOut.Color = vIn.Color;return vOut; } // Cylinder_GS.hlsl #include "Basic.hlsli"// 一個(gè)v0v1線段輸出6個(gè)三角形頂點(diǎn) [maxvertexcount(6)] void GS(line VertexPosHWNormalColor input[2], inout TriangleStream<VertexPosHWNormalColor> output) {// *****************************// 要求圓線是順時(shí)針的,然后自底向上構(gòu)造圓柱側(cè)面 // --> v2____v3// ______ |\ |// / \ | \ |// \______/ | \ |// <-- |___\|// v1(i1) v0(i0)float3 upDir = normalize(cross(input[0].NormalW, (input[1].PosW - input[0].PosW)));VertexPosHWNormalColor v2, v3;matrix viewProj = mul(g_View, g_Proj);v2.PosW = input[1].PosW + upDir * g_CylinderHeight;v2.PosH = mul(float4(v2.PosW, 1.0f), viewProj);v2.NormalW = input[1].NormalW;v2.Color = input[1].Color;v3.PosW = input[0].PosW + upDir * g_CylinderHeight;v3.PosH = mul(float4(v3.PosW, 1.0f), viewProj);v3.NormalW = input[0].NormalW;v3.Color = input[0].Color;output.Append(input[0]);output.Append(input[1]);output.Append(v2);output.RestartStrip();output.Append(v2);output.Append(v3);output.Append(input[0]); } // Cylinder_PS.hlsl #include "Basic.hlsli"float4 PS(VertexPosHWNormalColor pIn) : SV_Target {// 標(biāo)準(zhǔn)化法向量pIn.NormalW = normalize(pIn.NormalW);// 頂點(diǎn)指向眼睛的向量float3 toEyeW = normalize(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);// 只計(jì)算方向光ComputeDirectionalLight(g_Material, g_DirLight[0], pIn.NormalW, toEyeW, ambient, diffuse, spec);return pIn.Color * (ambient + diffuse) + spec; }

    實(shí)戰(zhàn)3: 畫出頂點(diǎn)的法向量

    畫出頂點(diǎn)的法向量可以幫助你進(jìn)行調(diào)試,排查法向量是否出現(xiàn)了問(wèn)題。這時(shí)候圖元的類型為PointList,需要通過(guò)幾何著色器輸出一個(gè)線段(兩個(gè)頂點(diǎn))。由于頂點(diǎn)中包含法向量,剩下的就是要自行決定法向量的長(zhǎng)度。

    下圖的法向量長(zhǎng)度為0.5

    HLSL代碼

    Normal_VS.hlsl, Normal_GS.hlsl和Normal_PS.hlsl的實(shí)現(xiàn)如下:

    // Normal_VS.hlsl #include "Basic.hlsli"VertexPosHWNormalColor VS(VertexPosNormalColor vIn) {VertexPosHWNormalColor vOut;matrix viewProj = mul(g_View, g_Proj);float4 posW = mul(float4(vIn.PosL, 1.0f), g_World);vOut.PosH = mul(posW, viewProj);vOut.PosW = posW.xyz;vOut.NormalW = mul(vIn.NormalL, (float3x3) g_WorldInvTranspose);vOut.Color = vIn.Color;return vOut; } // Normal_GS.hlsl #include "Basic.hlsli"[maxvertexcount(2)] void GS(point VertexPosHWNormalColor input[1], inout LineStream<VertexPosHWNormalColor> output) {matrix viewProj = mul(g_View, g_Proj);VertexPosHWNormalColor v;// 防止資源爭(zhēng)奪v.PosW = input[0].PosW + input[0].NormalW * 0.01f;v.NormalW = input[0].NormalW;v.PosH = mul(float4(v.PosW, 1.0f), viewProj);v.Color = input[0].Color;output.Append(v);v.PosW = v.PosW + input[0].NormalW * 0.5f;v.PosH = mul(float4(v.PosW, 1.0f), viewProj);output.Append(v); } // Normal_PS.hlsl #include "Basic.hlsli"float4 PS(VertexPosHWNormalColor pIn) : SV_TARGET {return pIn.Color; }

    C++代碼的部分變化

    BasicEffect的變化

    變化如下:

    class BasicEffect : public IEffect { public:BasicEffect();virtual ~BasicEffect() override;BasicEffect(BasicEffect&& moveFrom) noexcept;BasicEffect& operator=(BasicEffect&& moveFrom) noexcept;// 獲取單例static BasicEffect& Get();// 初始化Basic.hlsli所需資源并初始化渲染狀態(tài)bool InitAll(ID3D11Device * device);//// 渲染模式的變更//// 繪制三角形分裂void SetRenderSplitedTriangle(ID3D11DeviceContext * deviceContext);// 繪制無(wú)上下蓋的圓柱體void SetRenderCylinderNoCap(ID3D11DeviceContext * deviceContext);// 繪制所有頂點(diǎn)的法向量void SetRenderNormal(ID3D11DeviceContext * deviceContext);//// 矩陣設(shè)置//void XM_CALLCONV SetWorldMatrix(DirectX::FXMMATRIX W);void XM_CALLCONV SetViewMatrix(DirectX::FXMMATRIX V);void XM_CALLCONV SetProjMatrix(DirectX::FXMMATRIX P);//// 光照、材質(zhì)和紋理相關(guān)設(shè)置//// 各種類型燈光允許的最大數(shù)目static const int maxLights = 5;void SetDirLight(size_t pos, const DirectionalLight& dirLight);void SetPointLight(size_t pos, const PointLight& pointLight);void SetSpotLight(size_t pos, const SpotLight& spotLight);void SetMaterial(const Material& material);void XM_CALLCONV SetEyePos(DirectX::FXMVECTOR eyePos);// 設(shè)置圓柱體側(cè)面高度void SetCylinderHeight(float height);// 應(yīng)用常量緩沖區(qū)和紋理資源的變更void Apply(ID3D11DeviceContext * deviceContext);private:class Impl;std::unique_ptr<Impl> pImpl; };

    BasicEffect::SetRenderSplitedTriangle方法--渲染分裂的三角形

    該方法處理的是圖元TriangleList。因?yàn)楹罄m(xù)的方法處理的圖元不同,在調(diào)用開(kāi)始就得設(shè)置回正確的圖元。也請(qǐng)確保輸入裝配階段提供好需要分裂的三角形頂點(diǎn)。

    void BasicEffect::SetRenderSplitedTriangle(ID3D11DeviceContext * deviceContext) {deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);deviceContext->IASetInputLayout(pImpl->m_pVertexPosColorLayout.Get());deviceContext->VSSetShader(pImpl->m_pTriangleVS.Get(), nullptr, 0);deviceContext->GSSetShader(pImpl->m_pTriangleGS.Get(), nullptr, 0);deviceContext->RSSetState(nullptr);deviceContext->PSSetShader(pImpl->m_pTrianglePS.Get(), nullptr, 0);}

    BasicEffect::SetRenderCylinderNoCap方法--渲染圓柱側(cè)面

    該方法處理的是圖元LineStrip,確保輸入的一系列頂點(diǎn)和法向量能夠在同一平面上。若提供的頂點(diǎn)集合按順時(shí)針排布,則會(huì)自底向上構(gòu)建出圓柱體,反之則是自頂向下構(gòu)建。

    這里需要關(guān)閉背面裁剪,因?yàn)槲覀円部梢钥吹綀A柱側(cè)面的內(nèi)部(沒(méi)有蓋子)。

    void BasicEffect::SetRenderCylinderNoCap(ID3D11DeviceContext * deviceContext) {deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP);deviceContext->IASetInputLayout(pImpl->m_pVertexPosNormalColorLayout.Get());deviceContext->VSSetShader(pImpl->m_pCylinderVS.Get(), nullptr, 0);deviceContext->GSSetShader(pImpl->m_pCylinderGS.Get(), nullptr, 0);deviceContext->RSSetState(RenderStates::RSNoCull.Get());deviceContext->PSSetShader(pImpl->m_pCylinderPS.Get(), nullptr, 0);}

    BasicEffect::SetRenderNormal方法--渲染法向量

    該方法處理的圖元是PointList,確保輸入的頂點(diǎn)要包含法向量。

    void BasicEffect::SetRenderNormal(ID3D11DeviceContext * deviceContext) {deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);deviceContext->IASetInputLayout(pImpl->m_pVertexPosNormalColorLayout.Get());deviceContext->VSSetShader(pImpl->m_pNormalVS.Get(), nullptr, 0);deviceContext->GSSetShader(pImpl->m_pNormalGS.Get(), nullptr, 0);deviceContext->RSSetState(nullptr);deviceContext->PSSetShader(pImpl->m_pNormalPS.Get(), nullptr, 0);}

    GameApp類的變化

    該項(xiàng)目包含上面三種實(shí)戰(zhàn)內(nèi)容,需要用戶去指定當(dāng)前播放的模式。

    首先聲明部分變化如下:

    class GameApp : public D3DApp { public:enum class Mode { SplitedTriangle, CylinderNoCap, CylinderNoCapWithNormal };public:GameApp(HINSTANCE hInstance);~GameApp();bool Init();void OnResize();void UpdateScene(float dt);void DrawScene();private:bool InitResource();void ResetTriangle();void ResetRoundWire();private:ComPtr<ID2D1SolidColorBrush> m_pColorBrush; // 單色筆刷ComPtr<IDWriteFont> m_pFont; // 字體ComPtr<IDWriteTextFormat> m_pTextFormat; // 文本格式ComPtr<ID3D11Buffer> m_pVertexBuffer; // 頂點(diǎn)集合int m_VertexCount; // 頂點(diǎn)數(shù)目Mode m_ShowMode; // 當(dāng)前顯示模式BasicEffect m_BasicEffect; // 對(duì)象渲染特效管理};

    GameApp::ResetTriangle方法--重設(shè)為三角形頂點(diǎn)

    void GameApp::ResetTriangle() {// ******************// 初始化三角形//// 設(shè)置三角形頂點(diǎn)VertexPosColor vertices[] ={{ XMFLOAT3(-1.0f * 3, -0.866f * 3, 0.0f), XMFLOAT4(1.0f, 0.0f, 0.0f, 1.0f) },{ XMFLOAT3(0.0f * 3, 0.866f * 3, 0.0f), XMFLOAT4(0.0f, 1.0f, 0.0f, 1.0f) },{ XMFLOAT3(1.0f * 3, -0.866f * 3, 0.0f), XMFLOAT4(0.0f, 0.0f, 1.0f, 1.0f) }};// 設(shè)置頂點(diǎn)緩沖區(qū)描述D3D11_BUFFER_DESC vbd;ZeroMemory(&vbd, sizeof(vbd));vbd.Usage = D3D11_USAGE_IMMUTABLE;vbd.ByteWidth = sizeof vertices;vbd.BindFlags = D3D11_BIND_VERTEX_BUFFER;vbd.CPUAccessFlags = 0;// 新建頂點(diǎn)緩沖區(qū)D3D11_SUBRESOURCE_DATA InitData;ZeroMemory(&InitData, sizeof(InitData));InitData.pSysMem = vertices;HR(m_pd3dDevice->CreateBuffer(&vbd, &InitData, m_pVertexBuffer.ReleaseAndGetAddressOf()));// 三角形頂點(diǎn)數(shù)m_VertexCount = 3; }

    GameApp::ResetRoundWire方法--重設(shè)為圓線頂點(diǎn)

    void GameApp::ResetRoundWire() {// ****************** // 初始化圓線// 設(shè)置圓邊上各頂點(diǎn)// 必須要按順時(shí)針設(shè)置// 由于要形成閉環(huán),起始點(diǎn)需要使用2次// ______// / \// \______///VertexPosNormalColor vertices[41];for (int i = 0; i < 40; ++i){vertices[i].pos = XMFLOAT3(cosf(XM_PI / 20 * i), -1.0f, -sinf(XM_PI / 20 * i));vertices[i].normal = XMFLOAT3(cosf(XM_PI / 20 * i), 0.0f, -sinf(XM_PI / 20 * i));vertices[i].color = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);}vertices[40] = vertices[0];// 設(shè)置頂點(diǎn)緩沖區(qū)描述D3D11_BUFFER_DESC vbd;ZeroMemory(&vbd, sizeof(vbd));vbd.Usage = D3D11_USAGE_IMMUTABLE;vbd.ByteWidth = sizeof vertices;vbd.BindFlags = D3D11_BIND_VERTEX_BUFFER;vbd.CPUAccessFlags = 0;// 新建頂點(diǎn)緩沖區(qū)D3D11_SUBRESOURCE_DATA InitData;ZeroMemory(&InitData, sizeof(InitData));InitData.pSysMem = vertices;HR(m_pd3dDevice->CreateBuffer(&vbd, &InitData, m_pVertexBuffer.ReleaseAndGetAddressOf()));// 線框頂點(diǎn)數(shù)m_VertexCount = 41; }

    GameApp類剩余部分可以在項(xiàng)目源碼中查看。

    最終效果如下:

    DirectX11 With Windows SDK完整目錄

    Github項(xiàng)目源碼

    歡迎加入QQ群: 727623616 可以一起探討DX11,以及有什么問(wèn)題也可以在這里匯報(bào)。

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

    轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/10811380.html

    總結(jié)

    以上是生活随笔為你收集整理的DirectX11 With Windows SDK--15 几何着色器初探的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    九九热视频在线 | 国产91免费看 | av免费播放 | 天天综合成人网 | 超碰人人在线 | 91成人网在线观看 | 91秒拍国产福利一区 | 日韩精品一区二区在线视频 | 天天射天天射天天射 | 国产成人精品一区二区三区网站观看 | 久久电影中文字幕视频 | 亚洲一级二级 | 久久一区二区免费视频 | 色综合天天 | 欧美日韩国产精品一区二区三区 | 国产精品一区二区免费视频 | 久久久国产一区二区 | 天天操天天干天天插 | 亚洲情感电影大片 | 四虎小视频 | 91在线视频导航 | 亚洲永久精品视频 | 日日爱av | 在线视频亚洲 | 三级黄色免费片 | 亚洲人成人在线 | 黄色一及电影 | 91探花国产综合在线精品 | 日本中文字幕网站 | 日韩不卡高清 | 在线视频 成人 | 中文字幕亚洲精品在线观看 | 亚洲综合视频在线播放 | 亚洲jizzjizz日本少妇 | 欧美激情亚洲综合 | 特级大胆西西4444www | 91麻豆精品国产91久久久久久 | 四虎成人精品永久免费av | 手机在线视频福利 | 亚州视频在线 | 99精品视频在线观看视频 | 91麻豆文化传媒在线观看 | 丰满少妇在线观看资源站 | 亚洲天堂网在线观看视频 | 日韩av一区二区三区在线观看 | 免费在线国产精品 | 国模吧一区 | 日本精品在线看 | 麻豆网站免费观看 | 日韩黄色一级电影 | 日韩成人xxxx | 制服丝袜成人在线 | 国产视频久 | 中文字幕综合在线 | 亚洲午夜av久久乱码 | 免费在线一区二区 | 欧美成人h版电影 | 三上悠亚一区二区在线观看 | 色99色| 九九亚洲精品 | 日韩 国产 | 五月婷婷爱 | 免费色av | 亚洲欧美国产精品18p | www日韩在线观看 | 欧美成人按摩 | 久热久草在线 | 青春草视频在线播放 | 狠狠狠色丁香婷婷综合久久88 | 日韩av三区 | 超碰免费久久 | 日日躁天天躁 | 精品国产伦一区二区三区观看说明 | 国产一二三四在线视频 | 亚洲天堂在线观看完整版 | 精品少妇一区二区三区在线 | 中文字幕久久精品一区 | 中文字幕综合在线 | 国产精品99久久99久久久二8 | 天天射综合网站 | 91免费观看网站 | 色婷婷亚洲精品 | 91在线精品一区二区 | 波多野结衣在线观看视频 | 成人99免费视频 | 日韩免费精品 | 日韩av电影免费在线观看 | 国产精品国产三级国产 | 亚洲一区日韩在线 | 国产成人av免费在线观看 | 亚洲精品乱码久久 | 久久亚洲欧美日韩精品专区 | 91在线超碰 | 一区二区理论片 | 免费网址在线播放 | 成人免费看片网址 | 三级a毛片 | 成人国产精品电影 | 在线导航av| 精品国产乱码久久久久久久 | 久久久久99精品国产片 | 麻豆精品91| 超碰个人在线 | 黄色国产高清 | 国产一性一爱一乱一交 | www.久久久.cum | 日韩欧美高清不卡 | 黄色免费在线视频 | 最新亚洲视频 | 中文字幕字幕中文 | 精品1区二区 | 91亚洲狠狠婷婷综合久久久 | 国产午夜精品视频 | 国产五月婷 | 久久视频在线观看免费 | 国产高清在线精品 | 免费看片网址 | 国产精品久久99综合免费观看尤物 | 亚洲视频免费在线观看 | 欧美激情精品久久久久 | 天天操夜夜干 | 亚洲成人黄色 | 精品亚洲在线 | 亚洲精品午夜一区人人爽 | 亚洲第一av在线 | 久久丁香网 | 最近最新最好看中文视频 | 蜜桃麻豆www久久囤产精品 | 日本中文字幕视频 | 欧美成人一区二区 | 久久精品久久久久 | 国产精品一区二区在线 | 国产五月天婷婷 | 超碰在线免费97 | 在线免费黄网站 | 久久这里精品视频 | 天天操天天射天天舔 | 久久亚洲热 | 日日夜夜操操操操 | 国产精品二区在线观看 | 综合激情网... | 一区二区三区免费 | 精品视频成人 | 国产日韩精品一区二区三区 | 久久久久美女 | 丝袜+亚洲+另类+欧美+变态 | 能在线看的av | 在线小视频 | 黄色福利视频网站 | 一级久久精品 | 日韩在线视频免费看 | 色婷婷国产 | 成人av电影免费观看 | 色综久久 | 日韩在线高清视频 | 国产成人精品国内自产拍免费看 | 91完整视频| 网站在线观看你们懂的 | 国产精品久久久久婷婷二区次 | 国产精品一区二区久久国产 | 成人中文字幕在线观看 | 午夜精品三区 | 午夜av激情| 色综合久久久久综合体 | 亚洲精品www久久久久久 | 国产免费久久精品 | 欧美一区在线观看视频 | www.国产在线观看 | 中文字幕国产在线 | 久草精品免费 | 久久精品视频免费播放 | 日本一区二区三区免费看 | 91精品国产99久久久久久久 | 二区三区中文字幕 | 美女一级毛片视频 | 久久久麻豆视频 | 久久国产精品一区二区 | 日韩在线观看 | 国产精品福利一区 | 偷拍视频一区 | 久久国产高清视频 | 91av短视频 | 国产 日韩 欧美 中文 在线播放 | 在线国产一区二区 | 亚洲欧洲中文日韩久久av乱码 | 日韩免费一级a毛片在线播放一级 | 中文在线字幕观看电影 | 综合国产在线 | 亚洲欧美日韩在线一区二区 | 中文字幕在线观看你懂的 | 久久久性 | 国产 欧美 日产久久 | 免费视频二区 | 久久99精品久久久久久 | 性色av香蕉一区二区 | 免费看成人片 | 综合影视 | 国产日韩欧美自拍 | 国产亚洲综合在线 | 九色琪琪久久综合网天天 | 综合天天网 | 久久高清免费视频 | 免费网站看av片 | 最新国产福利 | 日韩免费网址 | 中文字幕一区二区三区四区久久 | 国产亚洲亚洲 | 久久无码av一区二区三区电影网 | 激情视频免费在线观看 | 亚洲国产资源 | 午夜在线看 | 免费观看版 | 日韩精品免费一区二区在线观看 | 久久免费视频1 | 久久人人爽人人爽人人片av软件 | 97超碰超碰久久福利超碰 | 欧美一区免费在线观看 | 国产va在线观看免费 | 久久精品9| 黄色特一级 | 国产成人精品999 | 日韩精品在线观看av | 久久66热这里只有精品 | 91高清免费在线观看 | 91在线中字 | 久久午夜精品 | 黄色小说在线观看视频 | 天天玩天天干天天操 | 亚洲人精品午夜 | 日韩av影视 | 午夜精品久久久久久99热明星 | 欧美91在线 | 91在线国内视频 | 国产小视频免费在线观看 | 日韩欧美黄色网址 | 日韩av黄| 国产一级二级三级视频 | 免费高清在线一区 | 亚洲五月激情 | 97视频人人免费看 | 三级性生活视频 | 美女一二三区 | 日韩精品视频免费在线观看 | 亚洲在线色 | 黄色在线观看网站 | 夜夜干天天操 | 99精品视频免费观看视频 | 狠狠干网 | 天天看天天干 | 成人av中文字幕在线观看 | 久久精品久久精品久久精品 | 国内精品视频一区二区三区八戒 | 五月天亚洲婷婷 | 久久精品国产亚洲精品 | 就色干综合 | 五月婷婷.com | 不卡视频一区二区三区 | 久久久国产影视 | 婷婷中文字幕在线观看 | 国产视频资源 | 国产视频日韩 | 色99在线| 国内外成人在线视频 | 成年人电影免费看 | 国产手机免费视频 | 黄色软件网站在线观看 | 日韩精品一区二区三区在线视频 | 超碰在线最新 | 91最新网址 | 日本不卡123区 | 亚洲色影爱久久精品 | 国产精品一区二区中文字幕 | 午夜精品久久久久久久久久久久久久 | 亚洲区另类春色综合小说校园片 | 爱爱一区| 欧美日韩一区二区在线观看 | 国产美女网 | 美女精品久久久 | 在线视频观看91 | 久久99影院 | 国产午夜精品免费一区二区三区视频 | 成人动图 | 在线免费视频你懂的 | 在线观看国产永久免费视频 | 96久久久 | 免费看国产一级片 | 国产日产欧美在线观看 | 久久国产精品精品国产色婷婷 | 182午夜在线观看 | www色片 | 人人操日日干 | 久久久久国产一区二区 | 国产精品ssss在线亚洲 | 欧美三级高清 | 亚洲精品理论片 | 九九免费精品视频在线观看 | 在线色网站 | 97在线成人 | 成人午夜影视 | 亚洲永久精品视频 | 免费下载高清毛片 | 欧美男男激情videos | 99热只有精品在线观看 | 国内视频一区二区 | 国产视频中文字幕在线观看 | 亚洲女同ⅹxx女同tv | 日韩av五月天 | 夜色资源站国产www在线视频 | 日韩高清www | 香蕉在线视频播放网站 | 91视频免费网站 | 天天天天爱天天躁 | 色综合久久88色综合天天免费 | 五月宗合网 | 狠狠色丁香久久婷婷综合_中 | www.伊人色.com| 亚洲欧洲国产日韩精品 | 99精品国产成人一区二区 | av免费网站观看 | 91精品视频免费在线观看 | 九九九毛片 | 久久爱资源网 | 色综合久久综合 | av一本久道久久波多野结衣 | 久久国产精品色av免费看 | 在线蜜桃视频 | 日韩av电影中文字幕在线观看 | av在线亚洲天堂 | 国产精品av在线 | 一区二区男女 | 99热超碰在线 | 亚洲国产中文在线观看 | 久久久久久久久久久久久9999 | 美女视频一区二区 | www在线免费观看 | 99热在线观看免费 | 日韩国产欧美在线视频 | 国产香蕉视频在线观看 | 天天天天爽 | 国产精品剧情在线亚洲 | 91精品久久久久久综合乱菊 | 青青啪| 国产精品第十页 | 97超碰在线免费观看 | 欧美va在线观看 | 日韩中文免费视频 | 国产一级黄色片免费看 | 在线免费观看视频一区 | 日本性动态图 | 精品一区二三区 | 亚洲另类视频在线 | 国产欧美精品一区二区三区 | 天天se天天cao天天干 | а天堂中文最新一区二区三区 | 2018好看的中文在线观看 | 国产成人在线一区 | 一级免费看视频 | 国产精品观看视频 | 99久久99久久精品免费 | 中文字幕国产在线 | 国产一级片毛片 | 97成人在线观看 | 精品亚洲一区二区 | 久香蕉| 久久福利| 国产精品久久久久久久久久免费 | 亚洲女在线 | 欧美精品成人在线 | 欧美人交a欧美精品 | 国产美女主播精品一区二区三区 | 少妇精品久久久一区二区免费 | 国产在线1区 | 国产亚洲aⅴaaaaaa毛片 | 中文字幕乱码亚洲精品一区 | 成人欧美一区二区三区黑人麻豆 | 久久999精品 | 国产亚洲综合性久久久影院 | 亚洲国产精品成人女人久久 | 精品久久网 | 超碰在线天天 | 超碰个人在线 | 亚洲第一区在线播放 | 狠狠狠干狠狠 | 国产精品激情 | 精品久久久久久久久久久久 | 99精品国自产在线 | 在线观看成人小视频 | 黄色软件在线观看免费 | a天堂中文在线 | 国产主播大尺度精品福利免费 | 日韩欧美黄色网址 | 欧美99精品 | 日日夜夜精品免费观看 | 麻花豆传媒mv在线观看 | 久久91久久久久麻豆精品 | 成人毛片一区 | 精品在线观看一区二区 | 狠狠色婷婷丁香六月 | 中文字幕高清免费日韩视频在线 | 97超碰中文 | 中文字幕在线观看完整版电影 | 国产精品久久久久久久午夜片 | 天天色综合1 | 五月天色综合 | 狠狠干综合 | 成在人线av | 在线草 | 人人看黄色 | 欧美另类性| 色国产在线 | 久久久高清免费视频 | 久久国产精品免费观看 | 亚洲欧美精品一区 | 日韩视频免费播放 | 波多野结衣一区二区 | 国内99视频 | 亚洲精品白浆高清久久久久久 | 综合色天天 | 日韩视频一区二区三区在线播放免费观看 | 超碰在线1 | 亚洲 av网站 | 玖玖视频网 | 91久久国产露脸精品国产闺蜜 | 激情丁香月 | 婷婷www | 在线只有精品 | 久久国产女人 | 免费视频国产 | 日韩免费中文 | 黄色资源网站 | 日韩一区二区久久 | 国产一级片不卡 | 久久九九国产精品 | 亚洲精选在线观看 | 国产精品久久久久久久久久 | 西西444www | 视频成人永久免费视频 | 色婷婷成人网 | 伊人久久一区 | 亚洲精品免费在线 | 欧美日韩在线观看一区二区 | 免费看三级网站 | 中文有码在线 | 天天干天天干天天干 | 日本成人免费在线观看 | 国产精品久久久亚洲 | 国产a网站 | 精品国产一区二区三区av性色 | 国产精品久久久久久久7电影 | 久操免费视频 | 亚洲在线视频播放 | 中文不卡视频 | 亚洲激情一区二区三区 | 久久99精品久久久久久清纯直播 | 激情久久综合 | 色偷偷av男人天堂 | 亚洲在线观看av | 国产午夜av | 亚洲 av网站 | 成 人 黄 色 视频免费播放 | 欧美性免费 | 亚洲精品在线观看中文字幕 | 久久夜色网 | 国产精品破处视频 | 99精品网站 | 日日日爽爽爽 | 久久精品成人热国产成 | 91香蕉视频黄 | 国产免费久久精品 | 99爱视频在线观看 | 欧美不卡视频在线 | 国产综合福利在线 | 久久影视精品 | 欧美日韩三级在线观看 | 久久国产a| 亚洲精品乱码久久久久久按摩 | 亚洲国内精品在线 | 人人射人人爽 | 精品日韩在线一区 | 首页国产精品 | 欧美性生活免费看 | av在线官网 | 色狠狠操 | 久草久视频 | 女人18毛片a级毛片一区二区 | www.狠狠| 久久久久久久久久久电影 | 韩日精品在线观看 | 成人久久久久久久久久 | 97超碰在线人人 | 中文字幕在线观看视频一区 | 久久精品国产美女 | 国产精品亚洲综合久久 | 欧美日韩精品在线免费观看 | 免费视频久久久 | 免费观看xxxx9999片 | 天天操伊人 | 国产色女| 国产一区二区三区免费在线观看 | 91免费视频网站在线观看 | 在线成人短视频 | 在线观看国产永久免费视频 | a黄在线观看| 午夜成人免费影院 | 久久精品99国产精品亚洲最刺激 | 久久超碰97 | 国语黄色片 | 中文字幕刺激在线 | 国产一性一爱一乱一交 | 国产精品一区二区三区四区在线观看 | 91视频91色| 久久国产精品免费观看 | 日韩电影一区二区在线观看 | 国产一线二线三线性视频 | 日韩 国产 | 九九九免费视频 | 国产中的精品av小宝探花 | 亚洲va欧美va人人爽春色影视 | 波多野结衣在线观看一区二区三区 | 久久精品久久精品久久精品 | 天堂在线v| 男女免费视频观看 | 天天色天天操综合网 | 99精品视频在线看 | 欧美日韩综合在线观看 | 在线观看亚洲专区 | 国产精品九九久久久久久久 | av中文天堂在线 | 六月丁香在线观看 | 国产精品亚洲人在线观看 | 国产精品一区二区三区免费看 | 久久精品久久精品 | 国产精品女同一区二区三区久久夜 | 亚洲一级电影在线观看 | a天堂免费| 五月天婷婷狠狠 | 久久综合久久综合久久 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 有码视频在线观看 | 亚洲精品在线视频 | 国产无遮挡又黄又爽在线观看 | 一区二区三区在线观看 | 日韩欧美在线视频一区二区 | 国产黄色免费在线观看 | av3级在线| 在线你懂的视频 | 婷婷在线综合 | 在线视频第一页 | 久久亚洲福利视频 | 最近更新中文字幕 | 亚洲精品久久久久999中文字幕 | 国产精品久久久久久超碰 | 91九色蝌蚪国产 | 日韩欧美精品一区二区三区经典 | 色九九视频 | 97人人爽人人 | 五月婷婷中文 | 亚洲三级黄色 | 日韩三区在线 | 国产精品久久久久久久久久三级 | 激情综合五月婷婷 | 国产视频91在线 | 日本精品久久久久影院 | 亚洲理论电影 | 青青草国产成人99久久 | 欧美精品中文字幕亚洲专区 | 天天操天天曰 | 一区二区三区免费在线观看视频 | 国产97在线看| 日韩一级片大全 | 久久精品成人欧美大片古装 | 狠狠狠色丁香婷婷综合久久88 | 四虎永久国产精品 | 91精选| 国产亚洲成人精品 | 色综合久久88色综合天天 | 成人动漫视频在线 | 日韩精品久久久免费观看夜色 | 99电影 | 欧美色插| 丁香伊人网 | 在线观看mv的中文字幕网站 | 国产成人av | 久久精品这里精品 | 亚洲国产成人在线播放 | 天天曰视频 | 99久久精品久久久久久动态片 | 免费在线色视频 | 久久综合免费视频 | 97香蕉视频 | 视频一区二区免费 | 久久精品99久久 | 五月天中文字幕 | 久久国内免费视频 | 亚洲精品在线免费观看视频 | 成人久久18免费网站 | 一本色道久久综合亚洲二区三区 | 天天操夜夜爱 | 婷婷激情5月天 | 中文字幕一区三区 | 亚洲一区二区视频在线播放 | 欧美日韩中字 | 中文字幕久久网 | 国产美腿白丝袜足在线av | 99精品国产一区二区三区不卡 | 少妇视频在线播放 | 亚洲成人资源网 | 成年人免费看片 | 天天插狠狠干 | 97超视频在线观看 | 欧美91片 | 韩国一区视频 | 国产专区视频在线 | 日韩av在线资源 | 欧美一区二区三区在线观看 | 在线播放亚洲激情 | 日韩高清三区 | 国产精品一区二区精品视频免费看 | 国产偷国产偷亚洲清高 | 久草资源免费 | 亚洲精品视频在线观看视频 | 亚洲精品在线播放视频 | 亚洲精品在线免费播放 | 99tvdz@gmail.com| av免费网站观看 | www.黄色 | 日韩在线视频观看免费 | 国产精品 日韩 | 国模视频一区二区三区 | 中文字幕传媒 | 黄色视屏免费在线观看 | 国产成人av综合色 | 看国产黄色片 | 国产高清在线免费 | 福利一区二区在线 | 免费福利视频网 | 午夜色性片| 最新成人在线 | 日本精品在线视频 | 涩涩资源网 | 国产一区不卡在线 | 日韩av电影手机在线观看 | 日韩一区视频在线 | 97超碰中文| 日韩久久精品一区二区 | 亚洲精品视频二区 | 久久久国产99久久国产一 | 免费高清在线视频一区· | 久久精品视频2 | 在线视频 区 | 国产女人18毛片水真多18精品 | 欧美日韩精品在线 | 亚洲va综合va国产va中文 | 久久草草热国产精品直播 | 亚洲精品在线观看免费 | 午夜视频在线观看一区二区三区 | 91亚洲精品国偷拍 | 国产尤物在线观看 | 99在线观看免费视频精品观看 | 久久天堂网站 | 久久精品一区二区三区中文字幕 | 九九国产精品视频 | 激情综合国产 | 国产精品永久免费在线 | 久久夜色电影 | 久草影视在线 | 在线免费高清一区二区三区 | 天天草天天干天天 | 国产成人av在线影院 | 91九色porny在线| 国产成人一区二区在线观看 | 久久久久亚洲精品男人的天堂 | 欧美激情视频一区二区三区 | 成人aaa毛片 | 国产美女精品视频 | 日日操夜夜操狠狠操 | 日韩在线 | 久久人人爽人人爽人人 | 摸阴视频 | 国产精品视频不卡 | 狠狠的操狠狠的干 | 国产精品黄色影片导航在线观看 | 亚洲精品啊啊啊 | 成人av手机在线 | 免费看片日韩 | 最近在线中文字幕 | 992tv人人网tv亚洲精品 | 日韩电影久久 | 成人免费视频视频在线观看 免费 | 国产亚洲永久域名 | 亚洲国产精品视频在线观看 | 久久国产片 | 午夜久久久久久久 | 精品一二三四五区 | 亚洲激精日韩激精欧美精品 | av片子在线观看 | 天天操天天操天天 | 欧美性生爱 | 丁香五婷 | 夜夜操天天干 | 精品国产乱码一区二区三区在线 | 中文字幕视频播放 | 好看av在线 | 在线国产激情视频 | 激情婷婷在线观看 | 国产精品亚洲片在线播放 | 亚洲国产精品第一区二区 | 99精品在线视频观看 | av一级片网站 | 亚州av一区 | 精品视频免费久久久看 | www.狠狠操.com| 韩国av一区| 久操操 | 亚洲精品国产高清 | 中文字幕在线国产精品 | 91视频免费播放 | 欧洲精品码一区二区三区免费看 | 精品在线播放视频 | 日本中文字幕在线播放 | 九九九九九国产 | 久久精品这里都是精品 | 91在线免费观看网站 | 综合久久久久久 | 欧美a√大片 | 国产精品免费久久 | 国产v欧美 | 九九免费精品视频在线观看 | 九九九免费视频 | 亚洲午夜精品一区 | 中文字幕视频三区 | 国产99精品 | 天天操天天操天天爽 | 欧美日本不卡视频 | 免费三级a | 四虎5151久久欧美毛片 | 亚洲一区二区三区四区在线视频 | 激情综合五月天 | 天天碰天天操视频 | 国产传媒中文字幕 | 精品久久久久久久久久久久 | 久草观看 | 亚洲国产欧美在线看片xxoo | 久久免费播放视频 | 色91在线 | 亚洲精品久久久久久久蜜桃 | 麻豆av一区二区三区在线观看 | 四虎国产精品永久在线国在线 | 99久久这里有精品 | 午夜电影一区 | 国产女做a爱免费视频 | 国产在线观看你懂得 | 日韩欧美区 | 欧美经典久久 | 成人在线免费视频 | 福利视频第一页 | 91麻豆精品国产91久久久久久久久 | 久久久久久久久久久久久影院 | 麻豆久久久久久久 | 在线激情电影 | 在线 成人 | 日韩一区在线免费观看 | 精品一二 | 91禁在线观看 | 国产精品久久久久久久久久久免费 | 久久色中文字幕 | 亚洲免费成人av电影 | 久久久精品视频成人 | 久久久久女教师免费一区 | 天天综合操 | 黄色av电影一级片 | 日本精品视频一区 | 永久免费观看视频 | 国产精品亚洲a | 国产精久久久久久妇女av | 在线看黄网站 | 久久久免费毛片 | 色婷婷骚婷婷 | 高清久久久| 日韩av中文在线观看 | 操操碰| 国际精品久久久久 | 亚洲韩国一区二区三区 | 欧美在线a视频 | 久久人人爽人人爽人人片av免费 | 亚洲最新av在线网站 | 欧美日韩免费观看一区=区三区 | 精品国产一区二区三区蜜臀 | 亚洲影视资源 | 激情在线网站 | 午夜黄色 | 成人动态视频 | av直接看 | 在线播放日韩 | 91成人在线免费观看 | www.av免费| www色av | 色吊丝在线永久观看最新版本 | 99免在线观看免费视频高清 | 夜夜操狠狠操 | 亚洲年轻女教师毛茸茸 | 丝袜美腿av | 欧美日韩有码 | 国产视频欧美视频 | 国产精品青草综合久久久久99 | 欧美三级高清 | 深夜免费小视频 | 亚洲欧美日韩精品一区二区 | 丁香婷婷激情国产高清秒播 | 免费无遮挡动漫网站 | 欧美一级久久久久 | 国产亚洲资源 | 色偷偷男人的天堂av | 中文字幕一区二区三区久久蜜桃 | 热久久视久久精品18亚洲精品 | 免费看的视频 | 丁香影院在线 | 免费黄色看片 | 天天综合天天做 | 毛片网站在线看 | 久久夜色电影 | 在线国产一区 | 久久国产高清视频 | 国产高清免费在线观看 | 亚洲电影网站 | 一区二区视 | 久久国产精品久久精品国产演员表 | 久久综合九色综合久久久精品综合 | 可以免费观看的av片 | 美女搞黄国产视频网站 | 日韩精品久久久久久久电影竹菊 | 我要色综合天天 | 亚洲精品视频二区 | 国产成人精品999 | 日韩精品免费一区二区三区 | www.久久视频| 美女福利视频在线 | 中文亚洲欧美日韩 | 成人免费观看完整版电影 | 中文字幕欧美日韩va免费视频 | 亚洲九九九在线观看 | 99精品视频免费在线观看 | 欧美精品资源 | 久久黄色小说视频 | 中文字幕av日韩 | 日韩小视频网站 | 一色屋精品视频在线观看 | 日韩免费不卡av | 欧美日韩中文字幕在线视频 | 日韩一级片网址 | 国内外成人在线 | 日韩a在线看 | 在线免费观看欧美日韩 | 在线视频黄 | 九九av| 2024av在线播放 | 少妇bbw撒尿 | 日韩精品中文字幕在线播放 | 精品成人久久 | 蜜臀av麻豆 | 久久色视频| 亚洲精品动漫久久久久 | 国产五月色婷婷六月丁香视频 | 五月婷婷在线综合 | 久久99久国产精品黄毛片入口 | 欧美一级视频免费看 | 91视频a| 国产精品免费观看在线 | 久草视频在线免费播放 | 日产av在线播放 | 色狠狠一区二区 | 久久手机免费视频 | 综合网伊人 | 亚洲国产中文字幕在线观看 | 国产在线p| 国产成人精品亚洲a | 国产精品6 | 波多野结衣一区二区 | 中文在线a∨在线 | 激情小说 五月 | 色吧久久 | 中文字幕日韩一区二区三区不卡 | 色人久久 | 精品国产乱码一区二 | 国产精品一区欧美 | 亚州成人av在线 | 超碰在线最新网址 | 不卡精品视频 | 九九激情视频 | 中文字幕一区二区三区久久 | 999国产在线| 日韩精品一区二区免费 | 免费亚洲婷婷 | 黄色官网在线观看 | 国产午夜一区 | 天天操天天射天天插 | 国产色道 | 日韩免费高清在线 | 国产精品毛片久久久久久久久久99999999 | 久久成人午夜视频 | 99视频精品免费观看, | 狠狠色丁香婷婷综合最新地址 | 成人av在线网址 | 久久夜夜夜 | 27xxoo无遮挡动态视频 | 黄色www在线观看 | 欧美久久久久久久久久久久久 | 午夜精品福利影院 | 麻豆视频观看 | 91少妇精拍在线播放 | a级国产乱理论片在线观看 特级毛片在线观看 | 成人av在线影视 | av在线免费在线观看 | 欧美日韩国产精品一区 | 免费h精品视频在线播放 | 亚洲无在线 | 在线观看黄污 | 亚洲精品久久激情国产片 | 香蕉视频网址 | 久色网 | 亚洲一区二区三区四区精品 | 色综合天天做天天爱 | av在线播放一区二区三区 | 在线播放一区 | 国产免费观看久久 | 免费在线视频一区二区 | 久草网视频 | 免费h漫在线观看 | 免费看黄色毛片 | 免费黄色a级毛片 | 人人插人人玩 | 亚洲精品小视频 | 久久久久成人精品免费播放动漫 | 亚洲免费在线视频 | 免费a现在观看 | 午夜视频在线观看一区二区三区 | 久久久精品午夜 | 亚洲国产精品第一区二区 | 日本大片免费观看在线 | 亚洲一区二区三区精品在线观看 | 国产视频综合在线 | 99久久精品国产亚洲 | 激情小说久久 | 久久资源在线 | 国产欧美中文字幕 | 免费观看全黄做爰大片国产 | 免费在线视频一区二区 | 国产精品福利久久久 | a天堂中文在线 | 久久黄网站 | 欧美日韩一区二区三区在线免费观看 | 精品一二三区视频 | 超碰国产在线 | 人人爽影院 | 中文字幕亚洲在线观看 | 人人澡人人草 | 免费在线观看中文字幕 | 欧美韩日精品 | av888av.com| 999久久国产精品免费观看网站 | 国产美女免费观看 | 2022国产精品视频 | 国产成人三级 | 九九热久久免费视频 | 91成人精品一区在线播放69 | 麻豆视频观看 | 国产艹b视频 | 天天舔天天射天天操 | 久久永久免费视频 | 欧美在线视频精品 | 国产精品综合在线 | 首页国产精品 | 麻豆激情电影 | 黄色网址中文字幕 | 欧美日韩在线视频观看 | 日韩欧在线 | 欧美亚洲免费在线一区 | 91成人网页版 | 亚洲精品视频观看 | 成人在线视频免费看 | 久久久久久亚洲精品 | 精品亚洲成a人在线观看 | 亚洲一区天堂 | 亚洲 欧洲av| 又黄又刺激的视频 | 日本中文字幕在线播放 | 中文字幕在线观看完整版电影 | 色99久久 | 精品999在线 | 黄a网| 欧美一级免费高清 | av看片在线观看 | 91久久电影| 黄色的网站免费看 | 久热爱 | 西西444www高清大胆 | 成片免费观看视频大全 | 日韩欧美一区二区三区黑寡妇 |