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

  C++博客 :: 首頁(yè) :: 聯(lián)系 ::  :: 管理
  163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

常用鏈接

留言簿(48)

我參與的團(tuán)隊(duì)

搜索

  •  

積分與排名

  • 積分 - 402910
  • 排名 - 59

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

自從LOD地形第一節(jié)推出以來(lái),受到不少朋友的關(guān)注,本人真是受寵若驚,無(wú)奈自己水平有限,怕寫(xiě)不好讓大家對(duì)自己失望,我只能勉為其難,努力去寫(xiě),同時(shí)歡迎高人能手給于指正,大家共同學(xué)習(xí),共同提高!
LOD地形的四叉樹(shù)算法原理就是對(duì)地形進(jìn)行四叉樹(shù)分割,同時(shí)檢查該節(jié)點(diǎn)是否位于視截體內(nèi)部,如果在視截體內(nèi)部且滿(mǎn)足視距,周?chē)c(diǎn)高程誤差等條件時(shí),則對(duì)該節(jié)點(diǎn)繼續(xù)分割,否則不予分割。其中重點(diǎn)是視截體的計(jì)算,以及地形的分割及渲染。下面介紹幾個(gè)系統(tǒng)中用到的類(lèi)。
首先介紹標(biāo)志節(jié)點(diǎn)是否分割的類(lèi)Bit
類(lèi)定義:

//該類(lèi)根據(jù)節(jié)點(diǎn)的位置,為每個(gè)節(jié)點(diǎn)在標(biāo)志段里相應(yīng)位設(shè)一個(gè)標(biāo)識(shí)。
/***********************************************************************
*    Copyrights Reserved by QinGeSoftware
*    Author : Qinge
*    Filename : Bit.h 1.0
*    Date: 2008-1-10
************************************************************************/
#pragma once

class Bit
{
public:
    void SetScale(int nScale);                        //伸縮系數(shù)
    void Set(int x, int y, BOOL bFlog=TRUE);          //設(shè)置標(biāo)志位
    void Reset();                                     //標(biāo)志清零
    BOOL CreateBits(int nXBites, int nRows);          //創(chuàng)建標(biāo)志數(shù)組
    BOOL IsTrue(int x, int y);                        //查詢(xún)?cè)撐粯?biāo)志
public:
    Bit();
    virtual ~Bit(void);
private:
    unsigned char *m_pBits;   //存儲(chǔ)位標(biāo)志的指針
    int m_nXBytes;            //X方向的字節(jié)數(shù)
    int m_nZRows;             //Z方向的行數(shù)
    int m_nScale;             //伸縮系數(shù)
};



//類(lèi)實(shí)現(xiàn)文件
/***********************************************************************
*    Copyrights Reserved by QinGeSoftware
*    Author : Qinge
*    Filename : Bit.cpp 1.0
*    Date: 2008-1-10
************************************************************************/
#include "StdAfx.h"
#include "Bit.h"

Bit::Bit(void)
{
    m_pBits  = NULL;                                     //指針初始化為NULL   
    m_nXBytes = 0;
    m_nZRows  = 0;
    m_nScale = 1;                                         //不能初始化為0,因?yàn)槭浅龜?shù)

}

Bit::~Bit(void)
{
    if(m_pBits != NULL)
    {
        delete [] m_pBits;                              //釋放指針
        m_pBits = NULL;                                 //置為空,否則會(huì)成為野指針
    }
}

BOOL Bit::CreateBits(int nXBites, int nRows)
{
    //nXBits 必須是8的倍數(shù)
    m_nXBytes = nXBites/8+1;                            //想想為什么加1
    m_nZRows   = nRows;
    m_pBits = new unsigned char[m_nXBytes * m_nZRows];  //分配空間
    memset(m_pBits, 0, m_nZRows * m_nXBytes);           //標(biāo)志段全部初始化0
    return 0;
}

void Bit::SetScale(int nScale)
{
    m_nScale = nScale;                                 //提供操作私有變量的接口
}

