-
혼합공식@ 16. 1 ~ 17. 1/게임프로그래밍의 정석 2014. 7. 23. 22:51
알파 블렌딩 관련..
사과주스(a)와 오렌지 주스(b)가 있다고 하자. 이들을 섞어서 혼합 주스 1리터를 만들고자 한다.
사과주스를 x만큼 오렌지주스를 y만큼 섞는다면
xA + yB = 혼합주스
더한양이 1리터라는 사실에서 아래와 같다.
x + y = 1
이 식을 변형하면 y = 1-x가 되고 이를 위의 주스 혼합 공식에 넣으면..
xA + (1 - x)B = 혼합주스
이렇게 된다.
x가 1이라면 전부 사과주스만 나오고... x가 0이면 전부 오렌지 주스가 나온다..
x를 그 사이값으로 하면 나름 혼합주스가 나온다.
색도 이와 같다.
A를 전경 B를 배경이라고 하면
xA + (1-x)B = 혼합된 색
x는 알파 채널값을 사용한다. 근데 알파 채널은 0에서 255사이값을 가지니 더해서 1이 되게 하기위해(위의 공식에서 1이 최대니까..)
255를 나눠서 0에서 1사이값으로 해준다.(0.2...0.3..0.4 이런식의 값이 되겠지..)근데 이 값을 정수인 0~255로 하려면 어떻게 해야하나
보간 공식을 활용하여
xA + (255-x)B / 255
이러면 된다.
그리고 이걸 풀고 묶어보면
x(A-B)/255 + B 가 된다.
'@ 16. 1 ~ 17. 1 > 게임프로그래밍의 정석' 카테고리의 다른 글
보간법 (0) 2015.01.06 실시간 게임(키보드 입력, 프레임레이트) (0) 2014.07.24 (챕터 06) 문자를 출력하는 방법 (0) 2014.03.02 (챕터 03) 이미지 파일을 사용하자(2) (0) 2014.03.01 싱글톤 클래스 (0) 2013.05.06