• <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>

            那誰(shuí)的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            NeHe OpenGL教程第六課--Texture Mapping(紋理映射)的學(xué)習(xí)筆記

            前面幾課基本上沒(méi)有什么好多說(shuō)的,所以我決定了從第六課開(kāi)始,堅(jiān)持著寫下去,歡迎各位遇到問(wèn)題的時(shí)候和我討論,每篇筆記中我不想簡(jiǎn)單的重復(fù)或者翻譯原文的內(nèi)容,只想做到言簡(jiǎn)意賅的把要點(diǎn)列出來(lái),把握住每課的重點(diǎn):)
            第六課的主要內(nèi)容是紋理映射,從中可以學(xué)習(xí)到載入紋理數(shù)據(jù)之后如何綁定到紋理對(duì)象之中,然后使用相應(yīng)的對(duì)象進(jìn)行紋理映射.
            首先,代碼采用自己寫的LoadBMP函數(shù)載入位圖數(shù)據(jù),之后綁定并且生成對(duì)應(yīng)的紋理對(duì)象.相應(yīng)的代碼如下:

                // Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
                if (TextureImage[0]=LoadBMP("Data/NeHe.bmp"))
                
            {
                    Status
            =TRUE;                                    // Set The Status To TRUE

                    glGenTextures(
            1&texture[0]);                    // Create The Texture

                    
            // Typical Texture Generation Using Data From The Bitmap
                    glBindTexture(GL_TEXTURE_2D, texture[0]);
                    glTexImage2D(GL_TEXTURE_2D, 
            03, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
                    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
                    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
                }
            glGenTextures函數(shù)生成紋理對(duì)象,第一個(gè)參數(shù)是紋理參數(shù)的數(shù)量,第二個(gè)參數(shù)是存放紋理對(duì)象的數(shù)組,這里只生成了一個(gè)紋理對(duì)象,如果多的話就要寫一個(gè)循環(huán)來(lái)逐個(gè)生成.
            glBindTexture函數(shù)把當(dāng)前紋理狀態(tài)綁定到紋理對(duì)象中,第一個(gè)參數(shù)指明了綁定的紋理目標(biāo),第二個(gè)參數(shù)是紋理對(duì)象.調(diào)用這個(gè)函數(shù)之后,后面的操作都是對(duì)這個(gè)紋理對(duì)象進(jìn)行的操作.首先是使用glTexImage2D函數(shù)讀取位圖數(shù)據(jù)來(lái)生成紋理,之后的glTexParameteri函數(shù)分別指定了發(fā)大和縮小過(guò)濾器的參數(shù).

            在具體使用紋理對(duì)象的時(shí)候同樣的要使用glBindTexture函數(shù),如前所述,這個(gè)函數(shù)是把當(dāng)前狀態(tài)綁定到對(duì)應(yīng)的紋理對(duì)象中去,也就是說(shuō)使用了這個(gè)函數(shù)之后,后面的對(duì)紋理圖像的生成或者是使用都在這個(gè)紋理對(duì)象上面進(jìn)行的,因此在后面的渲染部分的函數(shù)中同樣也使用了glBindTexture函數(shù).

            OK,本課沒(méi)有太多的難點(diǎn),需要注意的兩個(gè)地方是:
            1)使用位圖數(shù)據(jù)生成紋理圖像之后要記得釋放位圖數(shù)據(jù)的內(nèi)存,代碼中有體現(xiàn),不再詳述.
            2)在程序結(jié)束或者不再使用某一個(gè)紋理對(duì)象的時(shí)候要使用glDeleteTextures釋放紋理對(duì)象的內(nèi)存,代碼中并沒(méi)有這個(gè)函數(shù)的使用,它的參數(shù)和glGenTextures是一樣的,一個(gè)負(fù)責(zé)生成一個(gè)負(fù)責(zé)銷毀.

            紋理對(duì)象的使用方便了對(duì)紋理的管理,尤其是當(dāng)紋理數(shù)量較多的時(shí)候,可以很方便的切換紋理,可以把紋理對(duì)象看作是管理紋理圖像的"指針".

            本課主要需要掌握的函數(shù)是:
            1)glGenTextures:生成紋理對(duì)象
            2)glBindTexture:綁定紋理對(duì)象
            3)glDeleteTextures:銷毀紋理對(duì)象
            4)glTexImage2D:根據(jù)圖形數(shù)據(jù)生成紋理圖像
            5)glTexParameteri:設(shè)置紋理參數(shù).

            原文鏈接:
            http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06

            posted on 2006-02-13 23:37 那誰(shuí) 閱讀(3768) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 圖形學(xué)


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久婷婷国产综合精品| 天天综合久久一二三区| 亚洲人成精品久久久久| 性欧美丰满熟妇XXXX性久久久 | 久久伊人精品青青草原高清| 久久天堂电影网| 性高湖久久久久久久久AAAAA| 午夜精品久久久久久久无码| 国产成人精品综合久久久| 久久精品国产一区| 狠狠色综合网站久久久久久久高清 | 久久人与动人物a级毛片| 久久亚洲精品国产精品| 99久久亚洲综合精品成人| 国产色综合久久无码有码| 狠狠色丁香久久婷婷综| 日日狠狠久久偷偷色综合96蜜桃| 狠狠色丁香久久婷婷综合| 大香网伊人久久综合网2020| 亚洲va久久久噜噜噜久久男同 | 久久天天躁狠狠躁夜夜不卡| 男女久久久国产一区二区三区| 精品久久一区二区三区| 99精品国产免费久久久久久下载| 色成年激情久久综合| 蜜臀久久99精品久久久久久小说 | 色综合久久综精品| 精品熟女少妇AV免费久久| 久久青青草原精品国产不卡| 久久精品a亚洲国产v高清不卡| 亚洲精品第一综合99久久| 国内精品久久久久国产盗摄| 青青草国产精品久久久久| 国内精品久久久人妻中文字幕| 亚洲香蕉网久久综合影视 | 久久久无码精品亚洲日韩京东传媒 | 久久精品一区二区影院| 久久99精品久久久久久| 狠狠狠色丁香婷婷综合久久俺| 日韩精品久久无码中文字幕| 亚洲中文字幕久久精品无码喷水|