Porter / Duff Mode - 1 :: 안드로이드 설치 및 개발[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

안드로이드 설치 및 개발
[1]
등록일:2020-01-03 10:41:52 (0%)
작성자:
제목:Porter / Duff Mode - 1

Porter/Duff Mode

shader 를 사용할 때 모드중에 PorterDuff Mode(Porter/Duff) 가 있다. 오늘은 이녀석에 대해 간략하게 알아보자.

Porter/Duff 는 이 두사람이 쓴 논문에 있는 내용이 2개의 image 를 pixel 정보를 가지고 composite(조합?) 하는 방법에 대해 이야기하는데, 거기에 나온 내용을 구현해 놓은 것이다. 필자도 대충 본 것이라 일단 넘어가자 ^^

ref. 4 를 보면 PorterDuff Mode 의 연산방법에 대한 enum 값이 나와 있다. 근데 공부좀 해야 알아먹을 정도이다. 그래서 여기서는 조금 쉽게 이야기 한다.(대신에 부정확할 수 있지만 그것은 알아서 판단하자.^^;;)

일단 어떤 연산(operator) 이 있는지 알아보자.
  1. DST
  2. DST_ATOP
  3. DST_IN
  4. DST_OUT
  5. DST_OVER
  6. CLEAR
  7. SRC
  8. SRC_ATOP
  9. SRC_IN
  10. SRC_OUT
  11. SRC_OVER
  12. XOR
  13. LIGHTEN
  14. ADD
  15. DARKEN
  16. MULTIPLY
  17. OVERLAY
  18. SCREEN

18개나 있다 ^^;; 오늘은 이중에 설명이 비교적 쉬운(?) 위의 12개에 대해서만 이야기하도록 하자.

설명을 위해서 ref. 2 에서 그림을 좀 가져왔다. 그림을 보면 대략 감이 잡힌다.

from : ref. 2

Porter/Duff formula

Porter / Duff 의 operator 들은 아래 공식을 사용한다. operator 는 모두 아래 공식을 이용하고, s, d , b 에 어떤 값이 들어가느냐에 차이가 있다.
  • Asrc⋅[s]+Adest⋅[d]+Aboth⋅[b]

s, d , b 는 영역을 나타내는 변수라고 보면 된다.
  • source(s) : source 의 영역
  • destination(d) : destination 의 영역
  • both(b) : 겹쳐지는 영역


연산방법들, operators

겹쳐지는 부분

  • SRC_* : "겹쳐지는 부분에서 Source 의 색"을 사용한다.
  • DST_* : "겹쳐지는 부분에서 Dest 의 색"을 사용한다.
  • *_OUT/CLEAR/XOR : 이들은 "겹쳐지는 부분의 alpha 가 0" 이어서 아무런 색도 표현되지 않는다.

겹쳐지지 않는 부위

  • *_ATOP : *에 해당하는 녀석의 alpha 값이 0 + 그 반대에 해당하는 녀석은 자기 색을 갖는다.
  • *_IN : *에 해당하는 녀석의 alpha 값이 0 + 그 반대에 해당하는 녀석의 alpha 값도 0
  • *_OVER : 각자 자기색을 이용한다.
  • *_OUT : * 에 해당하는 녀석은 자기색 + 그 반대에 해당하는 녀석은 alpha 값이 0
  • SRC/DST: * 에 해당하는 녀석은 자기색 + 그 반대에 해당하는 녀석은 alpha 값이 0
예를 들어 DEST_ATOP 이라면, DEST 의 영역들의 alpha 값이 0 이 되는 것이다. 그런데 위에서 겹쳐지는 부분에 대한 정의는 따로 내렸기 때문에 겹쳐지지 않는 영역에 대해서만 적용된다.

이를 표로 나타내면 아래와 같다.

[s] [d] [b]
SRC s 0 s
SRC_ATOP 0 d s
SRC_IN 0 0 s
SRC_OVER s d s
SRC_OUT s d 0
DST 0 d d
DST_ATOP s 0 d
DST_IN 0 0 d
DST_OVER s d d
DST_OUT s d 0
CLEAR 0 0 0
XOR s d 0
[본문링크] Porter / Duff Mode - 1
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34907
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.