青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

游戲引擎基礎(chǔ)(三)(內(nèi)存使用,特效和API)

3部份: 內(nèi)存使用,特效和API


關(guān)于內(nèi)存使用的思考
  讓我們想一想,在今天實(shí)際上是如何使用3D 顯卡內(nèi)存的以及在將來又會(huì)如何使用。 如今絕大多數(shù)3D顯卡處理32位像素顏色,8位紅色, 8位藍(lán)色,8 位綠色,和 8 位透明度。這些組合的紅,藍(lán)和綠256個(gè)色度,可以組成 16。7 百萬種顏色-- 那是你我可以在一個(gè)監(jiān)視器上看見的所有顏色。

  那么,游戲設(shè)計(jì)大師John Carmack 為什么要求 64 位顏色分辨率呢? 如果我們看不出區(qū)別,又有什么意義呢? 意義是: 比如說, 有十幾個(gè)燈光照射模型上的點(diǎn),顏色顏色各不相同。 我們?nèi)∧P偷淖畛躅伾缓笥?jì)算一個(gè)燈光的照射,模型顏色值將改變。 然后我們計(jì)算另外的一個(gè)燈光, 模型顏色值進(jìn)一步改變。 這里的問題是,因?yàn)轭伾抵挥?/span>8位,在計(jì)算了4個(gè)燈光之后,8位的顏色值將不足以給我們最后的顏色較好的分辨率和表現(xiàn)。分辨率的不足是由量化誤差導(dǎo)致的,本質(zhì)原因是由于位數(shù)不足引起的舍入誤差。

  你能很快地用盡位數(shù),而且同樣地,所有的顏色被清掉。每顏色16 32 位,你有一個(gè)更高分辨率,因此你能夠反復(fù)著色以適當(dāng)?shù)乇憩F(xiàn)最后的顏色。這樣的顏色深度很快就能消耗大量的存儲(chǔ)空間。我們也應(yīng)提到整個(gè)顯卡內(nèi)存與紋理內(nèi)存。這里所要說的是,每個(gè)3D 顯卡實(shí)際只有有限的內(nèi)存,而這些內(nèi)存要存儲(chǔ)前端和后端緩沖區(qū),Z 緩沖區(qū),還有所有的令人驚奇的紋理。最初的 Voodoo1 顯卡只有2MB顯存,后來 Riva TNT提高到16MB顯存。然后 GeForce ATI Rage32MB顯存, 現(xiàn)在一些 GeForce 2 4的顯卡和 Radeons 帶有 64MB 128MB 的顯存。 這為什么重要? 好吧,讓我們看一些數(shù)字

  比如你想讓你的游戲看起來最好,所以你想要讓它以32位屏幕, 1280x1024分辨率和32 Z- 緩沖跑起來。 好,屏幕上每個(gè)像素4個(gè)字節(jié),外加每個(gè)像素4字節(jié)的Z-緩沖,因?yàn)槎际敲肯袼?/span>32位。我們有1280x1024 個(gè)像素也就是 1,310720個(gè)像素?;谇岸司彌_區(qū)和Z-緩沖區(qū)的字節(jié)數(shù),這個(gè)數(shù)字乘以8,是 10,485,760字節(jié)。包括一個(gè)后端緩沖區(qū),這樣是 1280x1024x12, 也就是 15,728,640 字節(jié), 15MB。 在一個(gè) 16MB 顯存的顯卡上,就只給我們剩下1MB 來存儲(chǔ)所有的紋理。 現(xiàn)在如果最初的紋理是真32 位或 4字節(jié)寬,那么我們每幀能在顯卡上存儲(chǔ) 1MB/4字節(jié)每像素 = 262,144個(gè)像素。這大約是4 個(gè) 256x256 的紋理頁(yè)面。

  很清楚,上述例子表明,舊的16MB 顯卡沒有現(xiàn)代游戲表現(xiàn)其絢麗畫面所需要的足夠內(nèi)存。很明顯,在它繪制畫面的時(shí)候,我們每幀都必須重新把紋理裝載到顯卡。實(shí)際上,設(shè)計(jì)AGP總線的目的就是完成這個(gè)任務(wù),不過, AGP 還是要比 3D 掀卡的幀緩沖區(qū)慢,所以你會(huì)受到性能上的一些損失。很明顯,如果紋理由32位降低到16位,你就能夠通過AGP以較低的分辨率傳送兩倍數(shù)量的紋理。如果你的游戲以每個(gè)像素比較低的色彩分辨率跑, 那么就可以有更多的顯示內(nèi)存用來保存常用的紋理 (稱為高速緩存紋理) 但實(shí)際上你永遠(yuǎn)不可能預(yù)知使用者將如何設(shè)置他們的系統(tǒng)。如果他們有一個(gè)在高分辨率和顏色深度跑的顯卡,那么他們將會(huì)更可能那樣設(shè)定他們的顯卡。



  我們現(xiàn)在開始講霧,它是某種視覺上的效果。如今絕大多數(shù)的引擎都能處理霧, 因?yàn)殪F非常方便地讓遠(yuǎn)處的世界淡出視野,所以當(dāng)模型和場(chǎng)景地理越過觀察體后平面進(jìn)入視覺范圍內(nèi)時(shí),你就不會(huì)看見它們突然從遠(yuǎn)處跳出來了。 也有一種稱為體霧的技術(shù)。這種霧不是隨物體離照相機(jī)的距離而定,它實(shí)際上是一個(gè)你能看見的真實(shí)對(duì)象,并且可以穿越它,從另外一側(cè)出去 -- 當(dāng)你在穿越對(duì)象的時(shí)候,視覺上霧的可見程度隨著變化。想象一下穿過云團(tuán) -- 這是體霧的一個(gè)完美例子。體霧的一些好的實(shí)現(xiàn)例子是Quake III一些關(guān)卡中的紅色霧,或新的Rogue Squadron II Lucas Arts GameCube 版本。其中有一些是我曾經(jīng)見過的最好的云--大約與你能看見的一樣真實(shí)。

  在我們討論霧化的時(shí)候,可能是簡(jiǎn)短介紹一下 Alpha 測(cè)試和紋理Alpha混合的好時(shí)機(jī)。當(dāng)渲染器往屏幕上畫一個(gè)特定像素時(shí),假定它已經(jīng)通過 Z- 緩沖測(cè)試 (在下面定義),我們可能最后做一些Alpha測(cè)試。我們可能發(fā)現(xiàn)為了顯示像素后面的某些東西,像素需要透明繪制。這意味著我們必須取得像素的已有值,和我們新的像素值進(jìn)行混和,并把混合結(jié)果的像素值放回原處。這稱為讀-修改-寫操作,遠(yuǎn)比正常的像素寫操作費(fèi)時(shí)。

  你可以用不同類型的混合,這些不同的效果被稱為混合模式。直接Alpha混合只是把背景像素的一些百分比值加到新像素的相反百分比值上面。還有加法混合,將舊像素的一些百分比,和特定數(shù)量(而不是百分比)的新像素相加。 這樣效果會(huì)更加鮮明。 (Kyle's Lightsaber Jedi Knight II 中的效果)。

  每當(dāng)廠商提供新的顯卡時(shí),我們可以得到硬件支持的更新更復(fù)雜的混合模式,從而制作出更多更眩目的效果。GF3+4和最近的Radeon顯卡提供的像素操作,已經(jīng)到了極限。


模板陰影與深度測(cè)試
  用模板產(chǎn)生陰影效果,事情就變得復(fù)雜而昂貴了。這里不討論太多細(xì)節(jié)(可以寫成一篇單獨(dú)的文章了),其思想是,從光源視角繪制模型視圖,然后用這個(gè)把多邊形紋理形狀產(chǎn)生或投射到受影響的物體表面。

  實(shí)際上你是在視野中投射將會(huì)在其他多邊形上面的光體。最后你得到看似真實(shí)的光照,甚至帶有視角在里面。因?yàn)橐獎(jiǎng)討B(tài)創(chuàng)建紋理,并對(duì)同一場(chǎng)景進(jìn)行多遍繪制,所以這很昂貴。

  你能用眾多不同方法產(chǎn)生陰影,情形時(shí)常是這樣一來,渲染質(zhì)量與產(chǎn)生效果所需要的渲染工作成比例。有所謂的硬陰影或軟陰影之分,而后者較好,因?yàn)樗鼈兏訙?zhǔn)確地模仿陰影通常在真實(shí)世界的行為。 通常有一些被游戲開發(fā)者偏愛的足夠好的方法。如要更多的了解陰影,請(qǐng)參考 Dave Salvator 3D 流水線一文。


