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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形

發布時間:2025/3/8 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:WPF,Silverlight與XAML讀書筆記第三十九 - 可視化效果之3D圖形

說明:本系列基本上是《WPF揭秘》的讀書筆記。在結構安排與文章內容上參照《WPF揭秘》的編排,對內容進行了總結并加入一些個人理解。

?

WPF將易用性的理念帶入了3D世界,WPF中3D也工作在一種保留模式下,這意味著系統會負責刷新與重繪。WPF中2D圖形與3D圖形系統有著很緊密的融合,首先在繪圖系統基礎及2D圖形篇所介紹的概念對3D圖形是適用的。2D媒體,如Video,Drawing和Visual,可以顯示在3D模型表面。而Viewport3D中的場景也可以融合到程序中其它UI元素,也可以放入ItemsControl中。

?

3D圖形入門

3D圖形系統的目的是使3D模型作為2D圖形輸出到屏幕等設備上。對3D系統的第一印象,來看這段XAML,其中定義了一個3D的小房子:

1 <Page Background="Black" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 4 <Viewport3D> 5 <Viewport3D.Camera> 6 <OrthographicCamera Position="5,5,5" LookDirection="-1,-1,-1" Width="5"/> 7 </Viewport3D.Camera> 8 <Viewport3D.Children> 9 <ModelVisual3D x:Name="Light"> 10 <ModelVisual3D.Content> 11 <AmbientLight/> 12 </ModelVisual3D.Content> 13 </ModelVisual3D> 14 <ModelVisual3D> 15 <ModelVisual3D.Content> 16 <Model3DGroup x:Name="House"> 17 <GeometryModel3D x:Name="Roof"> 18 <GeometryModel3D.Material> 19 <DiffuseMaterial Brush="Blue"/> 20 </GeometryModel3D.Material> 21 <GeometryModel3D.Geometry> 22 <MeshGeometry3D Positions="-1,1,1 0,2,1 0,2,-1 -1,1,-1 0,2,1 1,1,1 23 1,1,-1 0,2,-1" 24 TriangleIndices="0 1 2 0 2 3 4 5 6 4 6 7"/> 25 </GeometryModel3D.Geometry> 26 </GeometryModel3D> 27 <GeometryModel3D x:Name="Sides"> 28 <GeometryModel3D.Material> 29 <DiffuseMaterial Brush="Green"/> 30 </GeometryModel3D.Material> 31 <GeometryModel3D.Geometry> 32 <MeshGeometry3D Positions="-1,1,1 -1,1,-1 -1,-1,-1 -1,-1,1 1,1,-1 33 1,1,1 1,-1,1 1,-1,-1" 34 TriangleIndices="0 1 2 0 2 3 4 5 6 4 6 7"/> 35 </GeometryModel3D.Geometry> 36 </GeometryModel3D> 37 <GeometryModel3D x:Name="Ends"> 38 <GeometryModel3D.Material> 39 <DiffuseMaterial Brush="Red"/> 40 </GeometryModel3D.Material> 41 <GeometryModel3D.Geometry> 42 <MeshGeometry3D 43 Positions="-0.25,0,1 -1,1,1 -1,-1,1 -0.25,-1,1 -0.25,0,1 44 -1,-1,1 0.25,0,1 1,-1,1 1,1,1 0.25,0,1 0.25,-1,1 1,-1,1 45 1,1,1 0,2,1 -1,1,1 -1,1,1 -0.25,0,1 0.25,0,1 1,1,1 1,1,-1 46 1,-1,-1 -1,-1,-1 -1,1,-1 1,1,-1 -1,1,-1 0,2,-1" 47 TriangleIndices="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 15 48 17 18 19 20 21 19 21 22 23 24 25"/> 49 </GeometryModel3D.Geometry> 50 </GeometryModel3D> 51 </Model3DGroup> 52 </ModelVisual3D.Content> 53 </ModelVisual3D> 54 </Viewport3D.Children> 55 </Viewport3D> 56 </Page>

隨著下文介紹的深入我們將了解其中這些元素的作用。

?

我們通過與2D圖形系統中的類對比來對3D圖形系統有個大致的認識。

2D類型

3D類型

描述

Drawing

Model3D

Drawing表示一片2D內容,如Geometry可以由一個Visual對象渲染

Model3D表示一個3D模型,可以由一個Visual3D渲染

Geometry

Geometry3D

Geometry表示一個2D形狀Geometry,能夠回答像邊界和交叉點這樣的問題。Geometry自身不能被渲染。GeometryDrawing結合了一個Geometry和一個Brush來呈現它的外觀

Geometry3D表示3D表面。為了渲染Geometry3D,其使用GeometryModel3D將它和一個Material結合起來

Visual

Visual3D

Visual是渲染2D內容的元素的基類。其中包括所有的DrawingVisual和所有的FrameworkElement,后者如Control和Shape

Visual3D是渲染3D內容的元素的基類,ModelVisual3D是其一個子類,用于渲染Model3D的3D內容

Transform

Transform3D

Transform(的子類)用于進行2D Drawing和Visual的變換,如平移,旋轉和拉伸

類似于Transform,在3D世界中,Transform3D用于對Model3D和Visual3D執行變換操作

除了表格中列出的擴展自2D圖形的類, 3D世界中還有如下兩個獨有的概念。

  • Camera:場景中放置的虛擬相機,在特定位置,以特定的角度產生3D模型的圖形。
  • Material與Light:在Brush填充過的表面上,進一步添加光照效果。

?

坐標系統

WPF中,2D,3D分別使用如下坐標系統

3D使用的坐標系統除了比2D坐標系統多z軸外,y軸的正方向是向上而非向下。另外2D圖形系統中很少用負數坐標,但3D中負數坐標很普遍。所以2D圖形中一般把左上角作為圖像的中心,而3D中把原點作為空間的中心。

提示:WPF中使用右手坐標系統

左手坐標系統與右手坐標系統的不同在于z軸與x軸,y軸關系的區別,下面的圖很好的說明了這個問題:

你只需要這樣記:右手法則中,z軸是靠近我們,而左手法則中z軸是遠離我們的,基本上就不會弄錯了。

?

Camera

????在3D應用設計中,最常打交道的兩個Camera分別是OrthographicCamera和PerspectiveCamera,通過這兩個類提供的屬性可以設置Camera在3D坐標系中的位置和方向,下文將詳細說明其中的屬性及其控制效果。

  • Position屬性

????該屬性控制Camera在空間中的位置。改變此屬性即可移動Camera,從而建立場景的不同視圖。該屬性為Point3D類型,其中包括了x,y,z坐標來定義此點在坐標系中的位置。如下XAML(前文示例的一部分),我們在OrthographicCamera中設置了Position屬性:

1 <Viewport3D> 2 <Viewport3D.Camera> 3 <OrthographicCamera Position="5,5,5" LookDirection="-1,-1,-1" Width="5"/> 4 </Viewport3D.Camera> 5 </Viewport3D>

我們指定的屬性值"5,5,5"表示我們將Camera放置在x,y,z軸正方向上各5個像素的一點,如圖:

上面XAML中用到了我們接下來要介紹的一個屬性。

  • LookDirection屬性

????該屬性定義了Camera的朝向。其是Vector3D類型,該類型也包含x,y,z三個屬性,但它們的作用是定義方向與幅度(Length)。以上文XAML中該屬性設置的值"-1,-1,-1"來說,假設我們以上北下南前后來描述右手規則的坐標系,"-1,-1,-1"定義的方向為西北后方(見下圖)。

而幅度通過這個公式得到。

提示:

一般情況下,對于Vector3D,系統只會確定其方向而不會立即計算出Length。Length主要用在如我們將Vector3D與Point3D進行相加(這樣會得到一個新的Point3D對象)等計算,這時系統會自動計算Length值。

?

????注意,Point3D與LookDirection的設置一定要搭配,如還是前面的例子,我們把Position改成(-5,-5,-5),而不改變LookDirection的話,目標就會在鏡頭中消失。得到LookDirection一個簡單的方法是,在坐標系中找到一個想要看到的點,用其x,y,z依次與Position的x,y,z值相減得到的結果就可作為LookDirection的x,y,z值。

????可以使用如下的代碼進行計算,以用于Camara移動的場景下LookDirection的變化。

1 camera.LookDirection = lookAtPoint - camera.Position;

?

  • UpDirection屬性

