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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OSG开发概览

發(fā)布時(shí)間:2025/3/8 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OSG开发概览 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1?OSG基礎(chǔ)知識(shí)

??OSGOpen?Scene?Graphic?的縮寫,OSG1997年誕生于以為滑翔機(jī)愛好者之手,Don?burns??為了對滑翔機(jī)的飛行進(jìn)行模擬,對openGL的庫進(jìn)行了封裝,osg的雛形就這樣誕生了,1998Don?burns?遇到了同樣喜歡滑翔機(jī)和計(jì)算機(jī)圖形學(xué)的Robert?Osfield?,從此Robert?Osfield加入了osg小組的開發(fā)并一直擔(dān)任開發(fā)小組的組長。

??OSG不但有openGL的跨平臺(tái)的特性和較高的渲染性能,還提供了一系列可供3D程序開發(fā)者使用的功能接口,包括2D3D數(shù)據(jù)文件的加載、紋理字體支持、細(xì)節(jié)層次(LOD)控制、多線程數(shù)據(jù)分頁處理等。OSG廣泛應(yīng)用于飛行仿真等領(lǐng)域,包括Flightgear,及美國軍方投資的仿真項(xiàng)目Delta3d

1.1?計(jì)算機(jī)繪圖的基本知識(shí)

??首先要先回顧一下,在顯示世界中,我們是如何作畫的。

??在現(xiàn)實(shí)世界中,繪制一副畫,我們需要的東西就是彩筆、白紙。通過選擇不同顏色的彩筆,在白紙上移動(dòng),就可以將白紙上的不同的點(diǎn)描繪上不同的顏色,而所有這些點(diǎn)連接起來,從人的宏觀視野看來,就構(gòu)成了一副對人有意義的畫作。

??類比到計(jì)算機(jī)的實(shí)際中來。在計(jì)算機(jī)的世界里。作畫的過程又是怎樣的呢?

??同樣,繪制虛擬的圖像,也需要“彩筆”和“白紙”。在計(jì)算機(jī)的世界里,“彩筆”就是Direct3D之類的繪圖API函數(shù),而“白紙”就是存儲(chǔ)數(shù)據(jù)的內(nèi)存。我們在內(nèi)存中劃分出一塊區(qū)域,其中的數(shù)據(jù)就是對一個(gè)真實(shí)世界的模擬。一個(gè)數(shù)據(jù)就描述真實(shí)世界中一個(gè)點(diǎn)的屬性。在我們作畫前,他們都只有一個(gè)初始值,就像白紙?jiān)谧鳟嬊爸挥邪咨粯印6谧鳟嫼?#xff0c;每一個(gè)數(shù)據(jù)都有了獨(dú)特的意義,將整片數(shù)據(jù)連接在一起看,就是一副有意義的圖景。作畫的過程就是對內(nèi)存中的每一個(gè)數(shù)據(jù)進(jìn)行賦值的過程,相當(dāng)于用彩筆給白紙上的一個(gè)點(diǎn)進(jìn)行著色。選擇不同的API函數(shù),可以畫出不同的形狀。

1.2?OSG程序框架

??一個(gè)最簡單的OSG程序如下所示,當(dāng)然在如果是在VS下面進(jìn)行編輯的話要進(jìn)行一些設(shè)置,要設(shè)置OSGlibinclude目錄。


1 #include<osgDB/ReadFile>2 3 #include<osgViewer/Viewer>4 5 void main()6 7 {8 9 osgViewer::Viewer viewer; 10 11 viewer.setSceneData(osgDB::readNodeFile("glider.osg")); 12 13 viewer.realize(); 14 15 viewer.run(); 16 17 } 18

osgViewer::Viewer?viewer 申請了一個(gè)viewer,可以理解為申請一個(gè)觀察器,該觀察可以查看模型

viewer.setSceneData(osgDB::readNodeFile("glider.osg")) 這里是設(shè)置觀察器Viewer中的數(shù)據(jù),換句話說,有了觀察器,就可以添加模型了

viewer.realize() 這個(gè)語句表達(dá)的意思非常多,事實(shí)上可以定位到Viewer.cpprealize函數(shù),會(huì)發(fā)現(xiàn)里面的操作非常多,可以理解為這是在渲染前的最后一步,會(huì)檢查和設(shè)置圖形上下文,屏幕啊什么的,會(huì)讓你以前的設(shè)置,對Viewer的設(shè)置都生效。

viewer.run(); 這一句的意思就是渲染了,如果要解釋它的意思的話,可以用下面的幾個(gè)語句來替代:

while(!viewer.done()){viewer.frame();}.意思也就是說,只要viewer沒有結(jié)束,那么就繪制它的每一個(gè)幀[frame]。

1.3?OSG簡單模型控制

1.3.1?添加模型

OSG當(dāng)中模型是使用osg::Grouposg::Node來裝載在一起的,比如同時(shí)需要加入兩個(gè)模型,模型A了模型BAB各自是一個(gè)NODE,那么可以使用以下語句來做到,首先使用一個(gè)Group,然后Group->addChild(A),同樣,之后要Group->addChild(B)。然后再把Group添加到viewer當(dāng)中就可以了。如圖3.1所示AB之間的關(guān)系。在這里要申明的是NODEGroup的父類,在類中都有相應(yīng)的方法可以轉(zhuǎn)到對方,故NodeGroup

是通用的,Node也可以被當(dāng)作Group來用。

?

?

圖?31?AB都加入到Group當(dāng)中

簡單示例代碼如下:


1 #include<osgDB/ReadFile>2 3 #include<osgViewer/Viewer>4 5 #include<osg/Node>6 7 void main()8 9 { 10 11 osgViewer::Viewer viewer; 12 13 osg::Group * root=new osg::Group(); 14 15 root->addChild(osgDB::readNodeFile("glider.osg")); 16 17 root->addChild(osgDB::readNodeFile("osgcool.osg")); 18 19 viewer.setSceneData(root); 20 21 viewer.realize(); 22 23 viewer.run(); 24 25 } 26

則運(yùn)行結(jié)果為:

?

圖?32示例運(yùn)行結(jié)果

1.3.2?刪除結(jié)點(diǎn)

如果我們不需要某個(gè)結(jié)點(diǎn)了,比如圖3.2我們看那個(gè)小飛機(jī)很不爽,我們想把它從場景中刪除掉。不知道于某種目的,反正現(xiàn)在要?jiǎng)h除掉,可能是開始想看見它現(xiàn)在不想看見它了。可以通過removeChild方法,除多個(gè)孩子也可以通過removeChildren方法,里面的參數(shù)有些需要索引值,有些需要結(jié)點(diǎn)本身的指針,讀者可以自己嘗試。這里要注意的是,如果要?jiǎng)h除一個(gè)結(jié)點(diǎn),那么該結(jié)點(diǎn)下的所有結(jié)點(diǎn)都會(huì)被刪除。如果一個(gè)結(jié)點(diǎn)被加入到一個(gè)組中兩次,那么這兩次是分別存在的,刪除一次還有另一次。刪除操作不能說不是個(gè)危險(xiǎn)的操作,有些時(shí)候,尤其在有移動(dòng)結(jié)點(diǎn)等等混在一起時(shí),刪除操作有時(shí)候會(huì)發(fā)生一些比較奇怪的現(xiàn)象。在內(nèi)存映象當(dāng)中,如果一個(gè)模型被讀取一次,而用了多次,那么所占用的空間是不會(huì)改變的。

1.3.3?隱藏模型與結(jié)點(diǎn)開關(guān)

