Texture Wrapping Mode
注:轉自http://blog.sina.com.cn/s/blog_61f4999d0100mhlq.html
在進行紋理帖圖時,圖象會出現在物體表面的(u,v)位置上,而這些值在[0.0,1.0]範圍內。但是,如果超出這個值域,會發生什麼情況呢?這由 紋理的對映函式來決定。在OpenGL中,這類對映函式稱為“Texture Wrapping Mode”;在D3D中,稱為“Texture Addressing Mode”。常見的有下面幾種:
1. 重複(GL_REPEAT):圖象在表面上重複出現。在演算法上,忽略紋理座標的整數部分,並將紋理圖的拷貝貼上在物體表面上。對於大多數複製紋理的使用, 在紋理頂部的紋理單元應與底部的紋理單元相匹配,在紋理左側的紋理單元也應與右側的紋理單元相匹配。這樣才能做到無縫連線。2. 擷取(GL_CLAMP):將大於1.0的數值設定為1.0,將小於0.0的數值設定為0.0,即將超出[0.0,1.0]範圍的數值擷取到[0.0,1.0]範圍內,這樣會導致紋理邊緣的重複。
3. 映象重複(GL_MIRRORED_REPEAT_ARB):圖象在物體表面上不斷重複,但是每次重複的時候對圖象進行映象或者反轉。這樣在紋理邊緣處比較連貫。在OpenGL中通過ARB_texture_mirrored_repeat擴充套件來實現。
4. 邊界擷取(CLAMP_TO_BORDER_ARB):在[0.0,1.0]範圍外的引數值用單獨定義的邊界顏色或紋理邊緣進行繪製。適合於繪製物體表面 的貼花紙。在OpenGL中通過ARB_texture_border_clamp擴充套件來實現,CLAMP_TO_BORDER_ARB在所有 mipmap層次上對紋理座標進行擷取,使nearest和linear過濾只返回邊界紋理單元的顏色。
5. 邊緣擷取(GL_CLAMP_TO_EDGE):總是忽略邊界。處於紋理邊緣或者靠近紋理邊緣的紋理單元都用作紋理計算,但是不包括邊界上的紋理單元。
相關文章
- Unity Texture Setting 中 Filter Mode的影響UnityFilter
- sample a texture as a rendertarget
- clarity, texture and sharpening
- [譯] AsyncDisplayKit/Texture 官方文件(1)
- [譯] AsyncDisplayKit/Texture 官方文件(2)
- Unreal Virtual Texture 原始碼導讀Unreal原始碼
- Projective Texture的原理與實現Project
- Texture+PBR兩種工作流程
- 第四個OpenGL程式,texture 紋理
- iOS混合開發庫(GICXMLLayout)五、Texture篇iOSXML
- gfx-hal Texture操作原始碼簡析原始碼
- Window mode
- consistent mode和current mode的區別
- Docker Swarm modeDockerSwarm
- oracle time modeOracle
- javascript strict modeJavaScript
- TM LOCK MODE
- sql_modeSQL
- Windws XP Mode
- Dataguard mode switch
- 更改Archive ModeHive
- Undo Mode (30)
- ftp命令 binary mode與ascii mode的區別FTPASCII
- UVA 10652 Board Wrapping(計算幾何基礎,求凸包)APP
- MySQL Strict SQL MODEMySql
- IDBTransaction.mode
- UFS之Power Mode
- chmod命令(change mode)
- ORACLE LOCK MODE 1.2.3.4.5.6Oracle
- bzoj2456: mode
- slave_exec_mode
- Vi Editing Mode
- expdp五種mode
- DataGuard:Switch Protection Mode
- mysql sql_modeMySql
- emacs go-modeMacGo
- trace 檔案中 consistent mode與current mode 的解釋
- Docker Swarm Mode簡介DockerSwarm