Dlaczego używasz przestrzeni kamery zamiast przestrzeni modelu dla normalnych?

Uczę się grafiki OpenGL i cieniam się. Samouczki, które czytam, każą mi przekształcić mój normalny i lekki wektor w przestrzeń kamery. Dlaczego to? Dlaczego nie możesz po prostu trzymać sznurków w przestrzeni modelu?

Kolejnym pytaniem jest sposób obsługi przekształceń modelu. Nie mogę znaleźć ostatecznej odpowiedzi. Obecnie mam ten kod:

vec3 normCamSpace = normalize(mat3(V) * normal);"
vec3 dirToLight = (V*vec4(lightPos, 0.0)).xyz;"
float cosTheta = clamp(dot(normCamSpace, dirToLight),0,1);"

V to matryca widoku lub matryca kamery. Nie jestem pewien, jak przenieść lub edytować światło, gdy model zmienia pozycję, obrót i skalę.

questionAnswers(2)

yourAnswerToTheQuestion