void Bit::Set(int x, int y, BOOL bFlog )
{
     x = x / m_nScale;                                 //每隔m_nScale采樣
     y = y / m_nScale;
     unsigned char &c = m_pBits[y * m_nXBytes + x/8];  //獲得某字符的引用,注意賦值方式,否則
     unsigned char d = 0x80;                           //后面改了白該。
     d = d >>(x%8);                                    //根據(jù)X值得不同,首位右移相應(yīng)位數(shù)。移位
                                                       // 使得每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一位。 
     if(bFlog)
     {
         c|=d;                                         //把字符C與X相應(yīng)的位置為1

     }
     else
     {
         d = ~d;                                       //和某節(jié)點(diǎn)對(duì)應(yīng)的位為0,其余位為1
         c &= d;                                       //把字符C與X相應(yīng)的位置為0

     }

}

void Bit::Reset()
{
    memset(m_pBits, 0, m_nXBytes * m_nZRows);

}

BOOL Bit::IsTrue(int x, int y)
{
   x = x/m_nScale;
   y = y/m_nScale;
   unsigned char c = m_pBits[y*m_nXBytes+x/8];                       //這次不是引用,想想為什么
   unsigned char d = 0x80;                                          
   c = c << (x%8);                                                   //為什么不是d移位?
   return c&d;             //把與X對(duì)應(yīng)的位返回,其余位為0


}
//該函數(shù)得到字符包含包含8個(gè)節(jié)點(diǎn)的標(biāo)志,必須根據(jù)X的值進(jìn)行移位方能找到對(duì)應(yīng)的節(jié)點(diǎn),這次是取得標(biāo)識(shí)而不是設(shè)置標(biāo)識(shí),故不用引用。c移位而不是d移位,是為了把標(biāo)識(shí)移到首位。然后和0x80進(jìn)行位與操作得到BOOL值。d移位操作效果是一樣的,但不是左移而是右移。 
posted on 2008-01-14 21:15 sdfasdf 閱讀(3011) 評(píng)論(3)  編輯 收藏 引用 所屬分類(lèi): OPENGL

Feedback

# re: LOD地形設(shè)計(jì)(二) 2008-01-15 08:50 minidxer
很不錯(cuò)很不錯(cuò)~
努力加油哈  回復(fù)  更多評(píng)論
  

# re: LOD地形設(shè)計(jì)(二) 2008-01-15 10:36 yayv
多講原理,少貼代碼不是更好么?  回復(fù)  更多評(píng)論
  

