Я пытаюсь выполнить запись журнала во время рендеринга на Intel X3100 под Linux (с использованием драйвера Ubuntu по умолчанию). Код выглядит примерно так:
vec4 frag_color;
frag_color.rgb = log(frag_value.rgb);
frag_color.a = frag_value.a
gl_FragColor = frag_color;
где frag_value получено из поиска текстуры. Теперь я могу установить текстуру таким образом, чтобы лог frag_value
давал разумный ответ (т. Е. Он находится в разумном диапазоне, чтобы дать frag_color 0.0-> 1.0), но он всегда рендерится как черный (поэтому я предполагаю, что это просто установив его на ноль). Конечно, я могу убедиться, что я разумно установил frag_value
, удалив журнал (и установив текстуру frag_value в диапазоне 0.0-> 1.0), что делает то, что я ожидаю, и умножение и другие тривиальные операции работают нормально.
Мой вопрос: это ожидаемое поведение? Я что-то пропустил? У некоторых графических процессоров или драйверов отсутствуют некоторые встроенные функции (например, sqrt, похоже, тоже не работает)?