나는 간단한 뷰어를 구현하려고하는데 나는 점 광원에 대해 감쇠를 구현하려고했다.가벼운 감쇠 이상한 행동
내가 가진 문제는 다음과 같다 :
나는 자연스러운 라인이 영역에 걸쳐가는 것을 가지고있다. 쉐이더에서
관련 코드는 다음과 같습니다
....
vec3 Ldist = uLightPosition-vPosition.xyz;
vec3 L = normalize(Ldist);
....
float NdotL = max(dot(N,L),0.0);
float attenuation = 1.0/ (Ldist*Ldist);
vec3 light = uAmbientColor;
if(NdotL>0.0){
specularWeighting = rho_s * computeBRDF(roughness, Didx, Gidx, Fidx, L, N, V);
light = light + NdotL*uLightColor*attenuation*(specularWeighting*specularColor*envColor.rgb + diffuseColor);
}
, 내가 정말 잘못 될 수있는 것을 볼 수 없습니다 조금 더 고급 조명하는 새로운된다.
(내가 다른 질문을해야 할지도 모르겠지만 너무 작아서 내가 여기에이 질문을 할 수 있는지 궁금해했다. 좋은 결과를 얻기 위해 빛과 강도 위치를 선택하는 법칙이 있는가? Ldist
이 vec3
과 *
한, 모든
vec3 Ldist = uLightPosition-vPosition.xyz;
[...]
float attenuation = 1.0/ (Ldist*Ldist);
첫째,이 컴파일조차 안 : 거기 구 같은 단일 개체에)
감사합니다. 예, Ldist는 코드를 복사하여 붙여 넣기에 오타가되었습니다. 복사 조도가 1/r^2에 비례한다는 것을 알았 기 때문에 감쇠가 잘못 되었기 때문에 그렇게했습니다. 하지만 지금은 매력처럼 작동합니다. 대단히 감사합니다. – JTulip