# re: LOD地形設(shè)計(jì)(二) 2011-07-23 11:06 cgsgood
不錯(cuò),代碼很明了  回復(fù)  更多評(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>
            亚洲一区自拍| 国产女人aaa级久久久级| 久久av老司机精品网站导航| 免费中文字幕日韩欧美| 欧美亚洲在线播放| 欧美久久久久久久| 欧美激情乱人伦| 国产亚洲午夜| 亚洲男同1069视频| 这里只有精品视频在线| 久久精品中文| 久久久亚洲一区| 国产亚洲女人久久久久毛片| 亚洲天堂av图片| 亚洲天堂av高清| 欧美日韩国产麻豆| 亚洲三级视频| 亚洲国产欧美一区| 久久久无码精品亚洲日韩按摩| 久久精品动漫| 国内精品久久久久久久影视蜜臀 | 亚洲视频1区| 一本综合精品| 欧美手机在线| 日韩午夜免费视频| 亚洲小视频在线观看| 欧美乱妇高清无乱码| 亚洲欧洲日产国码二区| 亚洲免费观看视频| 欧美日韩亚洲激情| 一区二区三区你懂的| 亚洲欧美日韩国产中文 | 欧美金8天国| 亚洲狼人综合| 亚洲综合色在线| 国产乱码精品一区二区三区不卡 | 亚洲国产日韩欧美一区二区三区| 亚洲大胆女人| 欧美黑人在线播放| 99精品欧美一区二区蜜桃免费| 中文一区二区在线观看| 国产精品国产精品国产专区不蜜| 亚洲一区二区三区精品在线| 欧美亚洲专区| 在线观看视频欧美| 欧美精品免费播放| 亚洲天堂久久| 久久综合影视| 99在线精品视频| 国产精品日韩久久久久| 久久久久网址| 亚洲精选一区| 久久国产精品一区二区三区四区 | 亚洲激情综合| 亚洲综合视频一区| 一区精品久久| 欧美日韩精品一区二区在线播放| 亚洲免费视频网站| 嫩草影视亚洲| 亚洲欧美综合国产精品一区| 永久91嫩草亚洲精品人人| 免费毛片一区二区三区久久久| 一区二区欧美日韩| 久久一区视频| 亚洲一区视频在线| 亚洲国产日韩一区二区| 欧美午夜久久久| 久久一二三四| 亚洲综合精品四区| 亚洲欧洲另类国产综合| 久久久久.com| 亚洲网站啪啪| 亚洲欧洲综合| 狠狠色狠狠色综合| 欧美私人啪啪vps| 免费成人高清视频| 欧美亚洲综合久久| 一区二区三区国产盗摄| 欧美成人精品福利| 久久久国产精品亚洲一区| 亚洲天堂激情| 亚洲人成7777| 在线国产欧美| 国产亚洲精品bt天堂精选| 欧美三区美女| 欧美成人精品在线| 久久久久国内| 欧美一级大片在线观看| 这里只有视频精品| 亚洲免费观看在线观看| 欧美激情自拍| 欧美大秀在线观看| 另类春色校园亚洲| 久久精品一区二区三区不卡| 亚洲专区欧美专区| 亚洲视频在线观看免费| 亚洲看片一区| 亚洲人成绝费网站色www| 一区二区在线观看视频| 国产一区二区久久精品| 国产伦精品一区二区三区| 国产精品美女久久久久久2018| 欧美日韩在线亚洲一区蜜芽| 欧美日本一区| 欧美日本国产视频| 欧美日韩国产天堂| 欧美久色视频| 欧美三级日韩三级国产三级| 欧美久久99| 欧美日韩一区二区三区四区五区 | 麻豆国产va免费精品高清在线| 午夜精品网站| 欧美一级网站| 久久精品1区| 久久久久久久久伊人| 久久久久免费| 欧美超级免费视 在线| 欧美国产日韩在线观看| 亚洲第一精品电影| 亚洲国产欧美在线| 日韩手机在线导航| 亚洲一区二区高清| 欧美一区二区福利在线| 一区二区福利| 亚洲午夜精品一区二区| 午夜久久久久久| 久久久久国产精品厨房| 麻豆国产精品一区二区三区 | 欧美日韩ab| 国产精品乱码一区二三区小蝌蚪| 国产乱肥老妇国产一区二| 国产视频一区三区| 在线观看精品视频| 日韩亚洲精品在线| 先锋影音网一区二区| 久久在线精品| 亚洲三级影院| 午夜精品久久久久久久久久久久久| 久久爱另类一区二区小说| 免费的成人av| 国产精品欧美日韩一区二区| 狠狠久久婷婷| 正在播放亚洲一区| 久久久精品tv| 日韩视频免费| 久久九九免费| 欧美日韩久久不卡| 国精品一区二区| 一区二区三区欧美亚洲| 久久精品国产亚洲一区二区三区| 亚洲国产精品一区二区www| 亚洲中无吗在线| 欧美成人一区二区| 国产亚洲成精品久久| 夜夜嗨av一区二区三区四季av| 久久激情五月丁香伊人| 亚洲精品视频在线观看免费| 欧美制服丝袜| 欧美丝袜一区二区| 亚洲精品久久视频| 久久狠狠婷婷| 一区二区三区你懂的| 欧美1区免费| 狠狠狠色丁香婷婷综合久久五月| 中文av一区特黄| 亚洲丰满在线| 久久久精品午夜少妇| 国产精品一区二区在线| 99国内精品| 亚洲高清一区二| 久久久精品久久久久| 国产精品资源在线观看| 夜夜爽av福利精品导航| 欧美顶级大胆免费视频| 欧美一级一区| 国产伦精品一区二区| 亚洲性夜色噜噜噜7777| 亚洲福利一区| 老鸭窝毛片一区二区三区| 国产亚洲欧美另类中文| 亚洲女人天堂成人av在线| 亚洲乱码国产乱码精品精| 久久亚洲不卡| 永久免费精品影视网站| 久久激五月天综合精品| 翔田千里一区二区| 国产精品你懂的在线| 亚洲综合日韩在线| 一本色道久久综合亚洲二区三区| 欧美激情视频在线播放| 亚洲精品综合| 亚洲精品男同| 欧美日韩国产欧| 亚洲性视频网址| 宅男噜噜噜66一区二区66| 国产精品理论片| 欧美亚洲视频在线观看| 午夜在线一区| 在线观看国产欧美| 欧美激情一级片一区二区|