通過每幀改變紋理uv座標實現紋理迴圈滾動。
_texturev += 0.01f;
//這裡設定乙個矩形區域 並設定紋理uv座標
for(int i = 0; i < 4; ++i)
//頂點資料
struct vertex
;//紋理id
gluint _texture;
float _texturev =0;
;static fibitmap*
readimage
(const
char
* filename)
//2 載入
fibitmap *dib =
freeimage_load
(fifmt, filename,0)
; free_image_color_type type =
freeimage_getcolortype
(dib)
;//! 獲取資料指標
fibitmap* temp = dib;
dib =
freeimage_convertto32bits
(dib)
;freeimage_unload
(temp)
; byte* pixels =
(byte*
)freeimage_getbits
(dib)
;int width =
freeimage_getwidth
(dib)
;int height =
freeimage_getheight
(dib)
;for
(int i =
0; i < width * height *
4; i+=4
)return dib;
}static
void
oninit()
// 繪製
static
void
render
(glfwwindow * window),,
,,};
for(
int i =
0; i <4;
++i)
glmatrixmode
(gl_modelview)
;glbindtexture
(gl_texture_2d, _texture)
;glenable
(gl_depth_test)
;glenable
(gl_texture_2d)
;glenableclientstate
(gl_vertex_array)
;glenableclientstate
(gl_texture_coord_array)
;glvertexpointer(3
, gl_float,
sizeof
(vertex)
,&cubevertices[0]
.x);
gltexcoordpointer(2
, gl_float,
sizeof
(vertex)
,&cubevertices[0]
.u);
// 清成單位矩陣
glloadidentity()
;// 產生乙個矩陣
CUDA學習(二十四)
共享記憶體的影響 共享記憶體在多 種情況下可能會有所幫助,例如幫助合併或消除對全域性記憶體的冗餘訪問。但是,它也可以作為占用限制。在許多情況下,核心所需的共享記憶體量與所選塊的大小有關,但執行緒與共享記憶體元素的對映不需要是一對一的。例如,可能需要在核心中使用32x32元素共享記憶體陣列,但由於每塊...
第二十四周學習筆記
自監督關鍵點檢測和特徵描述子生成 自監督訓練方法 使用全卷積神經網路架構,乙個共享的encoder對進行編碼,兩個decoder分別檢測關鍵點和生成描述子 outperform lift in almost all metrics quantitatively scores strongly in ...
C 學習筆記(二十四)迭代器
迭代器 迭代器是自動生成可列舉型別和列舉數的結構。1.迭代器塊 迭代器塊是有乙個或多個yield語句的 塊。方法主體 訪問器主體 運算子主體都可以是迭代器塊。迭代器塊不需要同一時間內執行一串行的命令式語句,而是描述編譯器建立列舉數類的行為。yield return 語句執行了序列中返回的下一項。yi...