0
我正在用OpenGL做一些GPGPU編程。「cast」GL_R8到GL_BGRA
我希望能夠將所有數據寫入格式爲GL_R8的一維紋理,這樣我基本上可以將其視爲std:array
對象。
然後在渲染期間,我希望能夠設置GPU應該如何讀取圖像,例如,將其「投射」到1024x1024 BGRA。
這可能嗎?
例如我希望能夠做到:
gpu::array<uint8_t> data(GL_R8, width*height*4);
gpu::bind(data, GL_TEXTURE0, gpu::format::bgra, width, height);
難道他不能只是設置從R到RGBA紋理swizzle? 'glTexParameteri(GL_TEXTURE _...,GL_TEXTURE_SWIZZLE_ {R,G,B,A},GL_RED);' – datenwolf
@datenwolf:那實際上不會做他想做的事。它會將紅色廣播給所有四個組件。他想要的是每四個連續的紅色成分變成RGBA成分。也就是說,要能夠一次寫入一個組件,但一次只能讀取四個組件。 –