본문 바로가기

나의 플랫폼/안드로이드

[ Android Opengl es ] Blur효과

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
아직 실험해보지는 않았다.

이것도 역시 Bitmap의 컬러값을 이용하여,변경하는 함수이다.

function BlurHorizontal (source, dest, radius) {
        for (y = 0; y < height; ++y) {
            for (x = 0; x < width; ++x) {
                total = 0
                for (kx = -radius; kx <= radius; ++kx)
                    total += source(x + kx, y)
                dest(x, y) = total / (radius * 2 + 1)
            }
        }
    }
    
    function BlurVertical (source, dest, radius) {
        for (x = 0; x < width; ++x) {
            for (y = 0; y < height; ++y) {
                total = 0
                for (ky = -radius; ky <= radius; ++ky)
                    total += source(x, y + ky)
                dest(x, y) = total / (radius * 2 + 1)
            }
        }
    }

    function Blur (source, dest, radius) {
        BlurHorizontal(source, temp, radius)
        BlurVertical(temp, dest, radius)
    }

 출처 : http://www.blackpawn.com/texts/blur/default.html


 중요한 건 , 모든 연산이 CPU에서 하기 때문에.
매번 블러를 적용시킬려고 하면, 속도가 현저하게 저하되는 것을 느낄 수 있을 것 같다.


먼가 Opengl es 내적으로 GPU를 이용하는 방법을 빨리 찾아야 할 것 같다.

어렵다 정말...^^;;;