Samplerとは?

texture-sampler.jpg
リアルライフのテクスチャサンプラーはこのように、柄見本ですが、
シェーダのテクスチャサンプラーって何?の疑問に答えるページ

サンプラーとは?

シェーダの中からテクスチャにアクセスするときの情報がはいっているもの。

Samplerの種類

GLSL sampler OpenGL texture enum Texture type
sampler1D​ GL_TEXTURE_1D​ 1D texture
sampler2D​ GL_TEXTURE_2D​ 2D texture
sampler3D​ GL_TEXTURE_3D​ 3D texture
samplerCube​ GL_TEXTURE_CUBE_MAP​ Cubemap Texture
sampler2DRect​ GL_TEXTURE_RECTANGLE​ Rectangle Texture
sampler1DArray​ GL_TEXTURE_1D_ARRAY​ 1D Array Texture
sampler2DArray​ GL_TEXTURE_2D_ARRAY​ 2D Array Texture
samplerCubeArray​ GL_TEXTURE_CUBE_MAP_ARRAY​ Cubemap Array Texture
samplerBuffer​ GL_TEXTURE_BUFFER​ Buffer Texture
sampler2DMS​ GL_TEXTURE_2D_MULTISAMPLE​ Multisample Texture
sampler2DMSArray GL_TEXTURE_2D_MULTISAMPLE_ARRAY​ Multisample Array Texture

影のサンプラー

GLSL sampler OpenGL texture enum
sampler1DShadow ​ GL_TEXTURE_1D​
sampler2DShadow​ GL_TEXTURE_2D​
samplerCubeShadow​ GL_TEXTURE_CUBE_MAP​
sampler2DRectShadow ​ GL_TEXTURE_RECTANGLE​
sampler1DArrayShadow ​ GL_TEXTURE_1D_ARRAY​
sampler2DArrayShadow ​ GL_TEXTURE_2D_ARRAY​
samplerCubeArrayShadow​ GL_TEXTURE_CUBE_MAP_ARRAY​

符号なし整数型のサンプラー

GLSL sampler OpenGL texture enum Texture type
usampler1D​ GL_TEXTURE_1D​ 1D texture
usampler2D​ GL_TEXTURE_2D​ 2D texture
usampler3D​ GL_TEXTURE_3D​ 3D texture
usamplerCube​ GL_TEXTURE_CUBE_MAP​ Cubemap Texture
usampler2DRect​ GL_TEXTURE_RECTANGLE​ Rectangle Texture
usampler1DArray​ GL_TEXTURE_1D_ARRAY​ 1D Array Texture
usampler2DArray​ GL_TEXTURE_2D_ARRAY​ 2D Array Texture
usamplerBuffer​ GL_TEXTURE_BUFFER​ Buffer Texture

符号あり整数型のサンプラー

これを使うには冒頭に

#version 130

バージョン130よりも後のものを使うことを宣言する必要がある。
GLSL sampler OpenGL texture enum Texture type
isampler1D​ GL_TEXTURE_1D​ 1D texture
isampler2D​ GL_TEXTURE_2D​ 2D texture
isampler3D​ GL_TEXTURE_3D​ 3D texture
isamplerCube​ GL_TEXTURE_CUBE_MAP​ Cubemap Texture
isampler2DRect​ GL_TEXTURE_RECTANGLE​ Rectangle Texture
isampler1DArray​ GL_TEXTURE_1D_ARRAY​ 1D Array Texture
isampler2DArray​ GL_TEXTURE_2D_ARRAY​ 2D Array Texture
isamplerBuffer​ GL_TEXTURE_BUFFER​ Buffer Texture

符号あり整数型サンプラーを使うとどうなるか?

texture2Dの戻り値がivec4になる

ivec4 col=texture2D(isampler2D,uv);

[[/code]]
Bibliography

サポートサイト Wikidot.com shader