????通過LookDirection確定相機的朝向后,我們還需要通過UpDirection屬性確定鏡頭不會繞中心點旋轉,就像一個真實的相機,我們要固定其是橫放還是豎放。UpDirection屬性默認值是<0,1,0>(對于真實相機,這是最常見的橫放的方法),而如<1,0,0>就是將相機"豎起來"。

????如果是在場景中放置靜態Camera,最好的方法就是直接設置上面介紹的這三個屬性 – Position, UpDirection和LookDirection。而如果需要移動和旋轉相機應該使用Camera的Transform屬性。使用這個屬性可以很容易的使Camera與目標對象保持一致變化,如使相機跟隨目標對象移動,只需將Camera的Transform設置的與目標對象的Transform一致即可。

注意:要及時變換UpDirection

正如改變Position時,需要及時調整LookDirection來使目標一直出現在鏡頭中,在LookDirection發生某些改變時,UpDirection也要隨之進行改變。例如,鏡頭從目標的一面移動到另一面,LookDirection也進行了相應改變,從望向一面轉到另一面。這時UpDirection務必跟隨LookDirection更新。否則當在一面時,Camera拍出來的照是正的,到了另一面Camera中目標會倒過來。

?

  • NearPlaneDistance屬性與FarPlaneDistance屬性

????這兩個屬性用于避免這樣的問題,即當Camera離目標對象過近或過遠時會出現渲染問題(這是一種深度沖突問題)。NearPlaneDistance默認值為0.125(這個值一般不需要自行調整)。與Camera距離小于NearPlaneDistance定義的值目標對象的部分都會被裁減掉。而由于極遠物體深度沖突不常發生,所以FarPlaneDistance默認值被設置為無限遠。

?

平行投影與透視投影

????回到兩種Camera – OrthographicCamera與PerspectiveCamera,PerspectiveCamera呈現的圖像接近人眼觀看現實世界的效果,即離Camera越遠的對象看起來越小,而OrthographicCamera中的目標對象無論距Camera遠或近都會以實際大小呈現,可以用于精確測量分析。

????由空間中的3D模型到Camera呈現出的2D畫面,完成了一個投影的過程。OrthographicCamera與PerspectiveCamera分別使用了平行投影透視投影

????在平行投影模式下投影到的平面與可視空間的大小是一致的(一個一對一映射的過程)。通過OrthographicCamera的Width屬性可以指定可視區域的大小,而高度由Viewport3D自動計算以保證寬高比。下面的代碼展示了Width的設置:

1 <Viewport3D> 2 <Viewport3D.Camera> 3 <OrthographicCamera Position="5,5,5" LookDirection="-1,-1,-1" Width="5"/> 4 </Viewport3D.Camera> 5 </Viewport3D>

在透視投影模式下,即使用PerspectiveCamera時,可視區域寬度隨著與Camera的距離的增大而增大。由于離Camera越遠可視范圍區域越大,距離遠的對象在投影中會更小。通過PerspectiveCamera的FieldofView屬性可以控制視野擴張的水平角度。理論上這個角度越大,可視區域的范圍越大,遠處的物體看起來會越小。FieldOfView可以理解為真實相機變焦的作用。

????PerspectiveCamera的Width屬性的作用與OrthographicCamera的Width屬性作用類似。Width與FieldOfView搭配使用,當這兩個值較小時會對目標對象的某一部分進行放大(如使用相機時,我們常說的拉近鏡頭的效果),反之當這兩個屬性取較大值時可以展示更多的場景。

?

MatrixCamera

WPF中提供的MatrixCamera是一種高級相機,其讓用戶可以通過Matrix3D定義視圖及投影變換。如PerspectiveCamera與OrthographicCamera支持的投影模式都是一種預定義的變換矩陣。當需要獲得高級效果時需要使用MatrixCamera。另外MatrixCamera使用的變換矩陣模型與Direct3D完全一致,可以很容易的實現應用的移植。

?

Transform3D

Transform3D用于Model3D,ModelVisual3D和Camera的Transform熟悉國內,來對3D對象執行移動,旋轉或拉伸。

Transform3D有如下5種子類,用于執行3D變換:

  • TranslateTransform3D
  • ScaleTransform3D
  • RotateTransform3D
  • MatrixTransform3D
  • Transform3DGroup:用于包含一組Transform3D集合,以將多個變化應用到3D對象上。

下文將詳細介紹這些類及其使用。

?

TranslateTransform3D

????TranslateTransform3D將對象相對容器進行偏移,其OffsetX,OffsetY和OffsetZ三個屬性用來指定各個方向上的偏移量。如下面的代碼將位于坐標系原點的模型移動到(3,2,1)這個位置。

1 <ModelVisual3D> 2 <ModelVisual3D.Transform> 3 <TranslateTransform3D OffsetX="3" OffsetY="2" OffsetZ="1" /> 4 </ModelVisual3D.Transform> 5 </ModelVisual3D>

?

ScaleTransform3D

ScaleTransform3D用于改變3D對象的大小,ScaleX,ScaleY和ScaleZ屬性分別控制每個方向上的縮放比例。要在對3D對象執行縮放時維持比例需要將這三個屬性設置成相同的值,當然這三個值可以獨立設置(甚至只設置其中的1到2個)。

另外還有三個屬性CenterX,CenterY和CenterZ屬性用來設置縮放的中心點。默認縮放的中心點是坐標系的原點。若3D對象內沒有一點與原點重合,縮放就會導致3D對象移位,只需要將縮放中心點設置為3D對象中的任一點就可以實現原地縮放。另一種解決這個問題的方法是縮放后平移,平移的值就是坐標原點(即默認縮放中心)與3D對象上要以此為縮放固定點進行原地縮放的點之間的坐標距離。

另外,當縮放值設置為0時(所有方向上),對象會被縮成一個點(注意,需要等比例縮放時,應該講縮放比例設成1),而如果縮放值設置成負數,則會在被設為負值的方向的反方向上產生鏡像效果,并且其也按負值的大小進行了比例縮放。

提示:在底層對于通過CenterX,CenterY和CenterZ指定縮放中心的變化的處理上使用的方法是先將指定的縮放中心移動到坐標原點,等縮放完成后再平移回去。

?

RotateTransform3D

????RotateTransform3D用于在空間中旋轉3D對象。旋轉的定義通過Rotation3D對象描述,Rotation3D是一個抽象類,其有兩個字類:

AxisAngleRotation3D – 沿指定軸將對象旋轉Angle屬性指定的度數。這是實現旋轉最簡單的方法。

QuaternionRotation3D – 使用Quaternion來定義一個旋轉,Quaternion對Axis/Angle(軸/角度)旋轉編碼方法被許多其它3D工具使用。使用這種方式可以很容易將旋轉變化進行導入導出。

????通過RotationTransform3D定義的旋轉,會使坐標系按指定的度數旋轉,在右手坐標系中一個正值的角度會使坐標系逆時針旋轉。這種旋轉變化存在著與縮放變化同樣的問題即當旋轉軸不在3D對象上時,旋轉坐標系后對象位置會發生移動。兩種解決方法也同前面介紹,一是在旋轉之后通過平移調整位置。而是通過CenterX,CenterY和CenterZ屬性改變旋轉中心。注意Axis屬性指定的旋轉軸不能確定旋轉中心,如我們通過Axis指定繞Y軸旋轉,還需要指定在X-Z平面上具體哪一點繞Y軸旋轉。

?

Transform3DGroup

????如上文中所提到的那樣,在3D變化中,多種變化往往需要同時進行,如先縮放再平移或先旋轉再平移,通過Transform3DGroup可以很方便的把1個以上的變換組合成一個變換,其使用與2D中TransformGroup很類似這里不再給出代碼示例。

?

MatrixTransform3D

????這是一種很復雜的變換,用于定義其他幾種變換所無法實現的效果,或者將其它基于矩陣表示變換的程序移植到WPF中。另外,前面介紹的包括Transform3DGroup在內的變換都可以通過其Value屬性的得到Matrix3D的表示。

?

Model3D

????Model3D作用正如其名,為3D場景構建模型。通常把多個Model3D組合在一起來生成單個3D模型。Model3D在一些特性及使用上類似2D中Drawing。