深度測(cè)試
  現(xiàn)在我們開始討論深度測(cè)試, 深度測(cè)試丟棄隱藏的像素,過度繪制開始起作用。過度繪制非常簡(jiǎn)單在一幀中,你數(shù)次繪制一個(gè)像素位置。它以3D場(chǎng)景中Z(深度)方向上存在的元素?cái)?shù)量為基礎(chǔ),也被稱為深度復(fù)雜度。如果你常常太多的過度繪制, -- 舉例來說, 符咒的眩目視覺特效,就象Heretic II,能讓你的幀速率變得很糟糕。當(dāng)屏幕上的一些人們彼此施放符咒時(shí),Heretic II設(shè)計(jì)的一些最初效果造成的情形是,他們?cè)谝粠袑?duì)屏幕上每個(gè)相同的像素畫了40! 不用說,這必須調(diào)整,尤其是軟件渲染器,除了將游戲降低到象是滑雪表演外,它根本不能處理這樣的負(fù)荷。深度測(cè)試是一種用來決定在相同的像素位置上哪些對(duì)象在其它對(duì)象前面的技術(shù),這樣我們就能夠避免繪制那些隱藏的對(duì)象。

  看著場(chǎng)景并想想你所看不見的。 換句話說,是什么在其他場(chǎng)景對(duì)象前面,或者隱藏了其他場(chǎng)景對(duì)象? 是深度測(cè)試作出的這個(gè)決定。

  我將進(jìn)一步解釋深度深度如何幫助提高幀速率。想像一個(gè)很瑣細(xì)的場(chǎng)景,大量的多邊形 (或像素)位于彼此的后面,在渲染器獲得他們之間沒有一個(gè)快速的方法丟棄他們。對(duì)非Alpha混合的多邊形分類排序( Z- 方向上),首先渲染離你最近的那些多邊形,優(yōu)先使用距離最近的像素填充屏幕。所以當(dāng)你要渲染它們后面的像素(由Z或者深度測(cè)試決定)時(shí),這些像素很快被丟棄,從而避免了混合步驟并節(jié)省了時(shí)間。如果你從后到前繪制,所有隱藏的對(duì)象將被完全繪制,然后又被其他對(duì)象完全重寫覆蓋。場(chǎng)景越復(fù)雜,這種情況就越糟糕,所以深度測(cè)試是個(gè)好東西。


