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

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

常用鏈接

留言簿(48)

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

搜索

  •  

積分與排名

  • 積分 - 401640
  • 排名 - 59

最新評論

閱讀排行榜

評論排行榜

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

//該類根據(jù)節(jié)點(diǎn)的位置,為每個節(jié)點(diǎn)在標(biāo)志段里相應(yīng)位設(shè)一個標(biāo)識。
/***********************************************************************
*    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);                        //查詢該位標(biāo)志
public:
    Bit();
    virtual ~Bit(void);
private:
    unsigned char *m_pBits;   //存儲位標(biāo)志的指針
    int m_nXBytes;            //X方向的字節(jié)數(shù)
    int m_nZRows;             //Z方向的行數(shù)
    int m_nScale;             //伸縮系數(shù)
};



//類實(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;                                 //置為空,否則會成為野指針
    }
}

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ù)。移位
                                                       // 使得每個節(jié)點(diǎn)對應(yīng)一位。 
     if(bFlog)
     {
         c|=d;                                         //把字符C與X相應(yīng)的位置為1

     }
     else
     {
         d = ~d;                                       //和某節(jié)點(diǎn)對應(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對應(yīng)的位返回,其余位為0


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

Feedback

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

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

# re: LOD地形設(shè)計(jì)(二) 2011-07-23 11:06 cgsgood
不錯,代碼很明了  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区免费视频| 亚洲欧美日韩一区在线观看| 香蕉久久a毛片| 亚洲欧洲日本在线| 欧美主播一区二区三区| 国产日韩精品一区二区浪潮av| 亚洲欧美视频在线观看视频| 亚洲女女女同性video| 国产亚洲va综合人人澡精品| 欧美 日韩 国产 一区| 日韩亚洲精品电影| 久久久久久9| 亚洲黄色尤物视频| 中文国产成人精品| 揄拍成人国产精品视频| 亚洲国产美女| 国产精品午夜电影| 欧美国产日韩二区| 国产精品夜夜夜| 亚洲电影观看| 国产区亚洲区欧美区| 欧美国产综合一区二区| 国产精品色婷婷久久58| 一区二区精品| 99国产精品久久久| 国产一区二区三区在线播放免费观看| 玖玖国产精品视频| 欧美日韩一区二区三区在线看| 欧美一区二视频| 欧美精品成人一区二区在线观看 | 久久久国产精品一区| 亚洲精品欧美在线| 欧美一区二区三区日韩| 99国产精品99久久久久久粉嫩 | 欧美69视频| 国产老女人精品毛片久久| 亚洲国产婷婷综合在线精品| 国产日韩欧美在线观看| 亚洲精品一区久久久久久| 亚洲综合精品| 国内精品免费在线观看| 亚洲久色影视| 亚洲第一福利在线观看| 亚洲一区二区精品| 99国产精品一区| 麻豆成人在线观看| 麻豆av一区二区三区| 国产欧美日韩伦理| 亚洲一区二区黄色| 亚洲欧美国产va在线影院| 欧美激情一区二区三区高清视频 | 亚洲电影自拍| 久久精品国产第一区二区三区最新章节 | 欧美日韩另类视频| 亚洲婷婷综合久久一本伊一区| 欧美在线短视频| 欧美日韩一区精品| 亚洲精品免费看| 日韩一级片网址| 欧美电影免费观看| 亚洲欧洲日产国产综合网| 亚洲第一级黄色片| 免费不卡亚洲欧美| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩理论| 亚洲欧美日韩国产| 欧美亚男人的天堂| 亚洲伊人一本大道中文字幕| 亚洲欧美日韩中文视频| 国产精品国内视频| 午夜精品理论片| 久久久久久国产精品一区| 国产一区二区精品久久| 久久精品一区二区| 欧美激情亚洲国产| 99精品视频免费观看视频| 欧美日韩在线三区| 亚洲欧洲99久久| 蜜臀99久久精品久久久久久软件| 在线播放豆国产99亚洲| 麻豆国产精品777777在线 | 国内精品一区二区| 亚洲欧美综合v| 日韩视频在线一区| 欧美精品一区二区三区蜜臀| 最新国产成人av网站网址麻豆| 亚洲裸体在线观看| 国产精品视频网站| 久久久久这里只有精品| 亚洲激情专区| 午夜久久久久| 亚洲高清123| 国产精品黄色| 久久久久久久久岛国免费| 亚洲国产精品久久久久| 午夜一区二区三区在线观看| 尤物在线精品| 国产精品久久激情| 久久亚洲不卡| 亚洲专区国产精品| 欧美高清在线一区二区| 欧美一级专区| 亚洲精品欧美日韩专区| 你懂的国产精品永久在线| 蜜桃av一区二区在线观看| 一区二区三区回区在观看免费视频| 国产精品久久久久久久午夜片| 久久久久综合| 亚洲欧美成人在线| 亚洲美女色禁图| 欧美18av| 久久精品一区二区国产| 在线亚洲+欧美+日本专区| 亚洲成人在线网| 国产日韩一区二区三区在线播放 | 欧美电影专区| 久久久久在线观看| 午夜亚洲视频| 在线中文字幕不卡| 亚洲日本久久| 亚洲国产精品高清久久久| 国产嫩草一区二区三区在线观看| 欧美精品1区| 免费亚洲一区二区| 久久综合成人精品亚洲另类欧美| 午夜在线a亚洲v天堂网2018| 99精品热6080yy久久| 久久久伊人欧美| 亚洲电影在线观看| 国产精品video| 欧美日韩国产精品成人| 久久综合亚州| 久久久久久亚洲精品杨幂换脸 | 亚洲欧美日韩国产一区二区三区 | 久久国产精品一区二区| 午夜在线视频一区二区区别| 一区二区欧美亚洲| av成人毛片| 在线视频欧美一区| 亚洲综合日韩中文字幕v在线| 亚洲免费黄色| 99在线精品观看| 在线一区二区日韩| 亚洲欧美国产另类| 午夜精品久久久久久久| 亚洲欧洲综合另类在线| 国产欧美成人| 国产一区自拍视频| 国产一区二区看久久| 国产一区香蕉久久| 樱桃成人精品视频在线播放| 伊人成人在线| 亚洲欧洲视频在线| 一本一本久久a久久精品牛牛影视| 亚洲伦理在线观看| 亚洲一区二区视频| 久久精品欧美日韩精品| 免费国产自线拍一欧美视频| 欧美不卡视频一区发布| 亚洲国产欧美精品| 亚洲视频在线观看一区| 性做久久久久久久久| 美女成人午夜| 国产精品极品美女粉嫩高清在线| 国产精品视频久久久| 极品少妇一区二区| 亚洲婷婷国产精品电影人久久| 小辣椒精品导航| 毛片av中文字幕一区二区| 亚洲日本中文字幕| 午夜精品久久久久久久男人的天堂| 久久漫画官网| 国产精品久久久久久av福利软件| 国产一区在线视频| 日韩视频在线免费观看| 欧美在线视频观看免费网站| 亚洲大胆女人| 亚洲一区二区黄| 欧美a级大片| 国产真实精品久久二三区| 日韩视频第一页| 久久久午夜精品| 一本色道**综合亚洲精品蜜桃冫| 久久国产精品一区二区三区四区| 欧美国产三级| 伊人蜜桃色噜噜激情综合| 亚洲午夜精品一区二区| 欧美成人视屏| 欧美一区二区在线播放| 欧美午夜一区| 亚洲蜜桃精久久久久久久| 美女网站久久| 欧美中文在线视频| 国产精品mm| 99在线精品观看| 欧美激情91| 久久久久久久综合狠狠综合| 国产精品欧美日韩一区二区| 亚洲精品久久久久久久久久久久久 | 久久精品视频在线看|