Model3D有3個子類完成具體功能。

  • Light – Light提供的一些子類用于向場景中投射光線。在實際使用中常把Light結合到后文要介紹的Model3DGroup中來實現如車燈照射等效果。
  • GeometryModel3D – 與給定的Material結合使用來渲染表面。GeometryModel3D類似于2D中的GeometryDrawing。
  • Model3DGroup – 用于包含一組Model3D,如組合多個GeometryModel3D,組合Light來照射3D模型。

下面將詳細介紹Model3D這三個組成部分。

?

Light

????光照(Light)也是WPF 3D中獨有的概念,其基本作用就是根據場景中3D對象與光源的遠近動態計算3D對象的明暗。光照效果的出現也是通過三個部分的結合。Light對象用于把光線發射到場景中;Material用于把光線反射給Camera;模型幾何體確定入射及反射光線的角度。這一部分中先重點討論Light對象,從WPF支持的不同種類的Light開始:

  • DirectionalLight:從無限遠處的光源發射平行光到場景,其可以模擬太陽光照射的效果。
  • PointLight:從場景中一個點向各個方向均勻發射光線,光線強度隨著距光源距離增加而減弱。其用于提供一種沒有聚焦的光源效果,現實生活中的燈泡就類似這種效果。
  • SpotLight:從場景中一點發射逐漸擴散的錐形光源,光線強度同樣是隨著距離增加而減弱。如手電筒所發的光線就是這種光源的效果。
  • AmbientLight:均勻照射模型的每一個表面。如果是白色的AmbientLight由于缺乏明暗變化會使目標的視覺感很"平"。而較暗的AmbientLight會在場景表面產生漫反射的效果。
  • 下面我們詳細了解每種光源的特性及使用。

