1. 程式人生 > >OpenGL學習十九:紋理過濾

OpenGL學習十九:紋理過濾

當物體放大縮小時導致投影在上面的紋理也隨著變化,OpenGL為了 優化其細節使其效果更好,因此可以採用紋理過濾
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

GL_TEXTURE_MAG_FILTER GL_NEAREST或GL_LINEAR
GL_TEXTURE_MIN_FILTER GL_NEAREST 速度快,效果差
GL_LINEAR計算量大。效果好
GL_NEAREST_MIPMAP_NEAREST 速度快,效果差
GL_LINEAR_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR
GL_LINEAR_MIPMAP_LINEAR 計算量大。效果好

GL_NEAREST是點取樣,GL_LINEAR 是雙線性取樣,GL_LINEAR_MIPMAP_LINEAR三線性取樣

    

命名紋理空間
void glGenTextures (GLsizei n, GLuint *textures);

判斷紋理是否已繫結
GLboolean glIsTexture (GLuint textureName);

建立和使用紋理物件
void glBindTexture (GLenum target, GLuint texture);

清除紋理物件
void glDeleteTextures (GLsizei n, GLuint *textures);

常駐紋理工作集
有些OpenGL實現支援高效能的紋理工作集,稱為常駐紋理,一般情況下,這些OpenGL實現具有專門的硬體來執行紋理操作,使用
GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);判斷紋理是否是常駐紋理
如果OpenGL實現並沒有建立高效能工作集,那麼紋理總被認識是常駐的

常駐紋理策略
如果常駐紋理足夠,絕不應該訪問非常駐紋理,如果常駐紋理資源有限,將經常使用的放入常駐紋理,同時減少所使用的紋理影象的大小,解析度以及mipmap層數量,或者使用glTexSubImage*()函式反覆使用同一塊紋理記憶體

可以設定紋理的優先順序。使經常用的紋理能夠有更多的機會的形成常駐紋理,當常駐紋理資源緊張時可以移除哪些低優先順序的紋理單元
void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);

如果幾個紋理物件具有相同的優先順序,OpenGL一般會採用最近最少使用策略來選擇哪些紋理單元該被移除常駐紋理

相關推薦

OpenGL學習紋理過濾

當物體放大縮小時導致投影在上面的紋理也隨著變化,OpenGL為了 優化其細節使其效果更好,因此可以採用紋理過濾 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); GL_TEXTURE_MA

OpenGL學習筆記4紋理

原始影象資料 畫素包裝 影象資料在記憶體中很少以緊密包裝的形式存在。在許多硬體平臺上,處於效能上的考慮,一幅影象的每一行都應該從一種特定位元組對齊地址開始。絕大多數編譯器會自動把變數和緩衝區放置在一個針對該架構對齊優化的地址上。 例如一個包含3個分量的

機器學習LinearSVM的軟間隔最大化模型

AI菌一 LinearSVM面臨的問題有時候本來資料的確是可分的,也就是說可以用 線性分類SVM

Hulu機器學習問題與解答系列 | 主題模型

cat jpeg ebp sel onf earch -s 2nf aic 今天的內容是 【主題模型】 場景描述 基於Bag-Of-Words(或N-gram)的文本表示模型有一個明顯的缺陷,就是無法識別出不同的詞(或詞組)具有相同主題的情況。我們需要一種技術能夠將具有

python cookbook第三版學習筆記未包裝的函式新增引數

比如有下面如下的程式碼,每個函式都需要判斷debug的是否為True,而預設的debug為False def a(x,debug=False):     if debug:       

opencv學習筆記二SIFT特徵點檢測與匹配

SIFT(Scale-invariant feature transform)是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點(interest points,or corner points)及其有關scale 和 orientation 的描述子得到特徵並進行

opencv學習筆記三視訊讀寫

 VideoCapture:視訊抓取的類 VideoWriter :寫視訊的類 fps(frame per second)幀率:每秒抓取顯示多少幀 #include<opencv2\opencv.hpp> using namespace cv; int m

opencv學習筆記四基於距離變換和區域性自適應閾值的物件計數

