三維紋理的定義、資料繫結和二維、一維紋理相同,紋理有最大寬度、高度、深度限制,gl_max_texture_size的值是紋理的最大寬度和高度(二維和三維的最大寬度和高度一致,一維的最大寬度應該也是這個一維紋理使用較少),gl_max_3d_texture_size的值是三維紋理的最大深度。
查詢方式
glint max;
glgetintegerv(gl_max_texture_size, &max);
使用glbindimagetexture函式傳送紋理資料到著色器時需注意第四個引數設定。
glgentextures(1, &texid);//為紋理物件保留名稱
glbindtexture(gl_texture_3d, texid);//繫結到紋理目標
//設定紋理模式
gltexparameteri(gl_texture_3d,gl_texture_min_filter,gl_nearest);
gltexparameteri(gl_texture_3d,gl_texture_mag_filter,gl_nearest);
gltexparameteri(gl_texture_3d,gl_texture_wrap_s,gl_clamp);
gltexparameteri(gl_texture_3d,gl_texture_wrap_t,gl_clamp);
//定義紋理的資料格式,即生成乙個空紋理
glteximage3d(gl_texture_3d,0,gl_rgba32f_arb,width,height,deep,0,gl_rgba,gl_float,0);
//給紋理傳入資料
glbindtexture(gl_texture_3d,texid);
gltexsubimage3d(gl_texture_3d,0,0,0,0,width,height,deep,gl_rgba,gl_float,data);
#version 430 core
layout (local_size_x=4, local_size_y=4, local_size_z = 4) in;
layout (rgba32f, binding = 0) uniform image3d input_image;
layout (rgba32f, binding = 1) uniform image3d output_image;
void main(void)
gluseprogram(computerprogram);
//第四個引數設定是gl_true,當texid是一維或者二維紋理時不需要分層是gl_false;
glbindimagetexture(0, texid, 0, gl_true, 0, gl_read_only, gl_rgba32f);
glbindimagetexture(1, outputtexid, 0, gl_true, 0, gl_write_only, gl_rgba32f);
注意在opengl4.2及以上版本才可以使用。
void glbindimagetexture(gluint unit, gluint texture, glint level, glboolean layered, glint layer, glenum access, glenum format);參考**:(
python三維座標 python中三維輪廓的座標
感謝在這個 上獲得的知識。我能寫乙個簡單的指令碼,列印出等高線圖的座標 x和y 在 下面是乙個例子 from numpy import from pylab import generate a set of random points npts 500 phi random npts 2 pi th...
Webg中三維座標
1 webgl座標系 在現實世界中,所有的事物都是三維的的,而計算機螢幕顯示的是二維的圖形,將三維和二維聯絡在一起的紐帶就是座標。webgl處理的是三維圖形,所以它使用三維座標系統,具有x軸 y軸 z軸。當你面像計算機螢幕時,x軸是水平的 正 方向為右 y軸是垂直的 正方向為下 z軸垂直於螢幕 正方...
MATLAB中三維曲面命令
曲面圖是在網格圖的基礎上,在小網格之間用顏色填充。可以通過surf命令來畫曲面圖。如果想看曲面背後圖形的情況,可以在曲面的相應位置打個洞孔,即將資料設定為nan,所有的matlab作圖函式都忽略nan的資料點,在該點出現的地方留下乙個洞孔。例 觀察山峰在x 0.6,0.5 y 0.8,1,2 時曲面...