Opengl 加载带有3D纹理的浮点数组?

Opengl 加载带有3D纹理的浮点数组?,opengl,glsl,textures,Opengl,Glsl,Textures,我有一个具有强度值的浮点数组,我需要在opengl中将该数组作为3d纹理加载,并在片段着色器中将其作为红色读取(float sample=texture(cord,volumeText).r)。 阵列大小为256*256*256,强度值介于0.0到256.0之间 这是强度值的示例: 75.839354473071637, 64.083049468866022, 65.253933716444365, 79.992431196592577,

我有一个具有强度值的浮点数组,我需要在opengl中将该数组作为3d纹理加载,并在片段着色器中将其作为红色读取(
float sample=texture(cord,volumeText).r
)。 阵列大小为256*256*256,强度值介于0.0到256.0之间

这是强度值的示例:

   75.839354473071637,     
   64.083049468866022,    
   65.253933716444365,     
   79.992431196592577,     
   84.411485976957096,     
   0.0000000000000000,     
   82.020319431382831,     
   76.808403454586994,     
   79.974774618246158,     
   0.0000000000000000,     
   91.127273013466336,     
   84.009956557448433,     
   90.221356094672814,     
   87.567422484025627,     
   71.940263118478072,     
   0.0000000000000000,     
   0.0000000000000000,     
   74.487058398181944,
   ..................,
   ..................

要加载这样的纹理,可以使用输入格式
GL\u RED
并键入
GL\u FLOAT
。is
GL_R16F
的适当大小的内部格式。见:

glTexImage3D(GL_纹理_3D,0,GL_R16F,256,256,0,GL_红色,GL_浮动,数据PTR)

内部格式为浮点格式。这意味着当您从碎片着色器中的纹理读取红色通道(
.r
)时,值仍在[0.0,256.0]范围内。

不清楚您有什么精度要求。