2
我正在讀取一個由16位圖像組成的z-stack(即圖像數組)。我是webgl着色器的新手,我遇到了如何遍歷數組的問題。我在哪個webgl着色器將數組轉換爲圖像
我希望將整個可變長度的圖像列表(最多可達數百個)放到GPU上。然後,隨着z堆棧中的每次更改,gpu都將渲染新圖像。目前,我有以下:
<script id="shader-vertex" type="x-shader/x-vertex">
attribute float a_fluxes;
varying float v_flux;
attribute vec2 a_position;
uniform vec2 u_resolution;
void main() {
vec2 zeroToOne = a_position/u_resolution;
gl_Position = vec4((zeroToOne * 2.0 - 1.0) * vec2(1, -1), 0, 1);
v_flux = a_fluxes/256.;
}
</script>
<script id="shader-fragment" type="x-shader/x-fragment">
precision highp float;
varying float v_flux;
void main() {
gl_FragColor = vec4(v_flux, v_flux, v_flux, 1);
}
</script>
圖像(X,Y,和z)的3維陣列應該被轉換成一維列表進入a_fluxes。
如何迭代z圖像之一的x和y尺寸?我是否使用循環迭代頂點着色器,還是需要將所有可能的像素x,y座標數組傳遞給頂點着色器?我真的應該在片段着色器上進行這些計算嗎?
您不會遍歷x,y座標,而且您不希望:否則,該工作將如何在GPU單元之間分配?循環並不總是容易分開。 OpenGL將這些工作劃分爲單元併爲您迭代。至於如何最好地處理這種情況,那麼這超出了我目前的新手經驗。 – JayC 2013-02-14 05:32:58