案例背景:統計下圖中玉米粒的個數 方案思路:先灰度化,再二值化(基於THRESH_TRIANGLE,圖中直方圖有明顯的雙峰值),腐蝕去掉一些小雜點,距離變換,再自適應區域性閾值,膨脹連成連通域,尋找輪廓進行計數。 距離變換於1966年被學者首次提出,目前已被廣泛應

opencv學習筆記五影象融合之背景替換

以證件照為例,圖片中有大部分為背景,先用kmeans對影象進行分割,可以得到背景的標籤,然後將影象分為前景和背景兩部分,非背景的都當作前景,顯示kmeans分割後的影象dst,將原影象前景賦給dst, 背景都設為0,得到kmeans分割後的影象如下,可看到邊緣處有一些小藍邊,

OpenGL學習筆記6高階紋理知識

矩形紋理 紋理目標為GL_TEXTURE_RECTANGLE。 首選,矩形紋理不能進行Mip貼圖; 然後,矩形紋理不是標準化的(實際上是對畫素定址) 最後,紋理座標不能重複,並且不支援紋理壓縮 載入矩形紋理 bool LoadTGATextu

Maven學習筆記之Maven倉庫(maven倉庫分類)

 Maven倉庫(maven倉庫分類) ---------- 對於maven來說,倉庫只分為兩類:本地倉庫和遠端倉庫。當maven根據座標尋找構件的時候,它首先會檢視本地倉庫,如果本地倉庫存在此構件,則直接使用;如果本地倉庫不存在此構件,或者需要檢視是否有更新的構件版本

Tensorflow深度學習矩陣切片與連結

1、TensorFlow矩陣切片操作:tf.slice函式 函式原型:slice(input_, begin, size, name=None) 引數: input:待切片的矩陣tensor。 begin:起始位置,表示從哪一個資料開始進行切片。這個起始

C#回顧學習筆記三事務

1)事務是什麼? 事務是保證多個操作全部成功時才認為是一次有效操作,當有一個操作失敗時就會認為全部操作無效,並且回到執行操作之前的狀態只有資料改變時(增加、修改、刪除)時才會引發事務,查詢不會引發事務。如果在寫入一個記錄時出現失敗,則事務會讓其他已經寫入的資料回滾,讓資料

MongoDB學習之旅二MongoDB 移除Shard Server

    有些時候有於硬體資源有限,所以我們不得不進行一些回收工作,下面我們就要將剛剛啟用的Shard Server 回收,系統首先會將在這個即將被移除的Shard Server 上的資料先平均分配到其它的Shard Server 上,然後最終在將這個Shard Server

Nginx詳解Nginx深度學習篇之進階高級模塊

cat max 地址 index 信息 access gin 切換 以及 這裏介紹一些最新或者理解起來有一些難度的Nginx模塊 一、secure_link_module模塊作用原理:1、制定並允許檢查請求的鏈接的真實性以及保護資源免遭未經授權的訪問2、限制鏈

【Java並發編程】之並發新特性—Executor框架與線程池(含代碼)

接口類 容易 20px 了解 大小 執行c 生命周期 schedule p s Executor框架簡介 在Java 5之後,並發編程引入了一堆新的啟動、調度和管理線程的API。Executor框架便是Java 5中引入的,其內部使用了線程池機制,它在java.

[Python爬蟲] 之Selenium +phantomjs 利用 pyquery抓取超級TV網數據

images 判斷 nco dex onf etc lac lin 利用   一、介紹     本例子用Selenium +phantomjs爬取超級TV(http://www.chaojitv.com/news/index.html)的資訊信息,輸入給定關鍵字抓取

Shell 腳本學習筆記Shell函數

class pan 顯示 結果 demo bsp 運行 獲得 cti 函數的定義格式: function funName() { action; return xxx; } 1、可以帶function fun() 定義,也可以直接fun()

ES6學習筆記修飾器

target ado ret () code targe 使用 rate get 一:修飾器(Decorator)是一個函數,用來修改類的行為。 1)定義與使用 function 修飾器名(target) { //target是被修飾對象,可用target.xxx進行

WebRTC學習攝像頭的捕捉和顯示

分享 註意 conn con wid pre rac art 升級版本 較新的WebRTC源代碼中已經沒有了與VoiceEngine結構相應的VidoeEngine了,取而代之的是MeidaEngine。MediaEngine包括了Medi