По сути, моя программа использует объект кадрового буфера для рендеринга в 3D-текстуру.Если 3D-текстура, которую я прикрепляю к fbo, имеет формат GL_RGB8, то есть 24 бита на тексель, проблем нет.Только 8-битные из них используются.Проблема возникает, когда я пытаюсь использовать GL_ALPHA8 (8 бит на тексель) в качестве внутреннего формата для 3D-текстуры, результат рендеринга будет пустым.Фрагмент шейдера cg, который я использовал для рендеринга в fbo, выглядит следующим образом:
void F_PureDecoder(
float3 vIndexCoord : TEXCOORD0,
out float color :COLOR)
{
... ...
color=float4(fL3,fL3,fL3,fL3);
}
Я делаю что-то не так, или fbo не поддерживает рендеринг в 8-битную текстуру texel?Я в первую очередь не уверен, правильный ли формат вывода фрагмента шейдера.Ведь кадровый буфер составляет 8 бит, но выходной - 24 бита.Должен ли я изменить формат вывода из фрагмента шейдера?Если да, то какой формат мне следует использовать?
Большое спасибо за любой ввод!