抗鋸齒
  讓我們快速的看一下抗鋸齒。當(dāng)渲染單個(gè)多邊形時(shí),3D 顯卡仔細(xì)檢查已經(jīng)渲染的,并對(duì)新的多邊形的邊緣進(jìn)行柔化,這樣你就不會(huì)得到明顯可見的鋸齒形的像素邊緣。兩種技術(shù)方法之一通常被用來處理。 第一種方法是單個(gè)多邊形層次,需要你從視野后面到前面渲染多邊形,這樣每個(gè)多邊形都能和它后面的進(jìn)行適當(dāng)?shù)幕旌?。如果不按序進(jìn)行渲染,最后你會(huì)看見各種奇怪的效果。在第二種方法中,使用比實(shí)際顯示更大的分辯率來渲染整幅幀畫面,然后在你縮小圖像時(shí),尖銳的鋸齒形邊緣就混合消失了。這第二種方法的結(jié)果不錯(cuò),但因?yàn)轱@卡需要渲染比實(shí)際結(jié)果幀更多的像素,所以需要大量的內(nèi)存資源和很高的內(nèi)存帶寬。

  多數(shù)新的顯卡能很好地處理這些,但仍然有多種抗鋸齒模式可以供你選擇,因此你可以在性能和質(zhì)量之間作出折衷。對(duì)於當(dāng)今流行的各種不同抗鋸齒技術(shù)的更詳細(xì)討論請(qǐng)參見Dave Salvator 3D 流水線一文。


