OpenGL Fragment shader error

OpenGL Fragment shader error
0

Witam,
Piszę grę w Javie opartą na bibliotekach LWJGL. Znalazłem kod na shader winiety. W kodzie C++ (bodajże) shader'a kompilator wykrywa mi błąd na lini 7 i 12 - unexpected token ".", jako że nie znam się na tym języku/bibliotece to prosiłbym o pomoc:

Kopiuj
varying vec4 v_color;
varying vec2 v_texCoord0;

uniform vec2 u_resolution;
uniform sampler2D u_sampler2D;

const float outerRadius = .65, innerRadius = .4, intensity = .6;

void main() {
	vec4 color = texture2D(u_sampler2D, v_texCoord0) * v_color;

	vec2 relativePosition = gl_FragCoord.xy / u_resolution - .5;
	// relativePosition.x *= u_resolution.x / u_resolution.y;
	float len = length(relativePosition);
	float vignette = smoothstep(outerRadius, innerRadius, len);
	color.rgb = mix(color.rgb, color.rgb * vignette, intensity);

	gl_FragColor = color;
}
msm
Administrator
  • Rejestracja:około 16 lat
  • Ostatnio:5 miesięcy
0

Zamień:

Kopiuj
const float outerRadius = .65, innerRadius = .4, intensity = .6;

=>

Kopiuj
const float outerRadius = 0.65, innerRadius = 0.4, intensity = 0.6;
edytowany 1x, ostatnio: msm
K5
  • Rejestracja:około 12 lat
  • Ostatnio:około 7 lat
  • Lokalizacja:Tutaj,obok
  • Postów:759
0

I jeszcze:

Kopiuj
vec2 relativePosition = gl_FragCoord.xy / u_resolution - .5;

na

Kopiuj
vec2 relativePosition = gl_FragCoord.xy / u_resolution - 0.5;

Jeśli mój post jest dowodem mojej niekompetencji, to trudno, ale po to pytam, żeby się czegoś dowiedzieć.
msm
uznałem że to oczywiste i zostawiłem jako ćwiczenie dla czytelnika :P. Ale prawda.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.