• <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>
            隨筆-38  評(píng)論-23  文章-0  trackbacks-0

                   在知道如何使用Viewer視景器來(lái)進(jìn)行仿真循環(huán)之后.總不會(huì)一直嘗試著顯示一頭有著球面映射的牛進(jìn)行觀(guān)賞著.總會(huì)想著如何搭建自己的模型.如何實(shí)現(xiàn)自己所要繪制的一切.如你一樣.我也擁有著這種沖動(dòng).如同我一開(kāi)始學(xué)OpenGL的時(shí)候.我繪制出第一個(gè)三角形便覺(jué)得十分的興奮.但當(dāng)我嘗試用它們建立各種奇怪的圖形的時(shí)候.就像是搭積木一樣.覺(jué)得怪異卻....
                  Drawable 故名 可繪制的.. 那么什么才是可繪制的.我們可以想象.常使用的點(diǎn).線(xiàn).三角形.四邊形.等.這些就是可繪制的.OpenGL大可只能實(shí)現(xiàn)繪制最終也只是這些..

                 經(jīng)常使用的場(chǎng)景圖是一般都是一顆樹(shù). 那么在OSG也不例外.它是一顆節(jié)點(diǎn)樹(shù).其最末梢的節(jié)點(diǎn)是Geode.即葉子節(jié)點(diǎn). 一個(gè)Geode可以包含多個(gè)Drawable.因此在OSG中我們想要繪制諸如三角形等.最終需要使用的肯定也是Geode葉子節(jié)點(diǎn).然后將Drawable加入Geode下...

                 osg/Drawable 只是一個(gè)抽象類(lèi).那么實(shí)現(xiàn)它的類(lèi)有多少呢? 還是比較多的.


            而這中間最常用的莫屬Geometry.幾何體繪制..而說(shuō)到幾何體.需要的無(wú)非是點(diǎn)..顏色.以及如何組成圖元<Primitive>..
                  因此一個(gè)Geometry需要擁有的數(shù)據(jù)大可有點(diǎn).法線(xiàn)坐標(biāo) 紋理坐標(biāo).索引值...以及PrimitiveSet.
                  點(diǎn),法線(xiàn),顏色等 需要用到矢量 即 osg::Vec2 osg::Vec3 osg::Vec4
                  PrimitiveSet.則包含了組成如何組成一個(gè)圖元的規(guī)則..如GL_POINT GL_TRIANGLES.等.
                  用實(shí)例說(shuō)明吧.如使用下面這段代碼將會(huì)創(chuàng)建一個(gè)多彩的三角形.和一個(gè)白色的立方體.
                
            Geode

                   這里我將解釋一些東西.
                   1.Geometry默認(rèn)是使用顯示列表來(lái)繪制圖元的.你大可觀(guān)看源碼或文檔去了解.你可以設(shè)置
                   setUseDisplayList(false) 禁用它.或者若在綁定數(shù)據(jù)的時(shí)候使用了BING_PER_PRIMITIVE也將會(huì)禁用顯示列表
                   2.ShapeDrawable 則是內(nèi)置一些形狀的圖元.諸如 圓柱.球體.圓錐等.自己實(shí)現(xiàn)嘗試一下.
                   3.BING_PER_VERTEX 則指的每個(gè)頂點(diǎn)對(duì)應(yīng)于一種屬性(如例子中的顏色).
                   4.BING_OVERALL 則是全部頂點(diǎn)使用一樣的屬性(如例子中的法線(xiàn))

            實(shí)例源代碼下載:  ..下載地址

            忘了說(shuō)明一點(diǎn).在OSG當(dāng)中的坐標(biāo)系是 z朝上.y朝里.x朝右..與OpenGL中剛好繞x軸旋轉(zhuǎn)了90度..
            還有一點(diǎn)則是.我們通常情況下默認(rèn)使用視景器其中的一個(gè)關(guān)于攝像機(jī)漫游器其實(shí)默認(rèn)是使用TrackballManipulator 因此.它會(huì)將視點(diǎn)中心指向整個(gè)場(chǎng)景的包圍球中心...

            最終結(jié)果圖:如下:


            posted on 2009-08-23 18:34 米游 閱讀(6183) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): OpenGL/OSG

            評(píng)論:
            # re: OSG學(xué)習(xí) Drawable 與 幾何體創(chuàng)建[未登錄](méi) 2009-09-30 11:12 | zero
            osg::Box* boxtest = new osg::Box(osg::Vec3(1.5,0.0,0.0),1.0);
            是如何決定立方體的方向???  回復(fù)  更多評(píng)論
              
            # re: OSG學(xué)習(xí) Drawable 與 幾何體創(chuàng)建[未登錄](méi) 2009-10-02 00:17 | 米游
            對(duì)于你想旋轉(zhuǎn)正方體或者其他別的變換操作,其實(shí)主要是變換矩陣的操作。那么你可以使用MatrixTransform 并將正方體加入到MatrixTransform子節(jié)點(diǎn)下,具體參考 我博客里另外一篇關(guān)于OSG教程@zero
              回復(fù)  更多評(píng)論
              
            久久精品国产半推半就| 九九久久自然熟的香蕉图片| 国产免费福利体检区久久| 人人狠狠综合久久亚洲婷婷| 久久精品不卡| 亚洲国产欧美国产综合久久| 国产精品VIDEOSSEX久久发布| 久久天天婷婷五月俺也去| 久久精品人人做人人爽电影蜜月| 久久99亚洲综合精品首页| 亚洲AV无码久久| 久久天天躁狠狠躁夜夜av浪潮| 久久久久久国产精品无码超碰| 欧美激情精品久久久久久久| www.久久热| 亚洲国产精品无码成人片久久| 久久久久九九精品影院| 久久99国产精品一区二区| 中文字幕无码精品亚洲资源网久久| 久久综合中文字幕| 国产精品久久久久久久| 久久综合综合久久综合| 伊人久久精品影院| 久久精品亚洲男人的天堂| 欧美久久综合性欧美| 国内精品伊人久久久久777| 亚洲精品国产自在久久| 色偷偷88欧美精品久久久| 天天综合久久久网| 国产99精品久久| 久久亚洲国产欧洲精品一| 久久久久久久尹人综合网亚洲 | 久久免费小视频| 欧美亚洲色综久久精品国产| 亚洲综合精品香蕉久久网| 亚洲精品无码久久千人斩| 亚洲性久久久影院| 久久久久久久久久久精品尤物| 亚洲va久久久久| 日韩精品久久久肉伦网站| 久久丫精品国产亚洲av|