?

  • DirectionalLight

    由于光源距離近乎無限遠,從而光線接近平行。DirectalLight中,Direction屬性控制光線照射場景的方向,而Transform屬性(繼承自Model3D基類)可以影響光照方向。Color屬性用來控制Light的顏色。

  • 提示:Color屬性可以反應光照強度,#FFFFFF是完全強度的白光,而其值的一半#808080是半強度的白光。而alpha通道的設置對光照無影響,另外光照效果可以重疊。如:同方向的兩個半強光疊加可以產生一個完全強度的光照,而方向不同的光也會交叉重疊。下面這行XAML展示了一個簡單的例子:

    1 <ModelVisual3D> 2 <ModelVisual3D.Content> 3 <DirectionalLight Direction="1,-1,-0.5" Color="White" /> 4 </ModelVisual3D.Content> 5 </ModelVisual3D>

    ?

    單一的使用Direction所產生的效果不是很自然,可以結合AmbientLight使效果更自然。

    ?

  • PointLight

    PointLight與DirecitonalLight不同的一點在于前者光線強度隨著距離的增加而減弱。PointLight中,Position屬性用于指定光源的位置,ConstantAttenuation,LinearAttenuation和QuadraticAttenuation三個屬性一起控制光線隨距離增加的衰減比。我們把三個屬性分別簡寫為C,L,Q,另外用d表示光源與被照射點的位置。則衰減率公式為:

  • ?

    ????從公式可以看出,將C,L,Q分別設置為1,0,0,就可以得到距離無關,等強度的PointLight。

    ????PointLight還有一個Range屬性,用于定義光源的范圍(以光源為中心,半徑為指定值的范圍),在這個范圍之外光線不再有效。其默認值為無窮大最后給出一段XAML展示PointLight的使用:

    1 <ModelVisual3D> 2 <ModelVisual3D.Content> 3 <PointLight Color="White" Position="2,2,2" 4 ConstantAttenuation="0" LinearAttenuation="0" 5 QuadraticAttenuation="0.125" /> 6 </ModelVisual3D.Content> 7 </ModelVisual3D>

    ?

  • SpotLight

    現實世界中,使用凹透鏡或反射鏡會出現SpotLight的效果。WPF實現中,通過將PointLight發射的光限制在一個椎體上來模擬(角度范圍限制)。SpotLight中,Direction屬性指定了椎體的方向,而OuterConeAngle和InnerConeAngle屬性控制者椎體的形狀(椎體張開的角度)。InnerConeAngle與OuterConeAngle之間的區域是一個發散區間。光照強度會由指定值一直衰減到無。在InnerConeAngle區間內光照在同一半徑上會保持指定強度。改變InnerConeAngle與OuterConeAngle的區間可以調整發散區域的大小。當OuterConeAngle小于InnerConeAngle時就沒有發散區域了。?

  • AmbientLight

    AmbientLight通常用來在多個表面上產生漫反射的效果。Ambient最重要的屬性是Color,其控制光線的強度與顏色;另外Transform屬性對AmbientLight沒有效果。

    前面提到在AmbientLight中使用強度過高的顏色,會使目標看起來白茫茫一片,最好的產生自然光效果的方法是僅使用一個AmbientLight,且使用低于三分之一的白色(#555555或更小)。

  • ?

    GeometryModel3D

    ????GeometryModel3D對象用來定制3D幾何體,3D幾何體構成了可視對象的形狀。而Geometry3D定義的3D幾何體本身是無法展示出來的,為了可以看到3D幾何體的表面,需要將其與Material一起使用。而GeemotryModel3D這個Model3D的作用就是將Geometry3D與Material屬性相結合,而Model3D是可以最終被渲染的對象。

    ????首先來看一個GeometryModel3D的具體例子,其中Material部分定義了一個藍色的DiffuseMaterial,Geometry部分使用MeshGeometry3D描述了一個矩形。

    1 <ModelVisual3D> 2 <ModelVisual3D.Content> 3 <GeometryModel3D> 4 <GeometryModel3D.Material> 5 <DiffuseMaterial Brush="Blue" /> 6 </GeometryModel3D.Material> 7 <GeometryModel3D.Geometry> 8 <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0" 9 TriangleIndices="0 1 2, 0 2 3" /> 10 </GeometryModel3D.Geometry> 11 </GeometryModel3D> 12 </ModelVisual3D.Content> 13 </ModelVisual3D>

    ?

    首先我們先詳細介紹下例子中的第一部分 – Material。

    Material

    ????如前所述,Light對象的屬性決定場景中光線的方向和顏色。Material對象的屬性會最終確定反射到觀察者的光線,即我們最終看到的圖像。

    ????我們先來介紹下色彩的原理,在現實中,比如一個蘋果看起來是紅色的,是因為果皮反射了紅色的光,同時吸收了其他波長的光。Material對象的屬性正是決定了反射回哪些顏色到Camera從而建立圖像。

    WPF內置的Material有如下幾類:

    • DiffuseMaterial – 從所有角度散射抵達表面的光線,效果如新聞紙,平臺但不光滑。
    • SpecularMaterial – 對入射光線以相同的角度反射,用于產生像塑料或金屬等光滑表面的高光效果。
    • EmissiveMaterial – 近似于會發出光線的表面(但這個光不會照亮其他對象),所以無論場景中是否有光照對象,EmissiveMaterial看上去總是亮的,其用于創建總以完全亮度顯示的圖像,以及不需要陰影的圖像。
    • MaterialGroup – 組合使用多個Material其中最后的Material顯示在最前面,這樣依次排列。

    下面將詳細介紹這些Material。

    ?

  • DiffuseMaterial
  • ????DiffuseMaterial是最常用的一種Material。散射的強度與光線與被照射面的角度有關。光線直射時反射強度最大。所有對于一個球形物體,正對光源的部分看起來較亮,而兩側較暗。另外Camera的角度對反射沒有影響。

    ????DiffuseMaterial的Brush屬性定義了其反射的顏色。如給一個物體定義的Material使用了紅色的Brush(以SolidColorBrush為例),當我們向其投射白光(白光是所有色光在一起的光),其會表現為紅色。當然我們還可以通過使用漸變畫刷,甚至是ImageBrush,使反射光呈現漸變效果或更多自定的效果。這里需要注意,當使用SolidColorBrush之外的Brush時,需要使用TextureCoordinate來控制Brush的某一部分如何對應3D對象的某一部分。如果不指定TextureCoordinate模型不會被渲染,(這時WPF不能知道Brush顏色與模型表面點的映射關系,而對于SolidColorBrush模型上每個點映射到相同的顏色,所以可以不設置TextureCoordinate屬性)。使用Brush來指定Material的另一大好處是靈活的數據綁定,不但可以通過數據綁定控制3D模型,還可以將2D中的DrawingVideo等作為對象表面的紋理。

    ????DiffuseMaterial的Color屬性用于過濾Light的顏色,只有其指定的顏色才可以被反射,其默認值為白色也就是不進行過濾。

    ????最后要說的一個屬性是AmbientColor,通過這個屬性設置的顏色只會對來自AmbientLight中的顏色起過濾作用,其主要作用也就是控制表面對環境光的反射程度。

    提示:WPF處理重疊表面的方式

    對于層疊的對象有兩種處理方式:一,將所有的對象排序,然后自后先前渲染。二是,深度緩沖,這是WPF使用的方式,這種方式下最靠近Camera的表面會最后渲染,這種方式比前一種快很多,當然副作用是遠處的目標不再被渲染,當最前面的對象是透明時會有很大問題。對此的解決方向是將透明的DiffuseMaterial放在集合最后,來保證透明對象后的對象先被渲染。或者可以使用EmissiveMaterial,其不使用深度緩沖方式被混合 ,且其也可以創建類似透明的效果。

  • SpecularMaterial
  • ????這種Material會反射光線,當Camera與光源夾角較小時,目標會像鏡子般反射光線到Camera,且僅當Camera靠近反射光線時SpecularMaterial的效果才能被觀察到。SpecularMaterial常與DiffuseMaterial結合使用,給硬的、閃亮的表面添加高亮效果。如下面這段XAML所示:

    1 <GeometryModel3D.Material> 2 <MaterialGroup> 3 <DiffuseMaterial Color="Red" /> 4 <SpecularMaterial Color="White" SpecularPower="40" /> 5 </MaterialGroup> 6 </GeometryModel3D.Material>

    其中SpecularPower屬性控制高亮反射的聚焦程度,值越大,聚焦程度越大高亮效果越強。

    提示:組合Material得到常見的效果

    如將明亮的DiffuseMaterial和白色的SpecularMaterial結合在一起,表面上看起來就像塑料。使用暗的DiffuseMaterial和具有相同色調且明亮的SpecularMaterial會得到金屬效果的表面。

    ?

    ????同DiffuseMaterial,最后反射到Camera的顏色也是由Light的Color屬性,SpecularMaterial的Brush和Color屬性共同決定的。且SpecularMaterial的Brush屬性也可以指定為各類Brush對象,從而使反射光線呈現各種變化效果。另外注意,SpecularMaterial沒有提供AmbientLight屬性,因為這種光線是沒有方向的。

    ?

  • EmissiveMaterial
  • ????EmissiveMaterial總是向Camera發出可見光,其光線不會像Light那樣被反射。

    ????EmissiveMaterial向圖像添加光照效果的原理是混合入圖像,通俗表述就是使物體透亮,如我們在燈籠里點一根蠟燭,則燈籠表面就是透亮物。另外這種混合沒有阻止后方物體反射的光線穿過自身。為了防止這種被穿透可以通過MaterialGroup將EmissiveMaterial與DiffuseMaterial結合使用,參見如下XAML:

    1 <MaterialGroup> 2 <DiffuseMaterial Brush="Black" /> 3 <SpecularMaterial Brush="Green" /> 4 </MaterialGroup>

    ?

  • MaterialGroup
  • ????通過MaterialGroup可以在一個表面應用多個材質。MaterialGroup中材質的渲染順序正是安其定義的順序。在上面介紹其它材質時也提到了一些組合使用的技巧。

    ?

    Geometry3D

    ????接下來重點了解一下構成GeometryModel3D的另一個重要組成部分Geometry3D,當前Geometry3D只有一個子類MeshGeometry3D來實現功能。

    ????MeshGeometry的作用是將一組指定的3D表面表示為三角形序列。MeshGeometry3D的主要屬性如下:

    • Positions:定義了目標中包含的三角形的頂點。
    • TriangleIndices:定義了 Positions中三角頂點的連接關系,如果沒有指定該屬性,則表示按點在Positions中出現的順序連接:0,1,2然后3,4,5依此類推。
    • Normals:該屬性用來調整網格的光照
    • TextureCoordinates:該屬性前文有提到,用于為Material使用的表面指定3D到2D的映射方法。

    下面重點介紹這些屬性及相關概念。

  • Position

    網格中的三角形的頂點通過3D坐標定義。默認情況下Position集合中3個Point3D組成一個三角形。如下面這段XML定義了兩個三角形:

    1 <GeometryModel3D> 2 <GeometryModel3D.Geometry> 3 <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 -1,1,0 1,-1,0 1,1,0" /> 4 </GeometryModel3D.Geometry> 5 </GeometryModel3D>

    ?

  • TriangleIndices

    所有模型均使用三角形組合而成,包括一些彎曲的表面也是用小三角形拼接來達到近似的效果。小三角形拼接時會有很多共同邊,這就需要通過自定義點連接來實現。這是使用TriangleIndices的默認值所做不到的。如下面的例子我們使用四個點構造了一個正方形(拼接兩個三角形,上面例子中小房子的一面墻)

    1 <GeometryModel3D> 2 <GeometryModel3D.Geometry> 3 <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0" 4 TriangleIndices="0 1 2, 0 2 3" /> 5 </GeometryModel3D.Geometry> 6 </GeometryModel3D>

    如例子所示,通過TrangleIndices使三角形可以共享點的位置,此時三角形被認為是連續表面的一部分。而當不共享點位置時,三角形是分開的臨接表面,有著不同的Normal和TextureCoordinates定義。

  • 提示:WPF中的MeshGeometry3D會確保共享點的三角形間的相鄰邊被無縫渲染。而如果通過Transform3D使兩個MeshGeometry3D重疊則可能由于誤差產生小縫隙,而避免方法是使變換程度盡量大到產生微量疊加。

    ??

    Normals

    ????Normals屬性表述一個幾何學中法線的概念。法線是經過某一點垂直于表面的直線。在WPF 3D中通過指定經過各頂點的法線來通知系統三角形是表示平的表面還是表示近似的曲面。WPF中Normals集合中每個變量的類型都是Vector3D對象,且這些對象的個數與Position對象相同,來一對一的表示Position中每個點發現的方向。

    ????我們以如下圖形為例講述法線的作用。

    如在一個3D空間中我們有兩個相鄰但不在一個平面上的三角形。假設我們不為其顯式指定法線,且兩個三角形之間沒有共享點,那么法線就是通過各項點垂直于面的線(面法線)。當我們由Y軸正方向向負方向垂直看去,三角形兩條邊及法線(藍色標識)方向如下圖所示:

    則這時兩個三角形的面看起來都是平的,交接處會有很明顯的棱角的效果。

    ????而如果兩個三角形共享頂點,且沒有顯式指定法線。系統會根據共享點原本的兩條面法線,取一個中間值作為法線,如下圖:

    這時,由于法線不與面垂直,其產生的陰影會被平滑的內插在三角形的表面,兩個三角形相鄰處也看不到任何明顯的折痕。

    對于一個平面(如單一一個三角形),三條法線也是平行且垂直于平面,這時平面看起來也是平坦,要想讓其看起來有近似彎曲的表面。只需調整其中一到兩條法線的方向即可。

    ?

    TextureCoordinates

    ????在2D圖形中,當向一個GeometryDrawing應用Brush時,系統會很自然的把Brush應用到2D圖形邊界范圍之內。在3D圖形中需要使用TextureCoordinates手動指明映射,這個屬性是一個集合屬性,每一項均為Brush范圍內的2D點。通過這些點將3D空間的三角映射到Brush空間的三角。

    ?

    Model3DGroup

    ????Model3DGroup派生自Model3D,用于將Model3D的對象集合組合為一個單獨的模型,如將多個GeometryModel3D對象組合在一起建立一個使用不同Material的模型(一個GeometryModel3D中只能組合一套Material與Geometry3D)的模型。

    ?

    Visual3D

    ????如同可以被呈現到屏幕的2D元素都繼承自Visual基類,Visual3D也是可以被呈現的3D內容的根結點。另外Visual3D同樣支持命中測試等特性,且也是通過VisualTreeHelper來使用。下面將詳細介紹Visual3D的具體子類ModelVisual3D

    ?

    ModelVisual3D

    ????ModelVisual3D類似于2D圖形系統中的DrawingVisual。ModelVisual3D的Content屬性用來設置內容,其接受并呈現的內容為Model3D的對象。而且同一個Model3D對象可以在多個ModelVisual3D間重用,甚至用于處于嵌套層次中 的ModelVisual3D。另外,ModelVisual3D有一個集合類型的Children屬性用于嵌套其他ModelVisual3D對象,從而將多個Visual3D組合在一起。特別注意,不同于許多其它以Content作為內容屬性的類,ModelVisual3D將Children作為內容屬性,所以可以使用最自然的方式來將ModelVisual3D嵌套起來(但同時注意,設置Content時,XAML中一定要添加Content元素)。

    提示:關于Model3DGroup和ModelVisual3D的選擇

    這兩個類都具有組合子元素的作用,在它們使用的選擇上也很簡單,舉一個例子就能明白,比如一個場景中有車,有房。則使用Model3DGroup來組合車的輪子,架子和玻璃,而ModelVisual3D用來將房子和車組合在一起。

    ?

    提示:ModelVisual3D可以被擴展,建立一個增加了自定義行為的、可重用的Visual3D類。

    ?

    3D命中測試

    ????Visual3D的可視命中測試同樣是用于找到哪一個可視對象(Visual)在指針點擊處,在3D中做命中測試最簡單的方法是監聽Viewport3D元素的鼠標事件,參見下面的代碼:

    1 <Viewport3D MouseDown="Viewport3D_MouseDown"> 1 private void Viewport3D_MouseDown(object sender, MouseButtonEventArgs e) 2 { 3 base.OnMouseLeftButtonDown(e); 4 5 Viewport3D viewport3D = (Viewport3D) sender; 6 Point location = e.GetPosition(viewport3D); 7 8 HitTestResult result = VisualTreeHelper.HitTest(viewport3D, location); 9 10 if(result != null && result.VisualHit is Visual3D) 11 { 12 MessageBox.Show("點擊了3D對象"); 13 } 14 }

    當然在3D中,使用委托來反饋結果的HitTest函數的重載也是被支持的。如同在2D中一樣,結果以由后到前的順序返回。HitTest還有一個重載接受一個Visual3D和一個HitTestParameters3D作為參數。

    提示:在命中測試中,可以根據命中目標的不同將HitTestResult轉化為PointHitTestResult或GeometryHitTestResult等類型。比較特殊的,當命中目標是一個3D網格時,可以將HitTestResult強制轉化為一個RayMeshGeometry3DHitTestResult對象,其中會包含大量交叉點的詳細信息。

    ?

    Viewport3D元素

    ????Viewport3D相當于2D中的FrameworkElement。Viewport3D的父元素是像Window或者Grid這樣的2D元素。Viewport3D的子元素是Visual3D。Visual3D的子元素描述的3D場景是在Viewport3D矩形布局框中渲染。Viewport3D的Camera屬性控制了從Viewport3D中看到的3D場景的視圖。

    提示:需要顯示指定Viewport3D的Width和Height,Viewport3D 不能像Button那樣根據其中的內容自動調整大小,也就說Viewport3D不知道其中的Visual3D有多大而默認會將Width和Height置0,從而無法顯示內容。

    ?

    ????作為一個FrameworkElement對象,Viewport3D支持系統的布局功能。這樣可以將3D元素集成到幾乎任何地方。如同過Sytle或ControlTemplate屬性將控制外觀換成可以交互的3D內容。

    提示:在內部Viewport3D是通過Viewport3DVisual將3D可視樹關聯到2D可視樹上2DVisual對象的。Viewport3D在Viewport3DVisual的基礎上增加了Viewport屬性,用來實現Framework層擁有而Visual層沒有的布局的概念,以設置3D場景的顯式范圍。

    ?

    本文完

    ?

    參考:

    《WPF揭秘》

    總結

    以上是生活随笔為你收集整理的WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产色在线,com | 久久精品99视频 | 成人免费在线观看入口 | 久久人人97超碰国产公开结果 | 欧美日韩激情视频8区 | 久久高清视频免费 | 国产h片在线观看 | 久久影院一区 | 天天摸天天弄 | 中文字幕资源网在线观看 | 天天综合天天做 | 婷婷免费视频 | 国产91免费观看 | 在线观看免费视频你懂的 | 麻豆一区在线观看 | 国产伦理久久 | 精品免费视频 | 四虎8848免费高清在线观看 | 超薄丝袜一二三区 | 国产青青青 | 久久99亚洲精品久久久久 | 久久精品一区二区三区中文字幕 | 欧美韩国日本在线观看 | 欧美亚洲免费在线一区 | 欧美一区免费在线观看 | 国产v亚洲v| 丁香婷婷色月天 | 色综合久久久久久中文网 | 日韩av在线免费看 | 久久免费视频99 | 成人久久18免费网站 | 激情av资源 | 黄色国产成人 | 日韩精品久久一区二区 | 一区二区欧美日韩 | 干狠狠| 中文字幕在线视频精品 | 色成人亚洲网 | 久久久精品国产免费观看同学 | 四虎www.| 国产精品自产拍在线观看中文 | a级片网站| 91自拍视频在线观看 | 91麻豆看国产在线紧急地址 | 在线观看黄色国产 | 九九热久久免费视频 | 国产精品手机在线 | 久久精品波多野结衣 | 男女拍拍免费视频 | 久久99精品久久久久久久久久久久 | 久久男人免费视频 | 欧美a级在线 | www色婷婷com| 国产二区精品 | 国产精品久久久久婷婷 | 色婷婷亚洲精品 | 久久玖 | 9i看片成人免费看片 | 欧美日韩国产在线一区 | 丁香伊人网 | 国产视频欧美视频 | 麻豆传媒视频在线 | 中文字幕 在线 一 二 | 色综合国产| 久久久久久久久黄色 | 超碰97公开 | 香蕉视频最新网址 | av一本久道久久波多野结衣 | 国产激情免费 | 亚洲一区二区三区毛片 | www.色午夜 | 三级在线视频观看 | 中文字幕在线播放第一页 | 久久精品在线免费观看 | 久久色在线观看 | www.香蕉视频在线观看 | www.夜夜草| 精品视频久久 | 国产视频18 | 欧美在线1区 | 国产精品99久久久久久小说 | 久99久中文字幕在线 | 日韩精品一区二区三区中文字幕 | 国产拍揄自揄精品视频麻豆 | 午夜av在线播放 | 99re热精品视频 | 91精品在线免费观看视频 | 欧美性天天| 国产成人61精品免费看片 | 欧美精品999 | 久久久久久蜜av免费网站 | 国产99久久久国产精品 | 日韩激情在线 | 亚洲视频久久久久 | 精品极品在线 | 91亚州| 久久九九久久 | 国产在线视频一区 | 中文字幕资源站 | 精品美女久久久久久免费 | 国产精品自在欧美一区 | 免费一级特黄毛大片 | 91热在线| 国产电影一区二区三区四区 | 亚洲精品小视频在线观看 | 日日摸日日碰 | www.com黄色 | 免费婷婷 | www.91国产| 天堂在线一区 | 美女网色 | 中文字幕 91 | 中文字幕在线观看播放 | 精品亚洲午夜久久久久91 | 天天看天天操 | 综合激情av | 日韩欧美视频免费在线观看 | 1024手机基地在线观看 | 黄色福利网站 | 27xxoo无遮挡动态视频 | 国产99中文字幕 | 免费麻豆网站 | av丁香花| 精品久久久久国产免费第一页 | 一本一本久久a久久精品牛牛影视 | 国产一区二区三区高清播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 精品久久九九 | 西西www444 | 亚洲 在线 | 国产精品久久久久久久久岛 | 人人狠狠综合久久亚洲 | 久久久久久久久久免费视频 | 国产高清视频色在线www | 久久99国产一区二区三区 | 亚洲一区 影院 | 国产成人av电影在线 | 9999国产精品 | 99久久这里有精品 | 在线看岛国av | 一区在线播放 | 亚洲成av人电影 | 色综合久久久久综合体桃花网 | 天堂入口网站 | 亚洲aⅴ在线观看 | 日韩系列在线观看 | 97视频在线观看网址 | 在线激情影院一区 | 成人a在线| 亚洲精品一区二区三区新线路 | 国产不卡免费视频 | 久久久久亚洲国产 | 黄色资源在线观看 | japanese黑人亚洲人4k | 日韩av免费在线看 | 国产精品日韩 | 午夜12点 | 在线观看视频在线观看 | av片子在线观看 | 日本公妇色中文字幕 | 国产精品自在线拍国产 | 在线91播放 | 亚洲最大av网 | 黄色av大片 | 国产高清不卡在线 | 国产成人精品综合久久久 | 国产视频第二页 | 国产一级一级国产 | 国产精品18久久久久久久久久久久 | 免费成人在线网站 | 91av视频在线播放 | 日韩小视频 | 狠狠网站 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 热久久视久久精品18亚洲精品 | 国产福利91精品一区二区三区 | 伊人天天狠天天添日日拍 | 日本三级人妇 | 精品亚洲免a | 国产日韩精品在线观看 | 国内免费的中文字幕 | 国产这里只有精品 | 在线观看第一页 | 色播激情五月 | 在线有码中文 | 成人sm另类专区 | 6080yy午夜一二三区久久 | 欧美日韩aaaa | 美女av免费看 | 九色视频网 | 国产一区二区在线播放视频 | 久久精品综合网 | 免费看的视频 | 久久久福利影院 | 五月天六月婷 | 国产看片网站 | 亚洲精品一区二区三区新线路 | 亚洲精品国偷拍自产在线观看蜜桃 | 最近av在线| 久久国产亚洲 | 男女全黄一级一级高潮免费看 | 九九九视频在线 | 久久国产精品99国产 | 亚洲激情视频 | 99精品视频在线观看播放 | 伊人黄色网 | 成人三级视频 | 黄色网址中文字幕 | 久久字幕网| 丝袜护士aⅴ在线白丝护士 天天综合精品 | 日韩欧美电影网 | 成人免费网视频 | 丁香 婷婷 激情 | 天天操天天操天天操天天 | 国产女人免费看a级丨片 | 日本公妇色中文字幕 | 婷婷丁香激情五月 | 91精品一 | 成人免费大片黄在线播放 | 在线免费观看黄色 | 国产一级精品绿帽视频 | www.av免费观看| 久久av影院 | 中文字幕超清在线免费 | 国产999免费视频 | www.日日操.com| 日b视频国产 | 中文国产在线观看 | 97成人在线观看视频 | 亚洲人片在线观看 | 色婷婷电影网 | www久久九| 亚洲第一区在线播放 | 日韩视频精品在线 | 国产高清免费av | 狠狠操91| 在线观看国产日韩 | 国产精品久久久久久久久久 | 日韩一区二区三区免费视频 | 黄色av免费看 | 日韩av免费一区 | 日韩一二区在线观看 | 成人播放器| 黄色免费网站 | 中文字幕91在线 | 福利视频第一页 | 香蕉视频在线播放 | 日韩免费av网址 | 视频一区在线免费观看 | 亚洲激情综合 | 日本久久电影 | 国产亚洲人 | 久久久久久久久久久免费 | 最新国产精品亚洲 | 国产一区高清在线观看 | 免费福利视频网 | 国产一区二区三区高清播放 | 在线黄色av | 亚洲美女视频在线 | 久久久国产精品一区二区中文 | 日韩亚洲国产中文字幕 | 黄色三级av | 国产在线播放一区 | 亚洲精品国产第一综合99久久 | 在线视频 亚洲 | 国产伦理一区二区 | 狠狠色丁香 | 综合网天天色 | 岛国一区在线 | 久久久久免费 | 亚洲爱爱视频 | 久久久99精品免费观看乱色 | www黄色com| 一区二区三区免费在线观看视频 | 成人在线免费看 | 99热超碰在线 | 国产69精品久久久久久 | 成人黄大片视频在线观看 | 99精品免费在线 | 亚洲国产精品999 | 久久免费视频这里只有精品 | 欧女人精69xxxxxx | 久久九九精品 | 一级α片免费看 | www.黄色片.com | 国产成人免费高清 | 不卡在线一区 | 夜夜躁天天躁很躁波 | 日韩在线观看中文 | 亚洲理论在线 | 久草在线视频在线观看 | 蜜臀av一区二区 | 最近日本mv字幕免费观看 | 欧美视频在线观看免费网址 | 在线观看韩国av | 日韩av中文在线观看 | 亚洲午夜不卡 | a黄色一级片| 五月开心六月婷婷 | 天天操天天舔天天爽 | 精品久久毛片 | 色999视频 | 天天艹| 国产视频九色蝌蚪 | 99国产高清| 中文av资源站 | 99这里有精品 | aaa亚洲精品一二三区 | 麻豆激情电影 | 亚洲精品毛片一级91精品 | 日本三级人妇 | 高清av影院 | 午夜精品一区二区三区在线 | 91传媒在线 | 狠狠狠色丁香综合久久天下网 | 91精品日韩| 麻花豆传媒mv在线观看网站 | 国产区久久 | 亚洲精品高清一区二区三区四区 | 亚洲伊人婷婷 | 激情五月在线 | 免费高清在线观看成人 | 免费高清在线观看成人 | 久草在线视频网 | 在线观看蜜桃视频 | 亚洲欧洲日韩 | 国产免费一区二区三区网站免费 | www黄色大片 | 国产精品一区二区在线观看免费 | 色丁香婷婷 | 国产精品久久久久久久午夜片 | 69精品视频在线观看 | 久久香蕉国产精品麻豆粉嫩av | 日色在线视频 | 国产群p视频 | 中文一区在线 | 欧洲精品久久久久毛片完整版 | 91插插插网站 | 国产99亚洲 | 天堂网一区二区 | 免费欧美高清视频 | 少妇bbbb | 激情综合五月婷婷 | 久久精品观看 | japanesexxxhd奶水 91在线精品一区二区 | 久久久国产精品视频 | 人人干免费 | 久久精品草 | 久久久片 | 日韩a欧美| 免费av试看 | 久久美女高清视频 | 精品久久99 | 久久精品国产亚洲精品 | 亚洲综合成人av | 99精品视频网 | 成人国产精品免费观看 | 中文字幕一区二区三区乱码不卡 | 天天干天天操天天拍 | 国产精品区二区三区日本 | 欧美久久久久久久久久久 | 免费观看国产精品视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 99热在线观看免费 | 一区久久久 | 亚洲午夜av电影 | 久久手机在线视频 | av在线进入 | 亚洲手机天堂 | 欧美粗又大 | 亚洲精品国产精品99久久 | 成年人黄色免费看 | 日韩精品高清不卡 | 国内精品久久久久 | 精品网站999www | 粉嫩av一区二区三区四区在线观看 | 日韩欧美视频免费在线观看 | 久久99国产精品免费网站 | 亚洲精品美女在线观看 | 九九九九精品九九九九 | 欧洲精品码一区二区三区免费看 | 99久久久久久 | 激情欧美网 | 中文字幕电影高清在线观看 | 国产专区一 | 久久96国产精品久久99漫画 | 欧美精品首页 | 涩涩网站免费 | 欧美在线视频一区二区三区 | 九九免费在线观看视频 | 日本特黄一级片 | 黄色视屏免费在线观看 | 日韩免费小视频 | 亚洲在线看 | 久久超级碰视频 | 午夜婷婷在线播放 | 韩日电影在线观看 | 日韩影视在线观看 | 91视频专区| 精品久久久99 | 日韩精品一区二区免费 | 免费在线色视频 | 在线视频日韩一区 | 91精品久| 久久久免费在线观看 | 免费看精品久久片 | 亚洲人精品午夜 | 天天色天天射天天干 | 一区二区三区国产欧美 | 婷婷在线免费视频 | 精品视频免费观看 | 中文字幕 第二区 | 国产精品18久久久久久不卡孕妇 | 国产xx在线| 久久中文字幕在线视频 | 午夜视频不卡 | 午夜骚影| 狠狠干干 | 婷婷在线精品视频 | 男女拍拍免费视频 | 97视频在线观看视频免费视频 | 一区二区三区www | 日本高清久久久 | 日日操操 | 69av视频在线观看 | 亚洲欧洲日韩在线观看 | 91成人亚洲 | 亚洲精品国偷自产在线91正片 | 五月婷婷丁香六月 | 91福利免费| 综合网久久 | 99热在线国产精品 | 久久久视频在线 | 欧美激情综合色综合啪啪五月 | 国产成人久久精品77777综合 | 99久久99久久精品国产片果冰 | 高潮久久久| 日日婷婷夜日日天干 | 亚洲视频六区 | 99资源网 | 亚洲成人黄色在线 | 成人av在线亚洲 | 在线观看www视频 | 日韩特黄av | 一区二区三区在线看 | 91传媒在线 | 91九色视频在线播放 | 亚洲日本成人 | 黄色特一级 | 国产一区精品在线观看 | 欧美日韩精品二区第二页 | 欧美在线久久 | 字幕网在线观看 | 国产高清精品在线观看 | 国产专区在线看 | 中文字幕在线播放日韩 | 婷婷精品国产欧美精品亚洲人人爽 | 91av亚洲| 在线播放你懂 | 国产精品久久久久一区二区国产 | 久久久久成 | 精品久久一区二区三区 | 日韩免费在线观看网站 | 国产在线a视频 | 成人毛片在线视频 | 欧美成a人片在线观看久 | 精品一区二区综合 | 中文字幕在线看视频 | 天天操狠狠操 | 81国产精品久久久久久久久久 | 日韩有码中文字幕在线 | 成人av片免费观看app下载 | 久久成人福利 | 亚洲人成精品久久久久 | 国产乱视频 | 久久国产露脸精品国产 | 国产理论片在线观看 | 国产麻豆精品久久一二三 | 色网站黄 | 久久精品国产成人 | 亚洲黄污 | 国产手机免费视频 | 亚洲婷婷综合色高清在线 | 亚洲资源 | 一区二区三区国产精品 | 中文字幕精品三区 | 国产精品1区2区3区 久久免费视频7 | 免费网站在线观看人 | 在线电影 你懂得 | www.天天色 | 精品久久久成人 | 免费观看一区二区 | 亚洲精品在线一区二区三区 | 韩国av免费在线观看 | 日韩黄色免费在线观看 | 日日夜夜中文字幕 | 五月天综合网站 | 97视频人人澡人人爽 | 丁香六月综合网 | 狠狠激情中文字幕 | 日本中文字幕在线免费观看 | 日本黄色免费网站 | 97综合视频 | 91成人免费观看视频 | 精品国产亚洲日本 | 国产成人区 | 97超碰人人澡| av片在线观看 | 国产精品久久麻豆 | 天天操操操操操 | 国产在线观看91 | 国产黄色成人av | 日本不卡视频 | 亚洲国产美女精品久久久久∴ | 日韩免费电影一区二区 | 成人免费亚洲 | 亚洲91精品 | 国产精品第一页在线观看 | 久久这里只有精品首页 | 九九精品久久久 | 欧美极品一区二区三区 | 国产精品视频 | 福利一区二区在线 | 免费福利在线 | 精品国产一区二区三区四区在线观看 | 久久私人影院 | 在线观看视频你懂得 | 久久精品亚洲精品国产欧美 | 国产精品久久久久久久久久三级 | 韩日精品中文字幕 | 成人久久精品视频 | 中文字幕精品一区 | 人人爽人人爽人人 | 天天射天天干天天插 | 国产成人精品一区二区三区在线观看 | 超碰公开在线 | 日韩网站一区 | 亚洲日韩中文字幕在线播放 | 亚洲成色777777在线观看影院 | 久久www免费人成看片高清 | 特级西西www44高清大胆图片 | 日本女人b | 国产精品 9999 | av中文字幕在线看 | 亚洲精品字幕在线观看 | 国产精彩视频一区二区 | 国产成人久久久久 | 91成人免费观看视频 | 欧美网站黄色 | 日批视频 | 国产精品美女久久久久久免费 | 精品在线免费观看 | 久久国产亚洲 | 久久成人麻豆午夜电影 | 国产精品久久久久久99 | 在线观看理论 | 97色婷婷人人爽人人 | 国产青青青| 91在线小视频 | 色www精品视频在线观看 | 麻豆视频网址 | 免费看的毛片 | 美女在线国产 | 亚洲精品国产电影 | 97国产在线播放 | 2022久久国产露脸精品国产 | 亚洲精品视频免费 | 久久伊人国产精品 | 在线观看成人小视频 | 久草免费在线观看视频 | 中文字幕乱码日本亚洲一区二区 | 免费色av| a视频在线观看免费 | 久久国产福利 | 人人爽久久久噜噜噜电影 | 麻豆视传媒官网免费观看 | 国产日产精品一区二区三区四区 | 国产精品第一页在线 | a在线观看国产 | 黄色影院在线免费观看 | av大片免费看| 久久中文字幕导航 | 丝袜美腿av| 四虎影视8848dvd | www久| 日韩av一区二区三区 | www国产一区 | 国产久视频| 国产亚洲成人网 | 国产成人精品一区二区三区网站观看 | 成人av电影在线观看 | 国产在线一区二区三区播放 | 九九九九精品九九九九 | 日韩免费网址 | 欧洲亚洲国产视频 | 综合久久五月天 | 久草视频在 | 99久久久国产精品免费99 | 亚洲五月激情 | 欧美a性 | av 一区二区三区四区 | 日韩高清在线观看 | 天天碰天天操 | 在线av资源| 在线观看小视频 | a黄色大片 | 欧美一级免费片 | 久久免费国产精品1 | www.91成人 | 久草免费在线观看 | 伊人狠狠色 | 久久久久久国产精品免费 | 久久久久草 | 一区二区三区精品在线视频 | 亚洲成av | 久99久精品视频免费观看 | 久久久久久久久影院 | 91av国产视频 | 狠狠色丁香久久婷婷综合五月 | 夜夜躁狠狠燥 | 午夜精品剧场 | 夜夜夜| 久日精品 | 91麻豆看国产在线紧急地址 | 中文av网站 | 久久伊人热 | 天天色综合久久 | 99这里只有久久精品视频 | 日韩精品在线播放 | 天天射天天射天天射 | 高清av网站 | 精品国产aⅴ一区二区三区 在线直播av | 免费观看国产成人 | 免费观看www7722午夜电影 | 东方av在线免费观看 | 欧美日韩免费一区二区 | 五月天综合 | 丁香花在线观看视频在线 | 夜夜澡人模人人添人人看 | 亚洲精品一区中文字幕乱码 | 日韩三级精品 | 久久这里精品视频 | 日韩三级不卡 | 久久乐九色婷婷综合色狠狠182 | 精品中文字幕视频 | 亚洲春色奇米影视 | 在线看片中文字幕 | 一区二区三区四区精品视频 | 国产高清中文字幕 | 在线观看亚洲成人 | 久久国产免 | 欧美激情第十页 | 香蕉久久久久久久 | 亚洲 欧美 国产 va在线影院 | 久久精品79国产精品 | 欧美成年网站 | 国产免费观看久久黄 | 欧美大片大全 | 久久综合一本 | 黄色高清视频在线观看 | 久久尤物电影视频在线观看 | 久久久精品日本 | 91人人在线 | 蜜臀av夜夜澡人人爽人人桃色 | 国产精品久久久久久久久久东京 | 天堂视频中文在线 | 一本一本久久a久久精品综合妖精 | 中文字幕网站 | 色福利网站 | 亚洲日本精品视频 | 天堂在线视频免费观看 | 超碰国产在线播放 | 黄色aaaaa | 丁香av在线| 国产一级片播放 | 亚洲精品tv久久久久久久久久 | 成人av电影免费 | 在线影院 国内精品 | 欧美激情综合五月色丁香小说 | bbw av| 国产高清在线一区 | 亚洲永久精品在线观看 | 日韩激情综合 | 日韩久久精品一区二区三区 | 日本公妇色中文字幕 | 国产精品久久久久久久电影 | 少妇bbb| 久久精品中文视频 | 欧美五月婷婷 | 天天操天操| 国产麻豆成人传媒免费观看 | 在线亚洲天堂网 | 日韩免费大片 | japanesefreesex中国少妇 | 国产免费高清视频 | 欧美在线视频一区二区三区 | 婷婷丁香九月 | www.色午夜| 国产在线精品国自产拍影院 | 天天操天天射天天插 | 亚洲精品a区 | 精品国产99| 免费欧美精品 | 久久精品这里都是精品 | 午夜精品久久 | 成人97视频一区二区 | 在线香蕉视频 | 99视频国产精品免费观看 | 久久 亚洲视频 | 在线免费观看视频一区 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 免费日韩一级片 | 在线播放你懂 | 黄色三级免费观看 | 国产在线 一区二区三区 | 欧美一级黄色视屏 | 久久精品视频播放 | 久久avav| 国产精品麻豆99久久久久久 | 在线观看精品黄av片免费 | 91人网站| 国产精品久久视频 | 亚洲午夜精品电影 | 国产精品午夜在线 | 999热线在线观看 | 中国美女一级看片 | 国产99re | 少妇搡bbb | 婷婷色站| 亚洲免费国产视频 | 久久亚洲国产精品 | 国产视频二区三区 | 国产日韩精品在线 | 在线黄色av电影 | 日韩理论电影在线 | 在线观看av麻豆 | 国产aaa免费视频 | 久久午夜精品影院一区 | 国产精品淫片 | 97色狠狠| 九九热99视频 | 久久成人午夜 | 亚洲精品久久久久www | 亚洲午夜精品久久久久久久久 | 天天综合五月天 | 国产1区2区3区精品美女 | 九九免费在线观看 | 麻豆视频在线观看 | 中文字幕在线观看免费观看 | 一区二区三区福利 | 国产精品网站一区二区三区 | 99热超碰在线 | 9797在线看片亚洲精品 | 天天天天干 | 亚洲精品免费在线观看视频 | 天堂网一区二区三区 | 国产高清在线观看 | 国产成人在线播放 | 日韩资源在线观看 | 婷婷国产在线观看 | 我要看黄色一级片 | 国产精品一区二区中文字幕 | 日韩精品中文字幕一区二区 | 日本电影黄色 | 日韩美女久久 | 色婷婷中文 | 日日夜夜操av | 亚洲国产精品日韩 | 欧美一级黄色片 | 国产亚洲午夜高清国产拍精品 | 丁香婷婷激情网 | 欧美91视频 | 久久精品8| 天天操天天干天天爱 | 久久国产免 | 久久不见久久见免费影院 | 国产精品69久久久久 | 98超碰在线观看 | 天天干天天干天天干天天干天天干天天干 | 高清av免费观看 | 毛片1000部免费看 | 99久久精品电影 | 少妇bbw搡bbbb搡bbb | 久久九九久久精品 | 国产精品av在线 | 亚洲精品综合久久 | 在线国产福利 | 久久人人精品 | 天天综合人人 | 亚洲区另类春色综合小说 | 亚洲电影网站 | 国产精品不卡 | 久热超碰 | 国产91对白在线 | 国产精品激情 | 成人国产精品 | 9在线观看免费高清完整版 玖玖爱免费视频 | 99免费| 国产精品黄色影片导航在线观看 | 国产精品美女久久久久aⅴ 干干夜夜 | 久久免费成人精品视频 | 日本电影黄色 | 91精品国产自产老师啪 | 97超碰网 | 中文字幕在线不卡国产视频 | 97视频在线观看免费 | 91自拍视频在线 | 久久再线视频 | 久久久久久网站 | 日韩在线视频不卡 | 手机av在线不卡 | 狠狠躁夜夜躁人人爽视频 | 在线观看国产v片 | 在线观看 亚洲 | 亚av在线 | www欧美xxxx| 精品国模一区二区三区 | 免费观看成人av | 国产福利免费在线观看 | 久久久久伊人 | 免费在线观看成人小视频 | 国产亚洲精品久久久久久久久久久久 | av网址aaa| 国内免费久久久久久久久久久 | 99国产高清 | 黄色在线看网站 | 麻豆国产精品永久免费视频 | 一级片免费观看视频 | 天天舔夜夜操 | 欧美大jb| 草久电影| 国产精品麻豆欧美日韩ww | 亚洲第一av在线 | 天天操天天爱天天干 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 中文字幕在线视频第一页 | 亚洲一区精品人人爽人人躁 | 成人影片免费 | 中文字幕第一页在线播放 | 亚洲精品免费观看视频 | 91麻豆精品国产自产在线 | 婷婷丁香九月 | av电影中文字幕在线观看 | 久久国产精品99国产精 | 精品国产1区2区3区 国产欧美精品在线观看 | 麻豆一级视频 | 国产又粗又猛又黄又爽视频 | 2019av在线视频 | www.久久色| 玖玖玖在线 | 亚洲精品资源在线 | 久久一区91 | 在线亚洲午夜片av大片 | 国产精品久久久久久久av电影 | 亚洲黄色成人网 | 婷婷国产v亚洲v欧美久久 | 一级成人在线 | 午夜视频在线观看欧美 | 天堂入口网站 | 五月婷丁香 | 久久公开免费视频 | 国产午夜av | 91高清视频在线 | 99久久超碰中文字幕伊人 | 国产成人精品一区二区三区在线 | 在线黄色免费 | 中国一级片在线观看 | 亚洲欧美国内爽妇网 | 碰超在线97人人 | 一区二区三区动漫 | 9999精品免费视频 | 韩国av在线 | 一级免费观看 | 九九免费观看视频 | 亚洲狠狠 | 99综合久久| 天天爽天天碰狠狠添 | 伊人网综合在线观看 | 最新成人av| 91av视频在线观看免费 | 久久久久久网 | 欧美午夜性 | 996久久国产精品线观看 | 444av| 国产欧美最新羞羞视频在线观看 | 国产精品永久免费 | 97香蕉久久超级碰碰高清版 | 精品久久久久国产免费第一页 | av中文国产| 9999毛片| 久久国产精品久久精品国产演员表 | 国产一区免费 | 国产乱老熟视频网88av | 欧美激情综合五月色丁香小说 | 福利精品在线 | 亚洲精品乱码久久久久久蜜桃91 | 久草香蕉在线视频 | 黄色大片av | 91黄色在线看| 人人cao| 国产精品欧美久久久久三级 | 久久99精品视频 | 91麻豆视频 | 久久精品成人 | 精品福利网站 | 91精品影视 | 国产精品成人免费 | 免费a视频在线观看 | 97在线免费视频 | 亚洲va韩国va欧美va精四季 | av官网在线 | 99视频精品 | 伊人精品影院 | 91中文字幕永久在线 | 日韩精品极品视频 | 欧美成人影音 | 国产在线精品一区 | 亚洲综合小说 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 天天玩天天操天天射 | 狠狠网| 中文字幕123区 | 欧美日韩国产综合网 | 九九99| 91人人澡 | 欧美精品久久久久久久久久白贞 | 在线天堂日本 | 国产原厂视频在线观看 | 91丨九色丨国产在线观看 | 日本一区二区三区免费观看 | 日韩免费电影 | 看污网站 | 久久精品亚洲精品国产欧美 | 天天色天天干天天色 | 超级碰碰免费视频 | 亚洲经典精品 | 国产成人精品网站 | 国产69精品久久久久久久久久 | 久久免费看毛片 | 永久免费毛片在线观看 | 五月激情五月激情 | 正在播放五月婷婷狠狠干 | 日韩,精品电影 | 国产精品第72页 | 国产成人91| 色欧美成人精品a∨在线观看 | 欧美国产不卡 | 成人黄色大片在线观看 | 亚洲精品美女 | 欧美作爱视频 | 在线观看久 | 日日干视频 | 欧美 国产 视频 | 国产精品四虎 | 2018好看的中文在线观看 | 天天草天天干天天 | 国产在线97| 四虎影视av | av一级在线 | 亚洲精品毛片一级91精品 | 一级黄色片在线免费观看 | 91在线看视频 | av黄色免费看 | 天天久久综合 | 激情综合啪 | 亚洲va综合va国产va中文 | 99热精品国产 | 久久综合五月天婷婷伊人 | 韩日电影在线观看 | 久久精品这里都是精品 | 久久精品在线免费观看 | 欧洲黄色片 | 丁香六月网 | 黄色影院在线免费观看 | 国产一级久久久 | 久久99久久精品 | 久久9999久久免费精品国产 | 日韩av电影手机在线观看 | 中文字幕资源网在线观看 | 亚洲精品国精品久久99热一 | 日韩毛片精品 | 在线一区观看 | 五月婷婷视频在线 | 欧美国产一区在线 | 久久久www成人免费精品张筱雨 | 日韩在线观看视频中文字幕 | 中文字幕日韩精品有码视频 | 久久精品国产亚洲精品 | 久久久久久久国产精品影院 | 国产精品免费观看国产网曝瓜 | 在线免费色 | 国产高清免费视频 | 97免费视频在线 | 成年人电影免费在线观看 | 在线观看免费av网站 | 国模吧一区| 毛片无卡免费无播放器 | 五月天婷婷在线视频 |