??隱藏模型

???隱藏模型其實(shí)模型仍在渲染當(dāng)中,因此損耗并未減少,只不過隱藏了而已,隱藏的確不是個(gè)什么好操作,但是有時(shí)候?qū)π∧P痛_實(shí)也很實(shí)用。node->setNodeMask可以設(shè)置隱藏與顯示。

??節(jié)點(diǎn)開關(guān)

OSG當(dāng)中,專門有一個(gè)類來負(fù)責(zé)打開與關(guān)閉結(jié)點(diǎn),該類名為osg::Switch,里面有相應(yīng)的方法來控制它所管理的結(jié)點(diǎn)的打開與關(guān)閉。

兩個(gè)方法都能控制模型的顯示和隱藏,區(qū)別在于隱藏模型方法不會(huì)讓模型在內(nèi)存中消失,這樣對于小的物體頻繁的調(diào)用會(huì)節(jié)省一些時(shí)間,而對于有些大的模塊在用一次以后可能很久再用第二次,這個(gè)時(shí)候用節(jié)點(diǎn)開關(guān)可以將模型銷毀,再次使用再調(diào)入內(nèi)存,以防止占用更多的資源。

1.3.4?超級指針

超級指針的機(jī)制,其實(shí)就是引用一個(gè)計(jì)數(shù)器,這個(gè)計(jì)數(shù)器會(huì)計(jì)算這個(gè)箱子被引用的次數(shù),被別人引用一次這個(gè)計(jì)數(shù)器增加一,別人不用一次,即:釋放一次,則計(jì)數(shù)器減一。當(dāng)減至0時(shí),內(nèi)存放掉不用。

們來看使用一個(gè)Node的三種方法,對比一下:

??//方法一,最好的方法,十分安全,也是OSG中最常用的方法,多少版本它都沒變

osg::ref_ptr<osg::Node>aNode(new?osg::Node());

group->addChild(aNode.get());

??//方法二,也是非常好的方法,有時(shí)候不適用,但也十分安全

group->addChild(new?osg::Node());

??//方法三,非常危險(xiǎn),但是令許多人無故鋌而走險(xiǎn)的方法

osg::Node*anotherNode=new?osg::Node();

group->addChild(anotherNode);

方法一:在new::Node()時(shí)申請了一個(gè)Node的資源,這時(shí)在堆內(nèi)引用該Node的計(jì)算器會(huì)被置1。在group->addChild(aNode.get())時(shí)又引用了一次,會(huì)再加1。在這兩次引用都結(jié)束時(shí),Node的資源就會(huì)被釋放。

方法二:這個(gè)方法也是很實(shí)用的,但是無法引出Node的指針,也許在別處可以用到,事實(shí)上會(huì)經(jīng)常用到。如果已經(jīng)這樣做了,得到Node指針也不是不可以的,可以使用NodeVisitor來得到Node的指針,也可以使用findChild方法來做這件事。

方法三:這個(gè)應(yīng)該是最常用,但是最爛的方法了,原因在于如果在osg::Node*antherode=new?osg::Node()之后發(fā)生了錯(cuò)誤,拋出了異常,誰來釋放Node所占用的資源呢。而這個(gè)異常在后面被捕獲,程序正常的走下去,而內(nèi)存卻沒有被正常的放掉。

1.3.5?移動(dòng)/旋轉(zhuǎn)/縮放模型

移動(dòng)/旋轉(zhuǎn)/縮放其實(shí)都是對矩陣進(jìn)行操作,在OSG當(dāng)中,矩陣可以當(dāng)作一個(gè)特殊的結(jié)點(diǎn)加入到root當(dāng)中,而矩陣下也可以另入結(jié)點(diǎn),而加入的結(jié)點(diǎn)就會(huì)被這個(gè)矩陣處理過,比如移動(dòng)過/旋轉(zhuǎn)過/縮放過。在OSG中控制矩陣的類為osg::MatrixTransform

??移動(dòng)

osg::Matrix::translate

??旋轉(zhuǎn)

osg::Matrix::rotate

??縮放

osg::Matrix::scale

1.4?基本幾何圖元

1.4.1?基本繪制方法

首先來看一些OSG中的最基本的繪制路數(shù)。如果我們要繪制一個(gè)正方形,繪制有色彩,未貼圖。首先我們必須要申請一個(gè)osg::Geometry,把這個(gè)Geometry加入到Geode就可以了。在這個(gè)Geometry中要設(shè)置一些元素,最基本的是頂點(diǎn)Vertex,顏色color,以及頂點(diǎn)的關(guān)聯(lián)方式和法線normal.就可以了。如圖3.3所示。

?

?

圖?33幾何體繪制過程

1.4.2?可繪制的圖元

所有可繪制的圖元包括:

??POINTS[點(diǎn)]

??LINES[]

??LINE_STRIP[線帶]

??LINE_LOOP[閉合線段]

??TRIANGLES[三角形]

??TRIANGLE_STRIP[三角帶]

??TRIANGLE_FAN[三角扇]

??QUADS[四方塊]

??QUAD_STRIP[四方塊帶]

??POLYGON[多邊形]

OSG中設(shè)置直線線寬的專門有一個(gè)函數(shù)來管理,叫做LineWidth,它本身屬于狀態(tài)與屬性類別中的類。事實(shí)上也是從那里派生而來。所有設(shè)置狀態(tài)的操作都與此類似。

1.4.3?內(nèi)置幾何類型

如同OpenGL一樣,OSG同樣有一套內(nèi)置幾何類型,這些幾何類型都在類osg::Shape中,這些shape本身都可以本當(dāng)成一個(gè)Draw結(jié)點(diǎn)加入到geode中,然后再人geode中添加到root里進(jìn)行渲染。形狀共有九種,分別為:osg::Box[盒子]osg::Capsule[膠囊形]osg::CompositeShape[組合型]osg::Cone[圓錐形]osg::Cylinder[圓柱形]osg::HeightField[高程形]osg::InfinitePlane[有限面]osg::Sphere[球形]osg::TriangleMesh[三角蒙皮]

內(nèi)置幾何類型的渲染過程,如圖4.5所示

?

?

圖?34基本幾何圖元的添加過程

這里要注意的是,一般的形狀態(tài)都有特定的因素,比如Box有長寬,圓有半徑,以及各個(gè)圖形所畫的精細(xì)度都需要指明,這些精細(xì)度在球這樣的形狀上意義還是十分巨大的。在OSG中有專門指明精細(xì)度的類,名為:osg::TessellationHints。以球?yàn)槔?#xff0c;只需要規(guī)定,圓心,半徑和精細(xì)度就可以畫出該球。

1.5?交互

1.5.1?交互過程

viewer的主要的功能是控制場景,它是場景的核心類,如果能響應(yīng)鍵盤時(shí)得到viewer,那么也可以從鍵盤的響應(yīng)中控制整個(gè)場景。viewer中有一個(gè)方法,名為addEventHandler就是專門做這件事情的。他會(huì)加入一個(gè)事件處理器。于是我們就想,一定要自己寫一個(gè)事件處理器才行,這就必須要了解事件處理器的格式,只要有一個(gè)接口就可以了解它的格式,這個(gè)接口就是:osgGA::GUIEventHandler,于是我們可以寫一個(gè)類A從該類公有派生出來,即:class?Apublic?osgGA::GUIEventHandler,在里面處理好各種操作然后加入到viewer當(dāng)中,即:viewer.addEventHadler(new?A(里面可以有參數(shù)));這樣就可以完成操作。

