이미지를 통해 흐림 효과를 줄 수 있습니까?


9

안드로이드 게임에 libGDX를 사용하고 있습니다. 내가 알 수있는 한, 흐리게하기위한 API가 없습니다.

Wikipedia에서 읽을 때, 각 픽셀 RGB 값을 모든 인접한 값의 평균으로 설정하여 흐림이 형성되는 것처럼 보입니다. libGDX에서는 픽셀 데이터를 설정하는 것이 쉽지 않은 것 같습니다.

그래서 내 질문은 간단합니다.

이미지 만 사용하여 (적당한) 흐림 효과를 줄 수 있습니까?

여러 이미지 (투명도, 유형)를 잠재적으로 오버레이 할 수 있습니다. 하지만 이렇게 설득력있는 블러를 만들 수 있습니까?

나는 "아니오"라고 말하고 싶지만 다른 누군가가 비슷한 것을 성취했을 것입니다. 명확하게하기 위해 흐림 이미지 효과를 생성하기 위해 모든 이미지 위에 렌더링 할 수있는 1 + 일반 이미지 세트를 원합니다.


좋은 질문! 나도 같은 것을 생각했다!
다니엘 분석 재개 모니카는 말한다

@DantheMan 어떤 플랫폼에서?
ashes999

Unity3d 또는 CG 음영 언어.
다니엘은 모니카의 복원 원 모니카

투명한 이미지를 서로 오버레이하는 것이 좋습니다. 약간 오프셋하면 픽셀 평균화가 이루어지고 흐림 효과가 나타납니다.
Jeff

1
@ ashes999, "매직 이미지"를 찾고 있다면 그것들이 흐릿하게 나타나도록 존재하지 않는 것들에 겹쳐 질 수 있습니다. 알파 블렌딩 (오버레이)은 원격으로 흐리게 처리하는 것과 동일하지 않습니다. 죄송합니다.
Nathan Reed

답변:


7

이미지를 추가로 블렌딩하고 상수로 곱하면 블러가 가능합니다. 이웃의 픽셀을 평균화하는 대신, 적은 수의 픽셀로 대체 된 이미지의 평균 사본이 평균입니다. 또는 더 일반적으로 가중치를 제어하여 가우시안 블러 또는 모든 종류의 블러를 수행 할 수 있습니다.

알고리즘 적으로는 다음과 같습니다.

clear output_image to 0
foreach offset, weight in filter_kernel:
    output_image += input_image * weight, shifted by offset

블러를 수행하는 표준 방식과 동일한 오프셋과 가중치를 사용합니다. 예를 들어 가우시안 블러의 가중치를 생성하는 방법에 대한 많은 기사가 웹에 있습니다.


+1 좋은 답변. 내 경우에는 추가 기능이 없습니다.
ashes999

0

블러 링은 비용이 많이 드는 작업 일 수 있습니다.

  1. 여러 방향으로 흐릿한 이미지의 여러 사본을 저장 한 다음 (예 : 45 도의 배수) 런타임에 가장 일치하는 이미지를 표시하십시오. 이것은 메모리 사용 비용으로 최고의 성능을 제공 할 것입니다.
  2. 앤티 앨리어싱 / 스무딩을 사용하여 이미지의 크기를 줄인 다음 전체 크기로 되돌릴 수 있습니다. 이는 성능에 거의 영향을 미치지 않는 그래픽 하드웨어로 수행 할 수 있습니다.

동적이어야하기 때문에 작동하지 않습니다. 즉, 화면의 정확한 설정을 미리 알 수 없습니다.
ashes999
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.