GLSL繫結多個Texture

2021-07-27 05:06:19 字數 1398 閱讀 3487

首先生成紋理索引

gluint textures = ;

glgentextures(2, textures);

glgentextures第乙個引數是生成texture索引的個數,第二個是索引的指標.

通過生成索引之後會發現textures的值變成

//繫結紋理

//opengl是個狀態機 直接把資料傳給已經繫結的紋理

glteximage2d(gl_texture_2d, 0, gl_rgb, width, height, 0, gl_rgb, gl_unsigned_byte, image);

//生成mipmap

glgeneratemipmap(gl_texture_2d);

soil_free_image_data(image);

//解除繫結

glbindtexture(gl_texture_2d, 0);

通過gluniform1i函式把紋理傳給片段著色器

ourshader.use();

// bind textures using texture units

glactivetexture(gl_texture0);

glbindtexture(gl_texture_2d, textures[0]);

gluniform1i(glgetuniformlocation(ourshader.program, "ourtexture1"), 0);

glactivetexture(gl_texture1);

glbindtexture(gl_texture_2d, textures[1]);

gluniform1i(glgetuniformlocation(ourshader.program, "ourtexture2"), 1);

查詢所有有多個 Texture 的 Matrial

using unityengine using unityeditor using system.collections using system.collections.generic public class findmultexturematerial editorwindow 當前介面狀態 ...

如何向GLSL中傳入多個紋理

如何向glsl中傳入多個紋理 如下程式,我們在glsl的fragment著色程式中定義了3個sample2d作為紋理引數。cpp view plain copy uniform sampler2d basemap uniform sampler2d reflectmap uniform sample...

第四課 多個Texture的繪製

上一課我們講解了關於如何用sdl顯示乙個bmp的,其實就是涉及sdl window,sdl su ce,sdl renderer,sdl texture,如果在sdl上面顯示幾個呢,也很簡單,也就是用多個sdl texture繪製在乙個sdl renderer上,在指定位置以及大小就可以了,下面看一...