假如類A是一個(gè)事件處理類,那么加入類A可以這樣理解,如圖3.5

?

圖?35事件A控制場景過程

?

1.5.2?事件類型與響應(yīng)

代碼?????????????? ? 值?????????   事件類型

NONE??????????? ? ?0?????????????   無事件。

PUSH??????????? ??? ?1       鼠標(biāo)某鍵按下,在上面代碼28行有用到。

RELEASE?????  ?2       鼠標(biāo)某鍵彈起。

DOUBLECLICK?? 4       鼠標(biāo)某鍵雙擊。

DRAG???    ? 8       鼠標(biāo)某鍵拖動(dòng)。

MOVE      16       鼠標(biāo)移動(dòng)。

KEYDOWN?   32       鍵盤上某鍵按下。

KEYUP?     64       鍵盤上某鍵彈起。

FRAME?     128     應(yīng)該是鼠標(biāo)每幀。沒用過。

RESIZE?     256     窗口大小改變時(shí)會(huì)有的事件。

SCROLL??    512     鼠標(biāo)輪滾動(dòng)。

PEN_PRESSURE? 1024     手寫板的某事件?

PEN_PROXIMITY_ENTER? 2048   手寫板的某事件?

PEN_PROXIMITY_LEAVE ? 4096   手寫板的某事件?

CLOSE_WINDOWS?   8192   關(guān)閉窗口。

QUIT_APPLICATION?   16384   退出程序。

USER?          32768   用戶定義。

至于為什么都用2N次方,主要是因?yàn)樗亩M(jìn)制編碼只有一位是一,判斷事件時(shí)很好判斷,只要年哪位是一就可以了。

1.5.3?PICK

pick主要是通過鼠標(biāo)的點(diǎn)擊來拾取一些物體,或者判斷鼠標(biāo)所點(diǎn)擊的位置在哪里。Pick實(shí)現(xiàn)的思路如下圖所示:

?

?

圖?36pick事件流程

判斷射線與viewer中物體相交的方法為發(fā)出射線并相交。在OSG中有庫函數(shù),osgViewer::View::computeIntersections他共有三個(gè)參數(shù):第一個(gè)是x屏幕坐標(biāo),第二個(gè)是Y屏幕坐標(biāo),第三個(gè)是存放被交的結(jié)點(diǎn)以及相交的坐標(biāo)結(jié)點(diǎn)路徑等等相關(guān)信息。

判斷相交結(jié)點(diǎn)為我想要的那個(gè)結(jié)點(diǎn):只需要判斷存放相交射線交場景的結(jié)果集中有沒有要用的結(jié)點(diǎn)就可以了。

?

1.6?漫游

1.6.1?MatrixManipulator

場景的核心管理器是viewer,而漫游必須響應(yīng)事件,比如鼠標(biāo)動(dòng)了,場景也在動(dòng)。響應(yīng)事件的類是osgGA::GUIEventHandler。我們想把響應(yīng)事件的類派生一個(gè)新類出來,這個(gè)類專門用來根據(jù)響應(yīng)控制viewer。這個(gè)類就是osgGA::MatrixManipulator,這個(gè)類有一些設(shè)置矩陣的公共接口,有了這些接口就可以有效的控制viewer了,根據(jù)不同的習(xí)慣,大家還會(huì)設(shè)置不同的控制方式,如同OSG自帶的幾個(gè)操作器,操作都不盡相同。來看一下漫游的主要流程如圖6.1

?

圖?37一般的場景操作器

操作器必須從osgGA::MatrixManipulator派生而來。osgGA::MatrixManipulator有四個(gè)可以控制場景的重要接口:


1 virtual void setByMatrix(const osg::Matrixd&matrix)=0 2 3 virtual void setByInverseMatrix(const osg::Matrixd&matrix)=0 4 5 virtual osg::Matrixd getMatrix()const=0 6 7 virtual osg::Matrixd getInverseMatrix()const=0 8

四個(gè)矩陣接口可以有效的向viewer來傳遞矩陣的相關(guān)信息。

1.6.2?碰撞檢測

最簡單的碰撞檢測如下圖所示:

?

圖?38簡單的碰撞檢測原理圖

TravelManipulator.dll中用到的就是如圖所示的原理,黑三角形代表沒有移動(dòng)之的位置,控制移動(dòng)的函數(shù)是ChangePosition(osg::Vec3&delta),參數(shù)意思是要移動(dòng)的相對于當(dāng)前點(diǎn)的增量,在黑三角形沒有移動(dòng)時(shí)該函數(shù)在計(jì)算時(shí)先假設(shè)一點(diǎn)newPosition為移動(dòng)后的點(diǎn),而后通過連接這兩個(gè)點(diǎn),而后通過判斷與場景的模型是否有交點(diǎn)來判定這個(gè)移動(dòng)可不可以執(zhí)行,如圖所示,兩者之間有個(gè)大盒子,是穿不過去的,所以只有保持在原地。就算沒有這個(gè)盒子,移動(dòng)后的新點(diǎn)又與地面在某種程序上有一個(gè)交點(diǎn),這證明移動(dòng)是不可行的。這可以防止用戶穿過地板到達(dá)地下去。

1.6.3?路徑漫游

使用path文件的方法如下面示例


1 #include<osgDB/ReadFile>2 3 #include<osgViewer/Viewer>4 5 #include<osg/Node>6 7 #include<osgGA/AnimationPathManipulator>8 9 void main() 10 11 { 12 13 osgViewer::Viewer viewer; 14 15 viewer.setSceneData(osgDB::readNodeFile("glider.osg")); 16 17 //申請一個(gè)操作器,參數(shù)為一個(gè)path文件。 18 19 osg::ref_ptr<osgGA::AnimationPathManipulator>amp=new osgGA::AnimationPathManipulator("glider.path"); 20 21 //選擇使用這個(gè)操作器。 22 23 viewer.setCameraManipulator(amp.get()); 24 25 viewer.realize(); 26 27 viewer.run(); 28 29 } 30 31

我們可以用路徑編輯器編輯path文件,或者可以控制程序中的某個(gè)物體的運(yùn)動(dòng)軌跡然后保存為path文件。

1.7?更新&回調(diào)

回調(diào)的意思就是說,你可以規(guī)定在某件事情發(fā)生時(shí)啟動(dòng)一個(gè)函數(shù),這個(gè)函數(shù)可能做一些事情。這個(gè)函數(shù)就叫做回調(diào)函數(shù),我們可以使用已有回調(diào)函數(shù)或者自定義回調(diào)函數(shù)。

??使用已有回調(diào)

已有的回調(diào)的類型有很多種,一般很容易就想到的是UpdateCallBack,或者EventCallBack

??自定義回調(diào)

自定義回調(diào)為從一個(gè)回調(diào)類型派出生自己的回調(diào),然后具有該種回調(diào)的特點(diǎn)等等。

NodeVisitor是一個(gè)極有用的類,可以訪問結(jié)點(diǎn)序列,使用的方法大同小異,NodeVisitor的工作流程如下圖所示:

?

圖?39NodeVisitor工作流程

在主結(jié)點(diǎn)accept之后,結(jié)點(diǎn)數(shù)據(jù)立即傳至NodeVisitor中去,應(yīng)用apply函數(shù),可以將數(shù)據(jù)定任一些操作,更多的操作還是需要硬性的制做與調(diào)用。

1.8?粒子系統(tǒng)初步