頂點(diǎn)與像素著色
  在結(jié)束討論渲染技術(shù)之前,我們快速的說一下頂點(diǎn)和像素著色,最近它們正引起很多關(guān)注。頂點(diǎn)著色是一種直接使用顯卡硬件特征的方式,不使用API。舉例來說,如果顯卡支持硬件 T & L ,你可以用DirectXOpenGL編程,并希望你的頂點(diǎn)通過 T & L 單元 (因?yàn)檫@完全由驅(qū)動(dòng)程序處理,所以沒有辦法確信),或者你直接利用顯卡硬件使用頂點(diǎn)著色。它們?cè)试S你根據(jù)顯卡自身特征進(jìn)行特別編碼,你自己特殊的編碼使用T & L 引擎,以及為了發(fā)揮你的最大優(yōu)勢(shì),顯卡必須提供的其他別的特征。 事實(shí)上,現(xiàn)在nVidia ATI 在他們大量的顯卡上都提供了這個(gè)特征。

  不幸的是,顯卡之間表示頂點(diǎn)著色的方法并不一致。你不能象使用DirectX或者OpenGL 那樣,為頂點(diǎn)著色編寫一次代碼就可以在任何顯卡上運(yùn)行,這可是個(gè)壞消息。然而,因?yàn)槟阒苯雍惋@卡硬件交流,它為快速渲染頂點(diǎn)著色可能生成的效果提供最大的承諾。( 如同創(chuàng)造很不錯(cuò)的特效 -- 你能夠使用頂點(diǎn)著色以API沒有提供的方式影響事物)。事實(shí)上,頂點(diǎn)著色正在真的將3D 圖形顯示卡帶回到游戲機(jī)的編碼方式,直接存取硬件,最大限度利用系統(tǒng)的必須知識(shí),而不是依靠API來為你做一切。對(duì)一些程序員來說,會(huì)對(duì)這種編碼方式感到吃驚,但這是進(jìn)步代價(jià)。

  進(jìn)一步闡述,頂點(diǎn)著色是一些在頂點(diǎn)被送到顯卡渲染之前計(jì)算和運(yùn)行頂點(diǎn)效果程序或者例程。你可以在主CPU上面用軟件來做這些事情,或者使用顯卡上的頂點(diǎn)著色。 為動(dòng)畫模型變換網(wǎng)格是頂點(diǎn)程序的主選。

  像素著色是那些你寫的例程,當(dāng)繪制紋理時(shí),這些例程就逐個(gè)像素被執(zhí)行。你有效地用這些新的例程推翻了顯卡硬件正常情況做的混合模式運(yùn)算。這允許你做一些很不錯(cuò)的像素效果, 比如,使遠(yuǎn)處的紋理模糊,添加炮火煙霧, 產(chǎn)生水中的反射效果等。一旦 ATI nVidia 能實(shí)際上就像素著色版本達(dá)成一致( DX9's 新的高級(jí)陰影語言將會(huì)幫助促進(jìn)這一目標(biāo)), 我一點(diǎn)不驚訝DirectX OpenGL采用Glide的方式-- 有幫助開始, 但最終不是把任何顯卡發(fā)揮到極限的最好方法。我認(rèn)為我會(huì)有興趣觀望將來。


最后(In Closing...
  最終,渲染器是游戲程序員最受評(píng)判的地方。在這個(gè)行業(yè),視覺上的華麗非常重要,因此它為知道你正在做的買單。對(duì)于渲染器程序員,最壞的因素之一就是3D 顯卡工業(yè)界變化的速度。一天,你正在嘗試使透明圖像正確地工作;第二天 nVidia 正在做頂點(diǎn)著色編程的展示。而且發(fā)展非???,大致上,四年以前為那個(gè)時(shí)代的 3D 顯卡寫的代碼現(xiàn)在已經(jīng)過時(shí)了,需要全部重寫。 甚至John Carmack 這樣描述過,他知道四年以前為充分發(fā)揮那個(gè)時(shí)期顯卡的性能所寫的不錯(cuò)的代碼,如今很平凡 -- 因此他產(chǎn)生了為每個(gè)新的id項(xiàng)目完全重寫渲染器的欲望。Epic Tim Sweeney贊同 -- 這里是去年他給我的評(píng)論:

  我們已經(jīng)足足花費(fèi)了9個(gè)月時(shí)間來更換所有的渲染代碼。最初的 Unreal 被設(shè)計(jì)為軟件渲染和后來擴(kuò)展為硬件渲染。下一代引擎被設(shè)計(jì)為 GeForce 及更好的圖形顯示卡,且多邊形吞吐量是Unreal Tournament100倍。

  這需要全部替換渲染器。很幸運(yùn),該引擎模塊化程度足夠好,我們可以保持引擎的其余部分編輯器,物理學(xué),人工智能,網(wǎng)絡(luò)--不改動(dòng),盡管我們一直在以許多方式改進(jìn)這些部分。

  搭配長(zhǎng)篇文章的短篇報(bào)導(dǎo)(Sidebar):API -- 祝福和詛咒
  那么什么是API? 它是應(yīng)用程序編程接口,將不一致的后端用一致的前端呈現(xiàn)出來。舉例來說,很大程度上每種3D顯示卡的3D實(shí)現(xiàn)方式都有所差別。然而,他們?nèi)慷汲尸F(xiàn)一個(gè)一致的前端給最終使用者或者程序員,所以他們知道他們?yōu)?/span>X 3D顯示卡寫的代碼將會(huì)在Y 3D顯示卡上面有相同的結(jié)果。好吧,不管怎樣理論上是那樣。 大約在三年以前這可能是相當(dāng)真實(shí)的陳述,但自那以后,在nVidia 公司的引領(lǐng)下,3D顯卡行業(yè)的事情發(fā)生了變化。

  如今在PC領(lǐng)域,除非你正計(jì)劃建造自己的軟件光柵引擎,使用CPU來繪制你所有的精靈,多邊形和粒子 -- 而且人們?nèi)匀辉谶@樣做。跟Unreal一樣,Age of Empires II: Age of Kings有一個(gè)優(yōu)秀的軟件渲染器否則你將使用兩種可能的圖形APIOpenGL或者 DirectX 之一。OpenGL是一種真正的跨平臺(tái)API (使用這種API寫的軟件可以在LinuxWindowsMacOS上運(yùn)行。) 而且有多年的歷史了,為人所熟知,但也開始慢慢地顯示出它的古老。 大約在四年以前,定義OpenGL驅(qū)動(dòng)特征集一直是所有顯示卡廠商工作的方向。

  然而,一旦在目標(biāo)達(dá)成以后,沒有預(yù)先制定特征工作方向的路線圖,這時(shí)候,所有的顯卡開發(fā)商開始在特征集上分道揚(yáng)鑣,使用OpenGL擴(kuò)展。

  3dfx 創(chuàng)造了T- 緩沖。 nVidia 努力尋求硬件變換和光照計(jì)算。Matrox努力獲取凹凸貼圖。等等。 我以前說過的一句話,"過去幾年以來,3D顯示卡領(lǐng)域的事情發(fā)生了變化。"委婉地說明了這一切。

  無論如何,另一個(gè)可以選擇的API DirectX。這受Microsoft公司控制,且在PC Xbox 上被完美地支持。由于明顯的原因,DirectX 沒有Apple或者 Linux 版本。因?yàn)?/span>Microsoft控制著 DirectX,大體上它容易更好地集成在Windows里面。

  OpenGLDirectX之間的基本差別是前者由社區(qū)擁有,而后者由Microsoft擁有。如果你想要 DirectX 為你的 3D 顯示卡支持一個(gè)新的特征,那么你需要游說微軟,希望采納你的愿望,并等待新的 DirectX發(fā)行版本。對(duì)于OpenGL,由于顯示卡制造商為3D顯示卡提供驅(qū)動(dòng)程序,你能夠通過OpenGL擴(kuò)展立即獲得顯示卡的新特征。這是好,但作為游戲開發(fā)者,當(dāng)你為游戲編碼的時(shí)候,你不能指望它們很普遍。它們可能讓你的游戲速度提升50%,但你不能要求別人有一塊GeForce 3 來跑你的游戲。好吧,你可以這么做,但如果你想來年還在這個(gè)行業(yè)的話,這是個(gè)相當(dāng)愚蠢的主意。

  這是對(duì)這個(gè)問題極大的簡(jiǎn)單化,對(duì)我所有描述的也有各種例外情況,但這里一般的思想是很確實(shí)的。對(duì)于DirectX ,在任何既定時(shí)間你容易確切地知道你能從顯示卡獲得的特征,如果一個(gè)特征不能獲得,DirectX 將會(huì)用軟件模擬它(也不總是一件好事情,因?yàn)檫@樣有時(shí)侯非常的慢,但那是另外一回事)。對(duì)于OpenGL,你可以更加貼近顯示卡的特征,但代價(jià)是不能確定將會(huì)獲得的準(zhǔn)確特征。

