본문 바로가기
나머지/IT개발.잡다한것.

[영상처리] 알파블랜딩

by 무늬만학생 2013. 1. 21.
반응형

게임의 특수한 비주얼씬을 연출할 때 사용되는 것으로 이펙트(Effect)라고 한다. 

- 2D 게임에 쓰는 그래픽 이펙트는 하드웨어나 컴퍼넌트가 지원해 주지 않으므로 프로그래머가 직접 만들어야 한다. 


3.1 반투명 

2D 게임 그래픽에서 물체가 겹쳤을 때 마치 두 이미지가 섞여 보이는데 이것을 반투명이라고 한다. 


==> 걍 50% 알파블렌딩이라고 생각하시면 됩니다. ^^; 


구현 계산식은 아래와 같다. 

R = 뒷 이미지 R / 2 + 앞 이미지 R / 2 

G = 뒷 이미지 G / 2 + 앞 이미지 G / 2 

B = 뒷 이미지 B / 2 + 앞 이미지 B / 2 

이 방법은 계산이 쉽고 쉬운 계산식에 비해서 효과가 좋다 

- 예를 들어 색상 값인 RGB( 0, 0, 0)인 검은 배경에 RGB(255, 255, 255)의 흰점이 만난다면 반투명색은 RGB(122, 122, 122)인 회색이 된다는 원리이다. 



3.2 광원 효과 

두 이미지가 만나면 빛이 비추는 듯한 느낌을 주는 효과를 광원 효과라고 한다. 계산 원리는 반투명과 비슷하지만 계산식은 아래와 같다 

R = 뒷 이미지 R + 앞 이미지 R 

G = 뒷 이미지 G + 앞 이미지 G 

B = 뒷 이미지 B + 앞 이미지 B 

이렇게 하면 두 이미지가 겹치면서 밝아져 버린다. 빛의 원리와 같다. 이식에서 RGB각 요소가 255를 넘을 수 없기 때문에 계산 후 RGB값이 255를 넘게 되면 255로 값을 고정시켜야 한다. 



알파블렌딩 (alpha-blending) 

2반투명과 비슷한 효과이다. 다른 점은 알파값을 이용하여 투명한 명한 정도의 농도를 조절할 수 있다는 점에서 그냥 반투명과는 다르다. 즉 알파블렌딩을 이용하면 완전한 색의 캐릭터에서 점차적으로 투명해지는 캐릭터를 만들 수 있고 거의 완전한 투명에 가까운 캐릭터도 만들어 낼 수 있다. 알파블렌딩의 계산식은 다음과 같다. 


R = 뒷 이미지 R * (100 - Alpha) / 100 + 앞 이미지 R * Alpha / 100 

G = 뒷 이미지 G * (100 - Alpha) / 100 + 앞 이미지 G * Alpha / 100 

B = 뒷 이미지 B * (100 - Alpha) / 100 + 앞 이미지 B * Alpha / 100 


- Alpha값은 투명화의 정도를 의미한다. 



3.4. 팔레트 조작 

다른 용어로는 컬러 인덱스 조절이라고도 한다. 

팔레트의 주 기능은 256 게임을 만들어도 6만 가지 색을 쓰는 게임처럼 만들 수 있단 것이다. 

이미 출력된 색을 바꿔주는 효과를 팔레트 애니메이션이라고 한다. 

- 이미 출력되고 있는 색이 붉은 색이라면 붉은 색을 지정한 인덱스 값을 알맞게 변화해서 프레임의 변화 없이 바로 애니메이션을 만들어 낼 수 있는 그래픽 효과이다. 


위 설명이 워낙 잘 나와 있어서~ 


두개의 이미지를 찍을때~ 예를 들어 아이템창이 있을때~ 마우스를 가져다 놓으면~ 


뒤에 아이템이 비취면서 관련된 설명이 나오져? 많이들 사용하는것 같습니다. ^^ 


덧붙쳐서~ 구현된 이펙트 효과중~ 그레이는 


R G B의 색상에 대해서~ R*20 G*50 B*30색상을 적당히 섞어서 100으로 나눈 색상의 값을 그레이 색상으로 출력했습니다. ^^; 


팔레트의 조작에 대해서는 가장 대표적인 게임이 디아블로나~ 스타크래프트를 보셔서 잘 이해가 될듯 합니다. 


팔레트의 조작은 적은용량과 빠른 속도를 구현하기 위해서 쓰고 있습니다. 요즘은 모바일쪽에서 많이들 쓰는것 같습니다. ^^ 


글구 블렌딩은 효과는 계산이 무지 많아지기 때문에~ 대체적으로 검정색으로 효과를 냅니다. 일반적으로 잘 먹고여~ ^^ 


그럼 멋진 겜 만드시기 바랍니다. ^^; 


----------------------------------------------------


출처 : Daum MobileCreater의 시간  님의 글입니다.

       http://www.codesos.com 

반응형