OSG中提供有專門的粒子系統(tǒng)工具,名字空間為osgParticleOSG對經(jīng)常使用的粒子模擬都做了專門的類,如:ExplosionEffect用于暴炸的模擬,FireEffect用于火的模擬,ExplosionDebrisEffect用于爆炸后四散的顆粒模擬等等。

OSG中使用粒子系統(tǒng)一般要經(jīng)歷以下幾個(gè)步驟:

第一步:確定意圖(包括粒子的運(yùn)動(dòng)方式等等諸多方面)。第二步:建立粒子模版,按所需要的類型確定粒子的角度(該角度一經(jīng)確定,由于粒子默認(rèn)使用有Billboard所以站在任何角度看都是一樣的),形狀(圓形,多邊形等等),生命周期等。第三步:建立粒子系統(tǒng),設(shè)置總的屬性,第四步:設(shè)置發(fā)射器(發(fā)射器形狀,發(fā)射粒子的數(shù)目變化等),第五步:設(shè)置操作(旋轉(zhuǎn)度,風(fēng)力等等因素)。第六步:加入結(jié)點(diǎn),更新。下圖描述了各個(gè)部分是協(xié)調(diào)工作的方式:

?

圖?310粒子系統(tǒng)各個(gè)部分是協(xié)調(diào)工作的方式

上圖中各個(gè)部分所對應(yīng)的類如下圖所示

?

圖?311粒子系統(tǒng)各部分對應(yīng)的類

?

1.9?視口&LOD&Imposter

1.9.1?多視口

多視口的原理是自己創(chuàng)建所有的相機(jī),包括主相機(jī),這樣我們可以隨意的添加相機(jī)。

首先我們要?jiǎng)?chuàng)建視口必須有以下幾件東西,第一,了解整個(gè)屏幕的分辯率有多大,這樣可以分辯視口的大小,好分割開來。第二,上下文。我們必須自己手動(dòng)的打開設(shè)置上下文。每個(gè)視口的數(shù)據(jù)也不一定非要與主視口的相同。但是矩陣一般是同步的。也就是說:主視口里有棟樓,從視口里可以是平面圖什么的。了解整個(gè)屏幕的分辯率可以用這個(gè)類:osg::GraphicsContext::WindowingSystemInterface意思是說系統(tǒng)接口,可以獲得當(dāng)前環(huán)境的各種信息。有一方法叫getScreenResolution,可以得到分辯率。之后上下文了,osg::GraphicsContext里面可以設(shè)置窗口大小,緩存什么的,大多數(shù)的東西都在這里面設(shè)置。

1.9.2?LOD

LODlevel?of?details

LOD比起PagedLOD而言并非十分的常用,有個(gè)地方用的特別多,那就是把一個(gè)好好的模型加一個(gè)視矩壓成一個(gè)模型,這個(gè)模型比以前的看來就是多了個(gè)視矩的控制,遠(yuǎn)了看不見,近了能看見。

在模型中加LOD頭結(jié)點(diǎn)的方式如下所示:


1 #include<osgDB/Registry>2 3 #include<osgDB/ReadFile>4 5 #include<osgDB/ReaderWri ter>6 7 #include<osgDB/Wri teFile>8 9 #include<osg/Node> 10 11 #include<osgViewer/Viewer> 12 13 int main() 14 15 { 16 17 osgViewer::Viewer viewer; 18 19 //讀取模型 20 21 osg::Node*node=osgDB::readNodeFile("fountain.osg"); 22 23 //隱藏結(jié)點(diǎn) 24 25 node->asGroup()->getChild(0)->setNodeMask(0); 26 27 viewer.setSceneDa ta(node); 28 29 //輸出結(jié)點(diǎn)到free.os g中 30 31 osgDB::writeNodeFile(*(viewer.getSceneData()),"free.osg",osgDB::Registry 32 33 ::instance()->getOptions()); 34 35 return 0; 36 37 } 38 39

1.9.3?Imposter

用動(dòng)態(tài)圖片來替換場景的實(shí)用技術(shù):imposter.可以把它法做LOD一樣使用,只不過它

不是變模型變沒有,而是使它換成一張圖

示例代碼如下:設(shè)置一個(gè)視矩,超過這個(gè)視距模型會(huì)變?yōu)橐粡垊?dòng)態(tài)圖


1 #include<osgViewer/Viewer>2 3 #include<osgGA/TrackballManipulator>4 5 #include<osgSim/Impostor>6 7 #include<osgDB/ReadFile>8 9 int main(inta rgc,cha r**a rgv) 10 11 { 12 13 //申請viewer 14 15 osgViewer::Viewer viewer; 16 17 //讀取模型 18 19 osg::Node*node=osgDB::readNodeFile("ceep.ive"); 20 21 //申請一個(gè)i mpos tor結(jié)點(diǎn) 22 23 osgSim::Impos tor*sim=new osgSim::Impostor; 24 25 //在到之內(nèi)顯示模型,之外顯示貼圖 26 27 sim->addChild(node,0,50000); 28 29 sim->setImpostorThreshold(1000); 30 31 osg::Group*root=new osg::Group; 32 33 root->addChild(sim); 34 35 viewer.setSceneData(root); 36 37 viewer.realize(); 38 39 viewer.run(); 40 41 return 0; 42 43 } 44 45

1.10?文字&模型陰影

1.10.1?HUD?

HUDhead?up?display

文字在3D場景中顯示往往要經(jīng)歷以下幾步:讀取字體點(diǎn)陣信息->轉(zhuǎn)化為圖像->反走樣->最終圖像。在反走樣期間可以處理可種模糊效果,在最終圖像形成時(shí)可以設(shè)置如何擺放。OSG中有一個(gè)TEXT類,提供可很多文字顯示的方法,比如


void setFont(Font*font=0)//設(shè)置/得到字體,如setFont("fonts/SIMYOU.TTF");void setFont(const std::string&fontfile)const Font*getFont()const//設(shè)置/得到字體顯示的寬高void setFontResolution(unsigned int width,unsigned int height)unsigned int getFontWidth()constunsigned int getFontHeight()const//設(shè)置/得到文字的具體內(nèi)容

等等,可以很方便的調(diào)用

1.10.2?陰影

OSG對陰影的支持也相當(dāng)?shù)暮?#xff0c;可以很容易的寫出簡單的陰影效果,可以參考例子osgShadow

OSG有一個(gè)專門的shadow類來支持陰影效果,提供了很多接口,如:


1 void setBackdropType(BackdropType type)2 3 //說明:設(shè)置陰影類型。4 5 void setBackdropOffset(float offset=0.07f)6 7 void setBackdropOffset(float horizontal,float vertical)8 9 //說明:設(shè)置陰影的離開程度與方向 10 11 void setBackdropColor(const osg::Vec4&color) 12 13 //說明:設(shè)置陰影顏色 14 15 void setColorGradientMode(ColorGradientMode mode) 16 17 //說明:設(shè)置顏色映射方式,可以得到漸變效果 18

等等

?

PS:本文為幾個(gè)月前整理,參考書:FreeSouth的《QpenSceneGraph程序設(shè)計(jì)》



創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的OSG开发概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