posted on 2007-12-04 13:17 夢(mèng)在天涯 閱讀(2537) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Game/OpenGL

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計(jì)

  • 隨筆 - 461
  • 文章 - 4
  • 評(píng)論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1812158
  • 排名 - 5

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              国产一区二区三区日韩欧美| 麻豆freexxxx性91精品| 欧美激情女人20p| 欧美激情视频给我| 宅男66日本亚洲欧美视频| 91久久在线视频| 国产精品稀缺呦系列在线| 欧美主播一区二区三区美女 久久精品人 | 日韩一区二区精品葵司在线| 亚洲乱码精品一二三四区日韩在线| 欧美gay视频| 欧美在线精品一区| 欧美jizz19hd性欧美| 亚洲一区二区精品在线观看| 欧美一区二区免费| 亚洲伦理在线观看| 久久久亚洲影院你懂的| av不卡在线观看| 亚洲国产精品久久久久秋霞影院 | 另类成人小视频在线| 9l国产精品久久久久麻豆| 欧美资源在线观看| 午夜精品一区二区三区在线播放| 老司机久久99久久精品播放免费 | 男男成人高潮片免费网站| 亚洲一级二级在线| 欧美激情一区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品超碰97尤物18| 最新成人av网站| 一区二区日韩免费看| 欧美丰满高潮xxxx喷水动漫| 美腿丝袜亚洲色图| 亚洲高清不卡一区| 免费国产自线拍一欧美视频| 蜜臀99久久精品久久久久久软件| 狠狠色狠狠色综合日日91app| 亚洲一区二区三区四区视频 | 欧美一区二区三区免费视| 欧美亚洲一区三区| 黑人一区二区| 欧美激情第8页| 中文国产一区| 免费成人高清视频| 一区二区三区日韩在线观看| 欧美日韩国产免费观看| 亚洲在线中文字幕| 老鸭窝亚洲一区二区三区| 日韩亚洲精品在线| 国产亚洲精品久久久久久| 久久疯狂做爰流白浆xx| 在线免费观看日韩欧美| 欧美日韩精品在线视频| 午夜亚洲影视| 亚洲精品专区| 麻豆视频一区二区| 亚洲欧美成人在线| 亚洲欧洲中文日韩久久av乱码| 欧美视频在线免费看| 欧美成人自拍视频| 久久xxxx精品视频| 亚洲午夜电影在线观看| 欧美高清不卡| 欧美成人免费全部观看天天性色| 一区二区免费在线观看| 日韩视频在线一区| 亚洲第一狼人社区| 在线欧美一区| 国产一区免费视频| 国产视频在线观看一区二区| 欧美午夜欧美| 国产精品日韩一区| 国产日韩av在线播放| 国产欧美日韩视频| 国产无一区二区| 国产日韩一区二区三区在线播放| 国产精品区免费视频| 国产午夜精品全部视频在线播放 | 亚洲国产日韩一区二区| 亚洲高清色综合| 亚洲美女黄色| 亚洲影院色无极综合| 午夜视频精品| 久久视频在线免费观看| 欧美不卡三区| 国产日韩欧美精品在线| 极品日韩av| 亚洲综合精品自拍| 久久久综合视频| 亚洲欧洲视频| 欧美一区二区在线免费观看| 久久不射中文字幕| 亚洲国产精品www| 亚洲午夜在线观看| 免费精品99久久国产综合精品| 欧美日韩一区精品| 亚洲人成人99网站| 久久久久久夜精品精品免费| 一本色道88久久加勒比精品| 久久香蕉精品| 伊人精品视频| 久久久激情视频| 亚洲一区二区三区在线| 欧美精品电影在线| 亚洲黄色片网站| 欧美成人精品一区| 久久人体大胆视频| 伊人久久久大香线蕉综合直播| 亚洲欧美国产日韩天堂区| 亚洲日本va午夜在线电影| 久久国产精品99国产精| 国产午夜精品一区二区三区视频 | 亚洲九九精品| 欧美日韩一区二区视频在线| 日韩亚洲欧美一区| 亚洲人www| 欧美特黄一区| 久久黄金**| 免费亚洲电影在线观看| 亚洲精品乱码久久久久久久久| 亚洲第一福利视频| 欧美日本一道本| 羞羞视频在线观看欧美| 久久九九免费视频| 亚洲人成7777| 欧美一区二区三区免费在线看 | av成人黄色| 欧美尤物巨大精品爽| 亚洲精品在线免费| 午夜精品久久久久久久99水蜜桃| 亚洲视频日本| 日韩午夜在线| 久久久噜噜噜久久中文字免| 一区二区三区国产| 久久www成人_看片免费不卡| 日韩亚洲在线观看| 久久久精品日韩欧美| 亚洲在线中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整 | 玖玖综合伊人| 久久久99久久精品女同性| 欧美激情影音先锋| 欧美激情 亚洲a∨综合| 国内精品久久国产| 亚洲免费在线| 久久高清一区| 国产三级精品三级| 午夜精品久久久久久久99黑人| 日韩一级片网址| 久久精品国产久精国产思思| 久久免费视频在线| 136国产福利精品导航网址应用| av72成人在线| 久久亚洲综合网| 欧美成人精品影院| 亚洲人体一区| 欧美色图麻豆| 亚洲自拍偷拍麻豆| 美女主播视频一区| 亚洲国产成人在线播放| 欧美精品久久久久a| 国产精品99久久99久久久二8 | 久久青草福利网站| 亚洲日本中文字幕免费在线不卡| 美女黄色成人网| 国产婷婷色综合av蜜臀av| 性色av一区二区三区在线观看| 另类图片国产| 亚洲欧美电影院| 在线日韩av片| 国产精品高清一区二区三区| 欧美中文字幕在线| 夜色激情一区二区| 久久久亚洲影院你懂的| 亚洲午夜视频在线观看| 国产色综合久久| 国产精品户外野外| 欧美日韩激情网| 久久久久久电影| 欧美一区二区私人影院日本| 99riav久久精品riav| 欧美激情中文字幕乱码免费| 久久精品论坛| 久久久久国产精品午夜一区| 亚洲伊人网站| 一区二区激情| 亚洲一区视频在线| 国产精品99久久久久久人| 在线午夜精品自拍| 亚洲午夜视频在线观看| 亚洲欧美偷拍卡通变态| 亚洲影视中文字幕| 亚洲一区二区精品视频| 午夜精品一区二区三区四区| 午夜精品久久久久久久男人的天堂| 一区二区三区高清视频在线观看| 亚洲午夜精品一区二区| 久久成人av少妇免费| 美女主播一区| 亚洲理论在线|