Я пытаюсь реализовать зеркальное отражение, используя значения, взятые из оттенков серого, 1D текстуры как мультипликативный термин.Шейдер не черный, без света?
Я реализовал переключатель, чтобы я мог видеть разницу между ними, но по какой-то причине, когда выбранный цвет включен, области сцены без подсветки как светло-серый, где без выборки такие же области отображаются как черные.
Почему это? Вот область, где я устанавливаю цвет фрагмента.
if(u_specularRamp == 1)
{
specularAmount = clamp(specularAmount, 0.0, 1.0);
vec2 texCoords = vec2(specularAmount, 0.5);
vec4 sampledColor = texture(u_ramp_tex, texCoords);
specularReflection = vec3(0.3 * sampledColor.x);
}
else
{
specularReflection = vec3(0.3 * specularAmount);
}
FragColor = vec4(specularReflection, 1.0);
u_specularRamp представляет собой целое равномерный Я передаю, чтобы переключить сэмпл цвет и выключается.
'FragColor = vec4 (specularReflection, 1.0);' - это intetional для записи ** только ** зеркального цвета в качестве вывода? – Matso
Очевидно, это зависит от текстуры, которую вы пробовали. И, по-видимому, текстура не черная на левом краю. –
@Matso Да, это было так, что я мог более легко увидеть, что происходит. Это должно выводить черный цвет, где нет зеркальной подсветки, и это происходит, за исключением тех случаев, когда я беру выборку из текстуры. –