亚洲色图av| 久久国产精品二国产精品中国洋人 | 亚洲区另类春色综合小说 | 91传媒免费在线观看 | 高清av中文字幕 | 久久影院亚洲 | a级片网站 | 99精品毛片 | 国产成人精品在线观看 | 久久久免费精品视频 | 日韩欧美xxxx| 啪啪免费视频网站 | 69国产精品成人在线播放 | 国产免费又爽又刺激在线观看 | 在线91视频 | 日韩理论在线播放 | 日韩动漫免费观看高清完整版在线观看 | 亚洲国产精品一区二区久久,亚洲午夜 | 日韩一级片大全 | 日精品在线观看 | 亚洲极色 | 久久久久日本精品一区二区三区 | 伊人天天狠天天添日日拍 | 在线看国产一区 | 欧美天堂视频在线 | 96精品视频 | 日韩系列在线 | 免费看黄色毛片 | 永久免费精品视频 | 国产福利专区 | 九九久久国产 | 在线国产视频一区 | 麻豆国产精品va在线观看不卡 | 亚洲国产美女久久久久 | 在线免费观看成人 | 久久图| 91成人亚洲| 中国一区二区视频 | 国产一级在线免费观看 | 久久久久久久久久久成人 | 一区二区三区高清 | 天天干天天在线 | 激情久久伊人 | 中文在线√天堂 | 亚洲五月六月 | 热久在线 | 91精品久久久久久久99蜜桃 | av免费线看| 亚洲一级黄色av | 日本中文字幕电影在线免费观看 | 久久婷综合 | 欧美日韩在线免费视频 | 99re中文字幕 | 日韩资源在线观看 | zzijzzij亚洲日本少妇熟睡 | 国产黄a三级三级 | 天天干,天天插 | 国产精品一区二区久久 | 中文字幕日韩国产 | 九九热免费观看 | 91在线国内视频 | 99视频在线精品国自产拍免费观看 | 欧美一级片播放 | 国产黄色免费在线观看 | 亚洲精品一区二区久 | www.777奇米 | 欧美日韩国产成人 | 精品国产一区二区三区蜜臀 | 69久久夜色精品国产69 | 99精品一级欧美片免费播放 | 懂色av一区二区在线播放 | 欧美一级在线看 | 久久a免费视频 | 人人舔人人爽 | 久久综合九色综合欧美就去吻 | 久久99婷婷| 香蕉影视在线观看 | 日日干干 | 美女免费视频网站 | 中文字幕二区三区 | 免费在线观看亚洲视频 | 久久免费精彩视频 | 人人插人人艹 | 中文在线a√在线 | 一区二区三区四区精品 | 成人一区电影 | 天天干,狠狠干 | 六月丁香激情综合色啪小说 | 91最新网址| 欧美va天堂va视频va在线 | 91网址在线看 | a天堂免费 | 人人爽人人爽人人爽学生一级 | 久久久国产在线视频 | 日韩av电影中文字幕在线观看 | 午夜色大片在线观看 | 久久亚洲影视 | 91九色精品国产 | 天天色宗合 | 日日摸日日添日日躁av | 国产精品一区免费在线观看 | 国产在线观看你懂的 | 黄色91免费观看 | 又黄又爽又色无遮挡免费 | 日本三级人妇 | 在线视频观看国产 | 日韩有码中文字幕在线 | 免费下载高清毛片 | 又大又硬又黄又爽视频在线观看 | 国产一二三四在线观看视频 | 在线观看av免费 | 黄色录像av | 在线观看视频一区二区三区 | 亚洲成人资源网 | 国产一区二区精品久久 | 欧美a级片网站 | 99在线观看| 国内免费的中文字幕 | 91九色国产在线 | 福利一区在线 | 亚洲免费av在线播放 | 国产成人久久精品77777综合 | 欧美最猛性xxxxx免费 | 毛片网站在线观看 | 在线看一区二区 | 亚洲va在线va天堂 | 久久久久综合网 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产乱对白刺激视频在线观看女王 | 久久亚洲欧美 | 国产精品视频地址 | 婷婷久久亚洲 | 我要色综合天天 | 色婷婷六月天 | 五月天电影免费在线观看一区 | 日韩电影一区二区三区在线观看 | 久久99久久久久 | 狠狠天天| 97在线观看免费观看 | 在线成人小视频 | 亚洲综合欧美日韩狠狠色 | 97成人在线视频 | 日韩三区在线观看 | 欧美特一级| 精品色综合| 日韩中文字幕网站 | 日韩视频免费在线 | 丁香六月在线 | 精品1区2区 | 99视频国产精品免费观看 | 韩国三级av在线 | 91福利视频免费观看 | 在线观看一二三区 | 亚州国产精品 | 国产黄av| 久久久午夜视频 | 亚洲精品乱码久久久久久高潮 | 国产黑丝一区二区三区 | 91视频下载 | 一区二区三区在线影院 | 国产在线无 | 成 人 a v天堂 | 亚洲精品字幕在线 | 国产精品久久久999 国产91九色视频 | 国产免费一区二区三区最新6 | 在线视频久久 | 在线成人一区 | 久久久久在线视频 | 黄污视频网站 | 久久久天堂 | av网站在线观看免费 | 亚洲伊人色 | 丁香五月网久久综合 | 日韩久久一区二区 | 日本在线视频一区二区三区 | 久久精品女人毛片国产 | 国产一区二区三区久久久 | 在线а√天堂中文官网 | 天天操夜夜逼 | 国产精品18久久久久久久久 | 亚洲丁香日韩 | 日韩免费视频 | 午夜久久久久久久久久影院 | 久草免费福利在线观看 | 亚洲综合欧美日韩狠狠色 | 玖玖视频国产 | 亚洲午夜精品久久久久久久久 | 97在线视频免费看 | 手机版av在线 | 成人av高清| 日韩欧美在线高清 | 一区免费视频 | 在线探花| 摸bbb搡bbb搡bbbb | 久久一区二区三区国产精品 | 91精品啪啪 | 久久综合九色综合久久久精品综合 | 国产精品午夜久久久久久99热 | 久久久久国产精品www | 亚洲综合色播 | 精品国产123 | 91系列在线 | 一本一本久久a久久 | 中文字幕日韩高清 | 日韩精品首页 | 国产精品久久久电影 | 日韩mv欧美mv国产精品 | 一区二区久久久久 | 国产精品久久久久久久久久99 | 视频 国产区 | 天天天天射 | 亚洲一级片 | 中国精品少妇 | 精品国产成人av在线免 | 国产精品久久久久一区 | 黄色一二级片 | 国产精品麻豆视频 | 色av色av色av| 精品国产精品久久一区免费式 | 欧美精品中文在线免费观看 | 日韩91在线 | 国产一区二区播放 | 亚洲婷婷伊人 | 中文字幕在线播放日韩 | 日韩在线一区二区免费 | 欧美一性一交一乱 | 日本aaa在线观看 | 国产在线高清视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产小视频精品 | www久久精品 | 欧美激情另类 | 国产久草在线 | 日韩三级视频在线观看 | 亚洲精品在线免费观看视频 | 亚洲 欧美日韩 国产 中文 | 四虎影视精品永久在线观看 | 国内精品视频一区二区三区八戒 | 毛片网站免费在线观看 | 欧洲av不卡| 日韩欧美高清 | 精品三级av | 久久九九久久九九 | 2021国产精品视频 | 久久久福利 | 亚洲黄色高清 | 国产福利一区在线观看 | 国产精品久久久久影院日本 | 成人网444ppp| 免费观看第二部31集 | 超碰在线人人艹 | 天天综合色 | 久久99精品波多结衣一区 | 久久久久免费精品国产小说色大师 | 综合久久网| 99欧美| 亚洲欧洲成人精品av97 | 国产亚洲婷婷免费 | 久久精品日产第一区二区三区乱码 | 久久看片 | 久久天天躁夜夜躁狠狠躁2022 | 九九热有精品 | 亚洲专区免费观看 | 在线观看完整版 | 久久综合九色综合欧美就去吻 | 天天se天天cao天天干 | 亚在线播放中文视频 | 亚洲春色奇米影视 | 亚洲无吗视频在线 | 久久99网站 | 久久精品4 | 激情狠狠干 | 欧美日在线| 香蕉视频在线网站 | 在线电影a| 国产 欧美 在线 | 一本到视频在线观看 | 国产精品久久综合 | 免费看搞黄视频网站 | 欧美性直播| 日韩视频免费观看高清完整版在线 | zzijzzij日本成熟少妇 | 久久久久亚洲精品成人网小说 | 久久久免费网站 | 日韩高清毛片 | 国产精品久久久久久久久久久久午夜 | 一区二区三区高清在线观看 | 国产精品女同一区二区三区久久夜 | 人人插人人爱 | 国产精品久久久久久久久久了 | 久久一区二区三区日韩 | 国产永久免费观看 | 在线看黄色的网站 | 日日日操 | 婷婷狠狠操 | 精品国内自产拍在线观看视频 | 中文av在线免费观看 | www日韩视频 | 国产美女网站在线观看 | 香蕉网在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 夜夜操网站 | 在线91精品 | 亚洲japanese制服美女 | 久草视频在线免费播放 | 国产精品久久久久久久午夜片 | 不卡国产视频 | 亚洲视频专区在线 | 国产精品一区久久久久 | 中文字幕一区二区三 | 成人av电影在线观看 | 国产香蕉97碰碰碰视频在线观看 | 国产视频18 | 一级特黄aaa大片在线观看 | 国产 日韩 欧美 在线 | 激情视频免费在线 | 91久久久久久久一区二区 | 国产精品一区二区果冻传媒 | 91精品视频导航 | 免费观看性生交 | 在线观看激情av | 欧美日韩视频在线观看免费 | 日韩v欧美v日本v亚洲v国产v | 久久久久高清 | 国产专区在线视频 | 久久国产精品99精国产 | 开心色激情网 | 欧美精品久 | 久久手机视频 | 欧美日韩在线观看不卡 | 日韩欧美在线不卡 | 国产乱老熟视频网88av | 欧美一性一交一乱 | 日韩色视频在线观看 | 久久高清精品 | 一区二区三区在线免费播放 | 97视频免费观看 | 国产精品岛国久久久久久久久红粉 | 亚洲欧洲一区二区在线观看 | 伊人av综合 | 国产毛片aaa | 日韩av一卡二卡三卡 | 国产精品高清在线 | 91精品久久久久久综合乱菊 | 久久久五月天 | www麻豆视频 | 亚洲国产欧美在线人成大黄瓜 | 在线精品视频免费观看 | 国产精品免费观看久久 | 国产一区二区三区高清播放 | 人人爽人人插 | 国产精品久久精品国产 | 亚洲欧美日韩国产精品一区午夜 | 黄色www | 成人h电影在线观看 | 超碰在线98 | 福利一区二区三区四区 | 久久综合狠狠 | 国产精品伦一区二区三区视频 | 国产成人久久精品77777综合 | 久久丁香 | 欧美小视频在线 | 中文字幕在线观看免费高清电影 | 午夜免费电影院 | 在线看av的网址 | 四虎www com | 天天干天天搞天天射 | 久久婷婷开心 | 91精品视频免费看 | 天天射天天干 | 欧美一区二区视频97 | 久草| 日韩中文字幕视频在线 | 午夜性生活| 久久一区二 | 最新国产精品久久精品 | 婷婷激情综合 | 中文字幕在线网 | 欧美精品一区二区在线播放 | 欧美日韩一级久久久久久免费看 | 日韩欧美视频二区 | 在线亚洲人成电影网站色www | 成人久久18免费网站 | 成年人视频在线观看免费 | 99精品视频免费看 | 亚洲综合导航 | 久久精品国产精品亚洲精品 | 日韩中文在线播放 | 在线播放 日韩专区 | 久久久久久久久久久久久久av | 91色视频 | 国产精品久久久久久999 | 国产99久久久久久免费看 | 久久久久久久久久福利 | 黄色a级片在线观看 | 亚洲精品国产成人 | 国产精品久久久久四虎 | 精品视频中文字幕 | 日日操天天爽 | 友田真希x88av | 超级碰碰碰免费视频 | www.天天操.com| 久久黄色免费 | 精品字幕| 国产一卡二卡在线 | 中文区中文字幕免费看 | 人人插人人爱 | 久久久久久国产一区二区三区 | 日韩av看片 | 中文字幕视频 | 日韩午夜在线 | 久久人人爽人人爽人人片 | 999视频在线播放 | 亚洲国产高清视频 | av性在线| a级国产片 | 九9热这里真品2 | 亚洲综合视频在线播放 | 亚洲视频 中文字幕 | 成人精品一区二区三区电影免费 | 欧美日韩破处 | 综合亚洲视频 | 成年人在线免费视频观看 | 久久人人做 | 日本中文字幕观看 | 中文字幕电影高清在线观看 | 久久精国产 | 国产精品日韩欧美 | 亚洲三级av| 人人爽人人爽人人爽学生一级 | 国产一区二区精品91 | 久久天天躁狠狠躁亚洲综合公司 | 好看av在线| 丁香婷婷电影 | 国产精品视频全国免费观看 | 激情开心网站 | 一二三精品视频 | 亚洲国产福利视频 | 日韩有码欧美 | 韩国一区二区三区视频 | 中文av字幕在线观看 | 毛片在线播放网址 | 久久精品女人毛片国产 | 精品亚洲成a人在线观看 | 国产麻豆精品一区二区 | 久久99视频免费观看 | 91成年人在线观看 | 成人va视频 | 日韩久久精品一区二区三区下载 | 亚洲午夜久久久综合37日本 | 91在线视频观看免费 | 亚洲天天综合网 | 98精品国产自产在线观看 | 伊人五月婷 | 久久99国产一区二区三区 | 看污网站 | 96精品视频 | 伊人黄 | 国产精品美女久久久久久2018 | 日韩久久精品一区二区 | 五月婷婷久久综合 | 在线视频日韩精品 | 国产美女在线观看 | 欧美在线视频精品 | 免费电影播放 | 一级片免费视频 | 欧美日韩中文字幕综合视频 | 国产视频精品久久 | 久久成| 在线观看岛国 | 99色在线观看视频 | 亚洲中字幕| 欧美日韩中文在线观看 | 99热国产在线中文 | 国产精品 久久 | 日本黄色免费大片 | 美女网站视频色 | 丁香六月在线观看 | www四虎影院 | 久青草国产在线 | 欧美日本在线视频 | 日日狠狠 | 麻豆果冻剧传媒在线播放 | 日韩欧美91| 91传媒在线观看 | 国产成人精品久久亚洲高清不卡 | 国产免费人人看 | 涩涩色亚洲一区 | 在线观看网站你懂的 | 天堂资源在线观看视频 | 中文字幕888 | 曰本三级在线 | 色97在线 | 中文字幕婷婷 | av观看在线观看 | 91成人网在线观看 | 西西444www大胆无视频 | 一区二区视频在线免费观看 | 久久亚洲成人网 | 欧美精品做受xxx性少妇 | www178ccom视频在线 | 国产日韩在线一区 | 日本精品久久久久久 | 国产精品成久久久久三级 | 国产精品一区一区三区 | 亚洲视频2| 99自拍视频在线观看 | 欧美一级性生活视频 | 激情av一区二区 | 久久久影院官网 | 99r在线观看 | 91综合久久一区二区 | 色婷婷婷 | 伊人影院得得 | 亚洲欧美在线综合 | 亚洲一区网站 | 99精品成人 | 日韩91在线| 国产精品不卡在线 | 久久99偷拍视频 | 国产精品s色 | 亚洲精品视频在线观看免费视频 | 日本久久综合视频 | 国产精品高| 久久久福利影院 | 亚洲专区在线视频 | 成人中文字幕在线观看 | 久草免费资源 | 在线观看片 | 久久精品久久精品久久 | 中文字幕二区在线观看 | 国产精品三级视频 | 麻豆视频免费网站 | 国产成人精品亚洲a | 亚洲日本韩国一区二区 | 日韩欧美一区二区三区免费观看 | 二区三区毛片 | 欧美日韩精品在线播放 | 91精品国产乱码 | 国产亚洲婷婷免费 | 美女免费电影 | 有码视频在线观看 | 91麻豆文化传媒在线观看 | 国产一区国产精品 | 免费在线观看一区二区三区 | 欧洲av不卡 | 九九精品在线观看 | 亚洲国产免费看 | 一级特黄aaa大片在线观看 | 香蕉手机在线 | 香蕉视频最新网址 | 免费视频 三区 | 91麻豆精品国产91 | 天天艹天天干天天 | 99精品欧美一区二区三区黑人哦 | 九九九电影免费看 | 日本系列中文字幕 | 欧美91精品久久久久国产性生爱 | 日韩av不卡在线 | 精品亚洲免费视频 | 亚洲精品中文在线资源 | 国产一区二区在线观看视频 | 日韩xxxxxxxxx | 欧美色综合久久 | 韩国av免费| 亚洲精品国产精品99久久 | a特级毛片| 在线观看亚洲视频 | 亚州视频在线 | 天天干天天操天天爱 | 国产免费不卡 | 美女一级毛片视频 | 99久久久国产精品免费观看 | 日韩剧 | 亚洲一区二区三区在线看 | 狠狠狠色丁香综合久久天下网 | 日韩av在线小说 | 福利视频在线看 | 久久全国免费视频 | 国内精品久久天天躁人人爽 | av五月婷婷| 草久久久久久 | 探花视频免费观看 | 一区二区激情 | 久热只有精品 | 夜夜操夜夜干 | 欧美最猛性xxx | 精品一区 在线 | 国产日韩高清在线 | 成人一区二区三区在线观看 | 日韩免费在线视频 | 中文字幕 国产 一区 | 日韩肉感妇bbwbbwbbw | 中文字幕免费高清在线观看 | 天天摸夜夜操 | 中文一区二区三区在线观看 | 免费电影播放 | 探花视频在线版播放免费观看 | 国产在线美女 | a视频免费在线观看 | 激情综合久久 | 日韩网站免费观看 | 日韩精品字幕 | 91av影视| 日本一区二区三区免费观看 | 人人干网站 | 亚洲精品午夜久久久久久久久久久 | 狠狠的干狠狠的操 | 成人av资源| 国产精品乱码一区二区视频 | 欧美另类成人 | 欧美色图88| 久久99精品久久久久久三级 | 日韩免费视频 | 香蕉精品在线观看 | 国产无区一区二区三麻豆 | 久久精品中文字幕免费mv | 美女免费网站 | 91av综合 | 中文字幕专区高清在线观看 | 91综合色 | 五月天丁香亚洲 | 毛片视频电影 | 欧美精选一区二区三区 | 992tv人人网tv亚洲精品 | 黄av在线 | 黄色大片日本免费大片 | 久久精品欧美 | 欧美激情综合五月色丁香 | 永久精品视频 | 国产高清无线码2021 | 91网在线看| 国产一区二区在线免费 | 视频国产在线 | 在线观看中文字幕网站 | 中文字幕在线观看的网站 | 美女久久一区 | 狠狠色伊人亚洲综合成人 | 欧美一级大片在线观看 | 免费黄色在线播放 | 亚洲视频在线视频 | 日韩另类在线 | 亚洲三级黄 | 在线观看免费黄色 | 福利视频入口 | 婷婷免费在线视频 | 男女靠逼app | 综合伊人av | 91视频高清完整版 | 欧美先锋影音 | 玖玖在线资源 | 91av精品 | 日本性xxx| 91久久精品一区 | 午夜99| 日韩欧美精品在线观看视频 | 中文字幕乱码电影 | 91精品视频在线观看免费 | 国产不卡免费视频 | 2023天天干 | 久久tv| 成x99人av在线www | 最近中文字幕mv免费高清在线 | 久久社区视频 | 丁香激情综合国产 | 亚洲精品9 | 久久99九九99精品 | 免费亚洲黄色 | 欧美成人亚洲成人 | 香蕉视频在线视频 | 免费高清男女打扑克视频 | 日韩高清在线一区 | 91精品国产99久久久久久久 | 色爱区综合激月婷婷 | 日本护士三级少妇三级999 | 久草在线免费新视频 | 香蕉一区 | 69av网| 夜夜视频欧洲 | 人人插人人澡 | 最新国产精品亚洲 | 久久国产精品99久久久久久老狼 | 免费看av片网站 | 亚洲精品乱码久久久久久按摩 | 天天透天天插 | 狠狠亚洲| 日韩精品一区二区三区免费观看 | 日本久久中文 | 久久综合九色综合欧美就去吻 | 亚洲视频高清 | 在线观看成人一级片 | 久久精品免费 | 国产成人精品久久二区二区 | 99久久精品国产亚洲 | 精品国产免费观看 | 亚洲国产欧洲综合997久久, | 亚洲精品1区2区3区 超碰成人网 | 麻豆国产精品va在线观看不卡 | 91九色porny在线 | 欧美日韩久久久 | 国产精品一区二区久久精品爱微奶 | 婷婷五月在线视频 | 久久欧美在线电影 | 97视频免费在线 | 免费在线国产精品 | 日韩av不卡在线播放 | 91视频高清完整版 | 亚洲精品视频免费 | 国产高清在线观看av | 欧美亚洲成人xxx | 亚洲视频2 | 欧美一区二区在线刺激视频 | 成人av电影在线播放 | 在线观看黄网站 | 五月婷婷一级片 | 久久伊人精品一区二区三区 | 4p变态网欧美系列 | 亚洲高清av在线 | 国内外成人在线视频 | 久久国产精品影视 | 国产成人精品久久二区二区 | av中文字幕电影 | 伊人狠狠干 | 亚洲黄色av一区 | av福利免费 | 日韩欧美视频免费观看 | 成人在线超碰 | 九九久久婷婷 | 天天射天 | zzijzzij亚洲日本少妇熟睡 | av在线永久免费观看 | 97人人看| 精品国产99国产精品 | 999国产 | 黄色软件在线观看 | 免费福利视频网 | 久久精品国产v日韩v亚洲 | 在线成人中文字幕 | 亚洲日本黄色 | 在线国产一区二区三区 | 黄色aaaaa| 日韩在线电影一区二区 | 久久久久区 | 中文字幕乱视频 | 日韩免费看视频 | 欧美国产高清 | 在线观看免费视频 | 狠狠色噜噜狠狠狠狠2022 | 黄色av一级 | 久久 亚洲视频 | 亚一亚二国产专区 | 免费中文字幕在线观看 | 欧美小视频在线 | 色综合天天狠天天透天天伊人 | 日日骑| 国产精品久久久久久吹潮天美传媒 | 六月天色婷婷 | 国产黄色资源 | 91视频久久久久 | 一区二区三区在线看 | 一区二区在线电影 | zzijzzij亚洲成熟少妇 | 欧美十八 | 国产一级性生活 | 国产精品视屏 | 日韩精品一区二区免费视频 | 日韩区欠美精品av视频 | 国产97视频在线 | 99在线视频精品 | 婷婷色亚洲 | 午夜三级福利 | 亚洲天天在线 | 国产一级二级在线观看 | 在线观看成人av | 国产在线一区二区 | 国产在线无 | 国产在线视频在线观看 | www日韩在线观看 | 国产九九精品视频 | 久久精品国产美女 | 九七人人干 | 久久久久久国产精品久久 | 久久一区二区三区超碰国产精品 | 在线观看韩日电影免费 | 亚洲欧美日本国产 | 日韩欧三级 | 国产视频一区二区在线播放 | 一本大道久久精品懂色aⅴ 五月婷社区 | 国产精品久久久久免费观看 | 色婷婷五 | 成在线播放 | 国产一级片一区二区三区 | 激情图片久久 | 国产不卡精品 | 日本午夜在线亚洲.国产 | 国产视频二区三区 | 亚洲最新av网站 | 国产免费小视频 | 久久免视频 | 国产 日韩 在线 亚洲 字幕 中文 | 97网在线观看 | 在线播放日韩 | 精品1区2区3区 | 久草网视频 | 亚洲综合在 | 亚洲精品mv在线观看 | 国产一区欧美一区 | 成 人 黄 色 片 在线播放 | 黄色免费观看 | 久久毛片视频 | 国产视频 亚洲视频 | 丁香九月婷婷 | 国产精品99蜜臀久久不卡二区 | 亚洲国产日韩一区 | 日韩免费区 | 色播五月激情五月 | 91九色丨porny丨丰满6 | 久久99国产精品二区护士 | 中字幕视频在线永久在线观看免费 | 亚洲视频久久久久 | 亚洲精品9 | 色视频一区| 国产高清免费av | 国产色视频一区二区三区qq号 | 免费观看久久久 | 亚洲第五色综合网 | 一本之道乱码区 | 欧洲一区二区在线观看 | 国产精品 日韩 欧美 | 亚洲精品久 | 久久免费精品一区二区三区 | 免费大片av | 日韩字幕在线 | 国内精品久久久久影院男同志 | 天天弄天天操 | 天天色天天射天天干 | 久久99爱视频 | 欧美贵妇性狂欢 | 国产99久久久精品视频 | 人人爽人人香蕉 | 丝袜av一区 | 亚洲精品在线视频网站 | 黄色毛片一级 | 久久福利在线 | 国产亚洲一区二区三区 | 日韩字幕 | 深爱激情综合 | 久久蜜臀一区二区三区av | 国产精品a成v人在线播放 | 国产精品成人免费一区久久羞羞 | 久久av不卡 | 国产精品v a免费视频 | av在线h | 亚洲女欲精品久久久久久久18 | 国产资源免费在线观看 | 黄色片免费在线 | 久草资源在线 | 九九九在线观看视频 | 久久天天躁狠狠躁夜夜不卡公司 | 国内三级在线 | 久久精品国产v日韩v亚洲 | 日韩成人在线一区二区 | 在线一二区 | .国产精品成人自产拍在线观看6 | 日日爱影视 | 国产精品专区在线 | 日韩精品中文字幕在线观看 | 国产精品高清在线观看 | 国产91九色视频 | 日韩在线观看一区 | 欧美美女视频在线观看 | 亚洲 av网站 | 国产91亚洲| 久久99久久久久久 | 国产精品久久久久婷婷二区次 | 婷婷丁香色 | 国产伦精品一区二区三区无广告 | 97香蕉久久超级碰碰高清版 | 日日躁夜夜躁aaaaxxxx | 手机在线看永久av片免费 | 99久久99久久 | 免费在线观看一级片 | 中文字幕一区二区在线观看 | 亚洲精品视频在线观看免费视频 | 亚洲综合欧美日韩狠狠色 | 午夜视频在线观看欧美 | 国产小视频在线 | 日韩网站在线 | 国产在线久久久 | 精品国产一区二区三区四区在线观看 | 国产免费又黄又爽 | 日韩动态视频 | 免费色黄 | 精品伦理一区二区三区 | 91久久精品一区二区三区 | 久久中文字幕视频 | 国产精彩视频一区 | 人人添人人澡 | 久久精品99久久久久久 | 2022国产精品视频 | 国产午夜精品一区二区三区 | 欧美一性一交一乱 | 九九九热 | 成人av电影在线观看 | 欧日韩在线视频 | 亚洲日韩中文字幕 | 中文字幕一区二区三区精华液 | 手机看片国产 | 国产精品99久久久精品免费观看 | 欧美精品久久人人躁人人爽 | 亚洲精品久久久久中文字幕二区 | 久久综合网色—综合色88 | 色噜噜在线观看 | 日韩欧美在线视频一区二区 | 天天拍天天草 | 国产福利小视频在线 | 主播av在线| 最新日韩在线观看视频 | 成人网在线免费视频 | 国产精品自产拍 | 久久久久福利视频 | bbbb操bbbb| 精品久久久成人 | 日韩欧美在线国产 | 欧美成人精品欧美一级乱黄 | 在线免费日韩 | 欧美日韩视频在线观看一区二区 | 欧美日韩国产一区二区在线观看 | av软件在线观看 | 成人永久免费 | www视频在线观看 | 91自拍成人 | 爱情影院aqdy鲁丝片二区 | 在线观看成年人 | 婷婷色中文网 | 亚洲综合在线五月天 | 国产黑丝一区二区 | 婷婷丁香av | 四虎影视成人永久免费观看视频 | 99精品国产免费久久久久久下载 | 九九热在线视频 | 97精品国产97久久久久久粉红 | 久久精品网址 | 亚洲精品黄网站 | 中文字幕在线专区 | 日韩国产欧美在线视频 | 中文字幕一区二区三区精华液 | 五月综合激情婷婷 | 视频一区在线免费观看 | 最新色视频 | 黄p网站在线观看 | 久久观看 | 六月丁香在线观看 | 天天爽天天搞 | 国产高清视频免费观看 | 久久久久久久网站 | 福利av影院 | 欧美日韩视频在线播放 | 日韩二区在线播放 | 亚洲天堂网视频 | 毛片随便看 | 国产精品久久久久久久免费 | 午夜精品久久一牛影视 | 911国产精品| a级黄色片视频 | 天天干,天天干 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产精品99久久久久久宅男 | www黄在线 | 成人片在线播放 | 中文国产成人精品久久一 | 婷久久| 97天堂网 | 国产精品欧美日韩 | 日韩一区二区三区观看 | 视频国产在线观看18 | 国产资源 | 丁香花中文在线免费观看 | 国产高潮久久 | 婷婷精品国产一区二区三区日韩 | 在线观看视频你懂得 | 精品国产免费一区二区三区五区 | 日韩激情精品 | 色综合天天综合在线视频 | 中文字幕免费高清在线 | 99久久精品国产亚洲 | 黄色软件在线观看视频 | 丁香五婷| 免费韩国av | 国产探花视频在线播放 | 97色噜噜 | 偷拍福利视频一区二区三区 | 国产欧美日韩一区 | 蜜桃av观看 | 99综合影院在线 | 手机在线小视频 | 色婷婷天天干 | 天堂在线一区二区 |