freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

osg-osgearth學(xué)習(xí)技術(shù)總結(jié)報告-文庫吧資料

2025-06-05 18:07本頁面
  

【正文】 。mat)。旋轉(zhuǎn)的矩陣參數(shù)anglefloat旋轉(zhuǎn)的角度axisconst osg::Vec3f amp。說明:兩個重載的函數(shù),實現(xiàn)繞某軸旋轉(zhuǎn)一定的角度。void toRotate(float angle,const osg::Vec3f amp。繞某軸旋轉(zhuǎn)angularfloat每幀旋轉(zhuǎn)的弧度void toRotate(const osg::Matrix amp。參數(shù)名稱類型描述pivotconst osg::Vec3d amp。 axis, float angular )。void rotating(const osg::Vec3d amp。~NodeMatrix(void)。 NodeMatrix 類類說明:實現(xiàn)對模型的基本操作。 對模型的操作我們要很好的控制模型,方便自己對模型的管理,不用每次都要寫相關(guān)的函數(shù),而需要自己定義一種類,通過類來對其操作。在屬性的鏈接器命令行中輸入: ;點擊確定。COSGObject::Render, 0, mOSG)。 mOSGInitOSG()。 WaitForSingleObject(mThreadHandle, 1000)。}void CDigitalEarthView::OnDestroy(){ CView::OnDestroy()。 } else { return FALSE。 return 0。},添加事件函數(shù):int CDigitalEarthView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CView::OnCreate(lpCreateStruct) == 1) return 1。 } _endthread()。 viewerframe()。 osgViewer::Viewer * viewer = osggetViewer()。 mViewergetCamera()setNearFarRatio()。 mViewerrealize()。 mViewersetCameraManipulator(new osgGA::TrackballManipulator)。 camerasetProjectionMatrixAsPerspective(, static_castdouble(traitswidth)/static_castdouble(traitsheight), , )。 camerasetGraphicsContext(gc)。 osg::GraphicsContext * gc = osg::GraphicsContext::createGraphicsContext(traits)。 traitssetInheritedWindowPixelFormat = true。 traitsdoubleBuffer = true。 traitsheight = 。 traitsy = 0。 osg::ref_ptrosg::Referenced windata = new osgViewer::GraphicsWindowWin32::WindowData(m_hWnd)。rect)。 mViewer = new osgViewer::Viewer。/vpbtest/TestCommon10/))。168。a處228。186。234。解a與174。詳168。161。y講2VPB用174。178。 mRootaddChild(osgDB::readNodeFile())。 InitCameraConfig()?,F(xiàn)在需要重載一些事件,在類視圖中選擇cosgfreeView,右鍵點擊類向?qū)В霈F(xiàn)MFC Class Wizard,我們需要對以下幾個事件進行重載,onCreate創(chuàng)建窗口;OnEraseBkgnd擦出背景的時候;OnDestroy在窗口銷毀的時候進行處理;在虛函數(shù)的選擇欄中對以下虛函數(shù)進行重寫:OnInitialUpdate程序初始化的時候響應(yīng)處理函數(shù); 添加類編寫程序以下程序均有注釋,很容易看懂:include include COSGObject::COSGObject(HWND hWnd){ m_hWnd = hWnd。在菜單選擇調(diào)試開始執(zhí)行(不調(diào)試)或者ctrl+F5,編譯運行看會出現(xiàn)如下界面,則MFC框架搭建成功。再次點擊下一步,把打印和打印預(yù)覽選項剔除,當然如果你不在程序中使用控件,ACTIVEX也可以剔除。主框架標準中修改的字符將會出現(xiàn)在框架窗口的上方,做如圖修改后點擊下一步,出現(xiàn)對數(shù)據(jù)庫是否支持的頁面,在OSG的編程中往往需要使用到數(shù)據(jù)庫,且往往采用ODBC方式而非C/S格式,在此選擇無,而后點擊下一步,出現(xiàn)如圖所示頁面: MFC建立3各個選項在選擇后將會影響到程序的框架類型,當然無論做怎么樣的選擇,在程序中都可以再次修改,比如這里沒有選擇最大化框,在程序中也可以通過代碼進行修改。如果經(jīng)常使用MFC,以及對其內(nèi)部結(jié)構(gòu)有一定的了解,隨便建一個便可以自由的通過修改默認源碼在自己需要的類型之前來回轉(zhuǎn)換,這里我們少走一些彎路點擊:應(yīng)用程序類型標簽或者下一步按鈕,頁面需要選擇如下: MFC建立1界面風(fēng)格采用VS的office風(fēng)格,應(yīng)用程序類型選擇單文檔。建立MFC的步驟:點擊新建新建項目在項目類型中選擇:MFC,在模版中選擇:MFC應(yīng)用程序,在名稱中填入項目名稱,比如osgFree,點擊確定。 MFC的建立: MFC程序框架圖它主要包括三類:視圖類、框架類、應(yīng)用程序類,其中的菜單控制是通過消息映射來響應(yīng)。 從圖中可以看出,當渲染結(jié)束時,程序并沒有退出,而退出程序的,只有MFC本身,當view發(fā)出退出消息時,哪怕不是在渲染也會退出。控制臺程序僅僅適合實驗,算法模擬等等。第四章 MFC+OSG界面框架設(shè)計 MFC+OSG控制框架在OSG的渲染過程中,外界對其控制僅僅限于鍵盤與鼠標,因而更多的功能無法進行合理的安,比如我要模擬一些天氣,天氣有數(shù)十種,每種天氣又有輕重不同,比如有大雪,中雪,小雪,這樣的話光使用WIN32控制臺+OSG便顯得有些捉襟見肘。 通常為了保持原有的比例,需要a=b=c,當然不是絕對的。當向量(X,Y,Z,0)與T相乘之后并沒有產(chǎn)生預(yù)定的效果,原因是方向向量是受平移操作的影響!B 旋轉(zhuǎn)矩陣物體當前所處位置為(X, Y, Z, 1), 使用Rotate(axis, angle),其中axis表示繞某軸旋轉(zhuǎn),而angle則表示旋轉(zhuǎn)的角度,自然可以想到會有三種情況,分別繞X,Y,Z軸旋轉(zhuǎn),下面來看一下這三個旋轉(zhuǎn)矩陣:可以看到,對一個繞任意角度a的33旋轉(zhuǎn)矩陣R來說,其對角線和為固定值,即稱為跡=1+2cosaC 縮放矩陣縮放矩陣是指當某向量與該矩陣相乘之后,原值按比例縮?。鹤⒁猓涸诰仃嚨模?,3)位置,如果值為非1,則會引入有除法,除法是效率奇低的運算,因此長時間以來,人們把此位置永遠置1,起調(diào)節(jié)做用,從而這些矩陣也有時候被簡化為33的矩陣進行運算,但這樣是不科學(xué)的,畢竟需要考慮(3,3)位的取值。如果把石頭從A移到B,那么視口中石頭從左上角跑到下角,可以移動石頭,當然也可以移動視口,因此OSG中有移動視口與移動物體兩大類型的操作,同樣旋轉(zhuǎn)與縮放也是一樣的。 OSG的矩陣變換OSG中對一個物體操作包括:平移,旋轉(zhuǎn),縮放。投影之后有: 也寫成:從而在z方向上構(gòu)建 CVV,使得當z在近裁剪平面的時候,az+b=1,而z在遠裁剪平面的時候az+b=1。上圖b是OpenGL的右手坐標系中觀察空間的情形,我們看到的是正交投影的矩形觀察體,原點是相機位置,n是近裁剪平面到相機平面的距離,f是遠裁剪平面到相機平面的距離。側(cè)投影則可以繼續(xù)分為散點側(cè)投、斜二軸側(cè)投等等。q的投影方向向量為Q = 單位化(q’q),而p的投影方向向量為P = 單位化(p’p),其中Q不平行于n而P平行于n,則q的投影叫做側(cè)投影,而p的投影叫做正交投影。如圖 上圖a中,v是投影平面,n是它的法線。平行投影則是具有矩形觀察體的投影方式(透視投影則是視錐觀察體),它不會根據(jù)物體離視點的遠近縮放物體(透視投影則會)。 invPD》 其中:最后那個矩陣就是左手坐標系透視投影矩陣。接下來根據(jù)上部分所講到的,我們要把前兩個分量變成CVV情形,CVV的x和y范圍是[1, 1],如下圖所示:使用線性插值,我們有:這里left和right是投影平面的左右范圍,top和bottom是投影平面的上下范圍。p是需要投影的點,p’是投影之后的點。np是近裁剪平面,也是投影平面,N是它到相機的距離。同的圖形API因為左右手坐標系、行向量列向量矩陣以及變換范圍等等的不同導(dǎo)致了矩陣的差異,在此列出左手坐標系的透視投影矩陣,具體的細節(jié)與右手坐標系一樣,公式推導(dǎo)如下:這里我們考察的是xz平面上的關(guān)系,yz平面上的關(guān)系同理。解決這個問題的方法就是在對多變形進行透視變換、裁剪、透視除法之后,在歸一化的設(shè)備坐標(Normalized Device Coordinates)上進行的視口(viewport)變換中進行校正,它會把歸一化的頂點之間按照和投影面上相同的比例變換到視口中,從而解除透視投影變換帶來的失真現(xiàn)象。而CVV的寬高是相同的,即寬高比永遠是1。注意到M的最后一行不是(0 0 0 1)而是(0 0 1 0),因此可以看出透視變換不是一種仿射變換,它是非線性的。而CVV本身的規(guī)則性對于多邊形的裁剪很有利。相機空間中的頂點,如果在視錐體中,則變換后就在CVV中。我們利用簡單的線性插值把Nx / z屬于[left, right]映射到x屬于[1, 1]中,Ny / z屬于[bottom, top]映射到y(tǒng)屬于[1, 1]中。為了能在x和y方向把頂點從Frustum情形變成CVV情形,我們開始對x和y進行處理。而我們可以適當?shù)倪x擇系數(shù)a和b,使得這個式子在z = N的時候值為1,而在z = F的時候值為1,從而在z方向上構(gòu)建CVV。把z寫成有兩個原因:1)P’的3個代數(shù)分量統(tǒng)一地除以分母z,易于使用齊次坐標變?yōu)槠胀ㄗ鴺藖硗瓿?,使得處理更加一致、高效。設(shè)P’(x’,z’)是投影之后的點,則有z’ = N。N是眼睛到近裁剪平面的距離,F(xiàn)是眼睛到遠裁剪平面的距離。上圖是右手坐標系中頂點在相機空間中的情形。所以,事實上是透視投影變換由兩步組成:1) 用透視變換矩陣把頂點從視錐體中變換到裁剪空間的CVV中?,F(xiàn)在討論透視投影變換:經(jīng)過相機矩陣的變換,頂點被變換到了相機空間。簡單的線性插值基本思想是:給一個x屬于[a, b],找到y(tǒng)屬于[c, d],使得x與a的距離比上ab長度所得到的比例,等于y與c的距離比上cd長度所得到的比例,用數(shù)學(xué)表達式:這樣,從a到b的每一個點都與c到d上的唯一一個點對應(yīng)。如果是(x,y,z,0),則知道它是個向量,仍然變成(x,y,z)。像這種用4個代數(shù)分量表示3D幾何概念的方式是一種齊次坐標表示。在說明透視投影的時候必須兩掌握的兩個知識:1. 齊次坐標表示,2. 簡單的線性插值“齊次坐標表示是計算機圖形學(xué)的重要手段之一,它既能夠用來明確區(qū)分向量和點,同時也更易用于進行仿射(線性)幾何變換。利用坐標轉(zhuǎn)換公式得相機完整的變換公式: 透視投影透視投影是3D固定流水線的重要組成部分,是將相機空間中的點從視錐體(frustum)變換到規(guī)則觀察體(Canonical View Volume)中,待裁剪完畢后進行透視除法的行為。 其中T是平移變換,R是旋轉(zhuǎn)變換?,F(xiàn)在我們推導(dǎo)這個變換。這樣,他應(yīng)該進行一個相機定位的逆定位,先逆平移小人和相機,然后再逆旋轉(zhuǎn)小人和相機,最后相機歸位,小人隨相機變到了相機空間??梢钥吹较鄼C相對于小人的運動。當相機在屏幕中定位時,它首先會進行朝向的確定——旋轉(zhuǎn),然后進行位置的確定——平移。小人是世界中的一個物體??梢韵胂螅瑢τ谑澜缰械娜魏我粋€相機狀態(tài),我們都可以把它看成是:相機先圍繞自身基原點旋轉(zhuǎn)一定的角度,然后平移到世界空間的某個地方。也就是說,有了這兩個屬性,一個相機模型在世界中的狀態(tài)就確定了。它的前三個參數(shù)就是相機的位置向量,中間三個參數(shù)是所觀察的目標位置向量,最后三個參數(shù)就是輔助向量up。結(jié)合上面我們談到的坐標轉(zhuǎn)換理論,我們可以把UVN系統(tǒng)看作是相機的基,從而可以方便的把一個向量在世界坐標和相機坐標進行轉(zhuǎn)換。 UVN系統(tǒng)構(gòu)建過程在參考系下,我們給定相機的位置——eye,被觀察的小人的位置——lookat,以及一個輔助向量——參考系中表示“上方”的向量up,這個向量會影響U和V的生成,因為以后求出的V向量會在up和N向量所決定的平面上,所以可以通過這個向量讓相機產(chǎn)生不同的偏轉(zhuǎn)。三個基向量U,V,N分別指向相機的右方、上方和后方從而構(gòu)成右手坐標系,相機則處于坐標原點。我們在后面會用到這個公式。這個公式就是坐標轉(zhuǎn)換公式。黑色基表示的是參考系,紅色是基Q,藍色是基R,V是參考系中的一個向量。 流水線所謂的相機空間,就是以相機作為坐標原點的一個參考系,所以,從世界空間變換到相機空間,就是把物體從世界坐標系,變換到相機為原點的相機坐標系。第三章 相機變換、正交變換、透視投影、矩陣變換 相機變換相機變換是指在流水線中,當物體從模型坐標通過世界矩陣變換到世界空間之后,它將通過相機變換從世界空間變換到相機空間。 添加事件響應(yīng) 顯示狀態(tài)信息與網(wǎng)格本章首先利用VS2010配置了適合OSG開發(fā)的環(huán)境,
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1