2014-05-23 2 views
3

표면이 빛의 방향과 거의 평행 할 때 이런 종류의 원근감 앨리어싱을 제거하는 것은 불가능한 것처럼 보입니다.그림자 맵 퍼스널 앨리어싱

  • 상수 바이어스가 작동하지 않습니다 :

    나는 여러 가지 그림자 여드름 제거 기술을 테스트 한 피터는이 문제를

  • 슬로프 규모의 편견을 제거하기에 충분히 큰 편견에 패닝 소개 완전히 작동하지 않고 약간만 문제가 줄어 듭니다.
  • 일반적인 오프셋 그림자가 적용되지 않고 그림자가 추가로 변형됩니다.
  • glPolygonOffset가 작동하지 않으며 슬로프 스케일 바이어스와 같다고 의심됩니다.
  • PCL이 패턴을 약간 안티 앨리어싱했지만 실제로 문제를 해결하지는 않습니다. 패턴을 없애기 위해 필요한 필터링의 양은 거대한 블롭 그림자를 만듭니다.
  • VSM은 패턴을 약간만 변경합니다.
  • 그림자 맵 해상도와 픽셀 깊이를 늘리면 문제는 줄어들지 만 해상도는 완전히 내가 할 수있는 모든 것을보고에서 문제가 보인다 것에서도하지 않습니다 아무것도

을 투사의 근거리 및 원거리 평면을 확장 상당히 프레임 속도

  • 을 가지고 그림자 맵 생성을 위해 변환 것 수정 Google과 내 책에서 찾을 수 있지만 기본적으로 해결할 수없는 문제입니다. 그러나 인디 게임조차도 완벽하고 부드러운 그림자 맵 그림자가 있기 때문에 그 주위에 방법이 있어야한다는 것을 알고 있습니다.

    누구나이 비밀을 비밀리에 알고 싶습니까?

  • +0

    'glPolygonOffset' 실제로 *** 슬로프 스케일 바이어스입니다. 그리고 near/far면을 확장하는 것은 실제로 원하는 것과 반대입니다. 이것은 깊이 버퍼의 해석 능력을 손상시키고 * more * 앨리어싱을 유발합니다. Cascaded Shadow Maps를 고려해 보셨습니까? 원근 투영에서 그림자 정밀도를 배포하는 데는 상당히 잘 작동합니다. –

    +0

    그건 그 문제에 대한 해결책이 될 수 없습니다. 또한, 내가 그 스크린 샷을 찍은 데모는 현재 Cascaded Shadow Maps을 사용하고 있습니다. 이미지에서 볼 때 아직도 꽤 나 빠졌다고 볼 수 있습니다 – Daniel

    +0

    왜 솔루션이되지 않습니까? 그 계단 단계는 그림자 맵을 프로젝션 (light-space 및 view-space 텍셀 크기)에 부적절하게 맞추는 것으로부터옵니다.오버/언더 샘플링과 대결하는 모든 것이 일반적으로 도움이되지만, 깊이에 바이어스를 적용해도 실제로 나쁜 샘플 크기와 관련된 문제는 해결되지 않습니다. 바이어스는 양자화와 관련된 문제를 해결할 때만 효과적입니다 (예 : 깊이 버퍼의 정밀도가 깊이 변경을 등록하는 데 충분하지 않음). 귀하의 문제는 표본의 크기가 아니라 저장된 깊이의 정확성입니다. –

    답변

    1

    질문이 3 년이되었으므로 이미 답변을 찾았지만 가벼운 방향과 평행 한 표면의 아티팩트는 일반 오프셋으로 고정되어야한다고 말할 수 있습니다. 적어도 나는 그 접근법으로 같은 문제를 해결했다. 그것은

    vec4 shadowPosition = lightMatrix * vec4(_position, 1.0); 
    float bias = 0.0002; 
    float visibility = (texture(shadow, shadowPosition.xy/2. + .5).r - .5) * 2. < shadowPosition.z - bias ? 0.1: 1.0; 
    

    rendering artifacts

    이었다 그리고 지금은

    float bias = 0.02; 
    vec4 shadowPosition = lightMatrix * vec4(_position + _normal * bias, 1.); 
    float visibility = (texture(shadow, shadowPosition.xy/2. + .5).r - .5) * 2. < shadowPosition.z ? 0.1: 1.0; 
    

    artifacts are gone

    예입니다, 그림자의 경계는 이제 들쭉날쭉하지만, 나는 몇 가지 다른 기술이 나에게 도움이 될 희망합니다 나중에 부드럽게.