SlideShare a Scribd company logo
1 of 39
Alpha / Alpha sorting
   실습
       풀 여러 개 만들어 봤었지요?
       알파에 관한 여러 문제점들과 궁금증들
       여러분이 곧 만나게 될 그런 것들
Alpha / Z buffer
   Alpha에 대해 알고 있는 것을 말해 보자

   Z Buffer 에 대해 알고 있는 것을 말해 보자

   블렌딩 옵션 얘기는 안할꼬야
     정신없거등
   Z 값이란 무엇인가
       모니터는 평면이긔
       그럼 뭔가 깊이가 있어야 할 것 아니겠삼




            사실은 가로가 X.. 미안해…

                           한 블록을 한 픽셀이라고 생각해 보자
   Z 값이란 이런거
   Z 값이란 이런거
   Z 값이란 이런거

       사실은 이렇게 생긴거겠지

       이걸 어디다 ‘써 놔야’ 겠지
         깊이값이 많이 필요할거야
         대충 float 값 정도 범위면
          10^-38(10의 -38승)~10^38(10
          의 38승) 가능하려나?
         0부터 ~ 1까지도 가능하겠네?
         이거보다 정밀하면 충돌나겠네?
     Z Buffer
          그래서 float 값으로
           써 (그려) 놓아 봤습니다.




    http://www.felixgers.de/teaching/jogl/depthbufferALgo.html
   Z Buffer
   Z 버퍼는 깊이값을 나타내는 버퍼 이미지이다.

   물체는 그려질때 Z 버퍼에 자신의 픽셀 위치값을
    쓴다

   자신보다 앞 부분의 Z버퍼에 값이 씌여져 있으면
    그 픽셀은 그리지 않는다.
이런 알파로 된 이미지가 있으면




이리 된단말 아닝교
   불투명 먼저, 반투명은 나중에 그린다
   불투명은 순서 상관없이 맘대로 그린다.
   반투명은 뒤에서부터 그린다. (이것이 “알파 소팅”)
       실제로 이렇게 하고 있다.

   이렇게 하면 해결된다.
   불투명 먼저, 반투명은 나중에 그린다
   불투명은 순서 상관없이 맘대로 그린다.
   반투명은 뒤에서부터 그린다. (이것이 “알파 소팅”)
       실제로 이렇게 하고 있다.

   이렇게 하면 해결된다.




                           “전부” 라고 한 적은 없다.
   이렇게 되고 싶은데
   왜 이런 일이 일어날까?
   … 물론 소팅이 안된 상황때문이기도
    하지만
이 오브젝트들이
반투명이라고
생각해 보세요

일단 문제는 없음




어느 것이 앞에 있는건지
어떻게 판단하죠?
아래 판은 물이라고 칩시다




 어느 것이 앞에 있지요?
막 반투명 관 안에 반투명 심장있고 막 이래   막 알파있는 머리카락이 겹쳐있고 막 이래




게다가 이런 경우라면 어쩌라고
그래서 이렇게 된다.
   물체를 잘게 쪼갭니다
   알파 부분을 최소화해서 그립니다
   알파 테스팅을 사용합니다
   Z Write를 사용하지 않습니다.



   렌더링 레이어를 만듭니다
   여러 Pass를 사용하여 그립니다

    …등등 지금도 수많은 방법이 개발중.
   불투명을 먼저 , 반투명을 나중에 그린다.

   반투명은 따로 모아서 뒤에 있는 것부터 그린다.

   하지만 어떤 것이 뒤에 있는지 완벽히 알 수 없다.
                   부끄럽구요

   그래서 각종 꼼수들이 사용되어야 한다.
       알파 테스팅 (Cutout)
       Z read / Z write
   말그대로 알파를 ‘테스트’
   Cutout 이라고 불리기도 함.
   1비트 알파로 만들어 버림
   픽셀 연산이 필요 없으므로 극뽁.




Z 연산 이전에 알파를 검사하여 Z 값에 픽셀별로
영향을 주는 것으로… 보이지만 관련 문헌을 찾기 힘듬.
엄청 많이 쓴다.
사실상 해결책




     프리우스. 아이온
자연물에서도 꼭 사용
토막상식 :
테스팅과 블렌딩을 같이 쓰는
고급 꼼수도 있다.

: 이렇듯 세상에 100% 는 없다.
 알파 테스팅의 장점
 알파 테스팅의 단점
Z   test와 Write가 뭘까?

 어디다      쓸까?
    반투명인 것들이 제대로 나오게 하기 위해.
    이펙트 쪽에서 특히..
    그래픽 디자이너가 직접적으로 쓸 일은 적다.
    개념을 알고 있으면 문제 발생시 대처능력이 향상된다.
    Shader를 작성하게 된다면 쓰게 된다.
   Z Read(Test) = On    Z Write = On
    읽기도 하고 쓰기도 한다.


   Z Read(Test) = Off   Z Write = Off
    읽지도 않고 쓰지도 않는다.
   Z Read(Test) = On Z Write = On
     읽기도 하고 쓰기도 한다.
   Z Read(Test) = Off Z Write = Off
     읽지도 않고 쓰지도 않는다.




                                       굳이 쓴다면 스카이박스에




                          Atlantica
   Z Read(Test) = Off Z Write = On
     읽지는 않고 쓰기만 한다.


    …어디다 쓰지?




                                  (플렌은 Z read/Write가 모두 On)
   Z Read(Test) = Off Z Write = On
     읽지는 않고 쓰기만 한다.




                                      내 차례엔 무조건 그려진다.
                                      = 굳이 쓴다면 UI에
   Z Read(Test) = On Z Write = Off
     읽기는 읽는데 쓰지는 않는다.




    주전자가 반투명이라고 생각.                   반투명인 놈들끼리 만났을 때는?
    불투명인 플렌과 만났을 때는?
   Z Read(Test) = On Z Write = Off
     읽기는 읽는데 쓰지는 않는다.
   Z Read(Test) = On Z Write = Off
     읽기는 읽는데 쓰지는 않는다.




     이래도 완전 해결이 안 된다니…
   Z Read(Test) = On   Z Write = Off




이 이외에도 문제가 있을…
수 있음.

어쨌건 해결책.
   예를 들어 이런 사태도…
    있을 수 있다는 말이지
   알파 테스팅을 이용한다.

   적절하게 Z write를 하지 않도록 한다.
       이펙트에서는 기본이다.
       100% 는 아니라는걸 잊지 말자.

   다양한 해결책이 더 있다…

More Related Content

What's hot

스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드MinGeun Park
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머포프 김
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더포프 김
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3Jooyoung Yi
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자MoonLightMS
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기Madumpa Park
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 

What's hot (20)

스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드
[Gpg2권 박민근] 3.2 게임 객체 ai를 위한 마이크로 스레드
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
Motion blur
Motion blurMotion blur
Motion blur
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 

Viewers also liked

4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2JP Jung
 
3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작JP Jung
 
2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2JP Jung
 
Siggraph2013보고서 저용량
Siggraph2013보고서   저용량Siggraph2013보고서   저용량
Siggraph2013보고서 저용량JP Jung
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전JP Jung
 
8강 camera advanced light
8강 camera advanced light8강 camera advanced light
8강 camera advanced lightJP Jung
 
10강최적화 가속화
10강최적화 가속화10강최적화 가속화
10강최적화 가속화JP Jung
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트JP Jung
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011devCAT Studio, NEXON
 
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Daniel Barrero
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)JP Jung
 

Viewers also liked (20)

4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2
 
3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작
 
2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2
 
Siggraph2013보고서 저용량
Siggraph2013보고서   저용량Siggraph2013보고서   저용량
Siggraph2013보고서 저용량
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전
 
8강 camera advanced light
8강 camera advanced light8강 camera advanced light
8강 camera advanced light
 
10강최적화 가속화
10강최적화 가속화10강최적화 가속화
10강최적화 가속화
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
The Producer
The ProducerThe Producer
The Producer
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011
 
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
 
카툰 렌더링
카툰 렌더링카툰 렌더링
카툰 렌더링
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)
 

5강 알파와알파소팅

  • 1. Alpha / Alpha sorting
  • 2. 실습  풀 여러 개 만들어 봤었지요?  알파에 관한 여러 문제점들과 궁금증들  여러분이 곧 만나게 될 그런 것들
  • 3. Alpha / Z buffer
  • 4. Alpha에 대해 알고 있는 것을 말해 보자  Z Buffer 에 대해 알고 있는 것을 말해 보자  블렌딩 옵션 얘기는 안할꼬야  정신없거등
  • 5. Z 값이란 무엇인가  모니터는 평면이긔  그럼 뭔가 깊이가 있어야 할 것 아니겠삼 사실은 가로가 X.. 미안해… 한 블록을 한 픽셀이라고 생각해 보자
  • 6. Z 값이란 이런거
  • 7. Z 값이란 이런거
  • 8. Z 값이란 이런거  사실은 이렇게 생긴거겠지  이걸 어디다 ‘써 놔야’ 겠지  깊이값이 많이 필요할거야  대충 float 값 정도 범위면 10^-38(10의 -38승)~10^38(10 의 38승) 가능하려나?  0부터 ~ 1까지도 가능하겠네?  이거보다 정밀하면 충돌나겠네?
  • 9. Z Buffer  그래서 float 값으로 써 (그려) 놓아 봤습니다. http://www.felixgers.de/teaching/jogl/depthbufferALgo.html
  • 10. Z Buffer
  • 11. Z 버퍼는 깊이값을 나타내는 버퍼 이미지이다.  물체는 그려질때 Z 버퍼에 자신의 픽셀 위치값을 쓴다  자신보다 앞 부분의 Z버퍼에 값이 씌여져 있으면 그 픽셀은 그리지 않는다.
  • 12.
  • 13. 이런 알파로 된 이미지가 있으면 이리 된단말 아닝교
  • 14. 불투명 먼저, 반투명은 나중에 그린다  불투명은 순서 상관없이 맘대로 그린다.  반투명은 뒤에서부터 그린다. (이것이 “알파 소팅”)  실제로 이렇게 하고 있다.  이렇게 하면 해결된다.
  • 15. 불투명 먼저, 반투명은 나중에 그린다  불투명은 순서 상관없이 맘대로 그린다.  반투명은 뒤에서부터 그린다. (이것이 “알파 소팅”)  실제로 이렇게 하고 있다.  이렇게 하면 해결된다. “전부” 라고 한 적은 없다.
  • 16. 이렇게 되고 싶은데
  • 17. 왜 이런 일이 일어날까?  … 물론 소팅이 안된 상황때문이기도 하지만
  • 18. 이 오브젝트들이 반투명이라고 생각해 보세요 일단 문제는 없음 어느 것이 앞에 있는건지 어떻게 판단하죠?
  • 19. 아래 판은 물이라고 칩시다 어느 것이 앞에 있지요?
  • 20. 막 반투명 관 안에 반투명 심장있고 막 이래 막 알파있는 머리카락이 겹쳐있고 막 이래 게다가 이런 경우라면 어쩌라고
  • 22. 물체를 잘게 쪼갭니다  알파 부분을 최소화해서 그립니다  알파 테스팅을 사용합니다  Z Write를 사용하지 않습니다.  렌더링 레이어를 만듭니다  여러 Pass를 사용하여 그립니다 …등등 지금도 수많은 방법이 개발중.
  • 23. 불투명을 먼저 , 반투명을 나중에 그린다.  반투명은 따로 모아서 뒤에 있는 것부터 그린다.  하지만 어떤 것이 뒤에 있는지 완벽히 알 수 없다. 부끄럽구요  그래서 각종 꼼수들이 사용되어야 한다.  알파 테스팅 (Cutout)  Z read / Z write
  • 24. 말그대로 알파를 ‘테스트’  Cutout 이라고 불리기도 함.  1비트 알파로 만들어 버림  픽셀 연산이 필요 없으므로 극뽁. Z 연산 이전에 알파를 검사하여 Z 값에 픽셀별로 영향을 주는 것으로… 보이지만 관련 문헌을 찾기 힘듬.
  • 25. 엄청 많이 쓴다. 사실상 해결책 프리우스. 아이온
  • 27. 토막상식 : 테스팅과 블렌딩을 같이 쓰는 고급 꼼수도 있다. : 이렇듯 세상에 100% 는 없다.
  • 28.  알파 테스팅의 장점  알파 테스팅의 단점
  • 29. Z test와 Write가 뭘까?  어디다 쓸까?  반투명인 것들이 제대로 나오게 하기 위해.  이펙트 쪽에서 특히..  그래픽 디자이너가 직접적으로 쓸 일은 적다.  개념을 알고 있으면 문제 발생시 대처능력이 향상된다.  Shader를 작성하게 된다면 쓰게 된다.
  • 30. Z Read(Test) = On Z Write = On 읽기도 하고 쓰기도 한다.  Z Read(Test) = Off Z Write = Off 읽지도 않고 쓰지도 않는다.
  • 31. Z Read(Test) = On Z Write = On 읽기도 하고 쓰기도 한다.  Z Read(Test) = Off Z Write = Off 읽지도 않고 쓰지도 않는다. 굳이 쓴다면 스카이박스에 Atlantica
  • 32. Z Read(Test) = Off Z Write = On 읽지는 않고 쓰기만 한다. …어디다 쓰지? (플렌은 Z read/Write가 모두 On)
  • 33. Z Read(Test) = Off Z Write = On 읽지는 않고 쓰기만 한다. 내 차례엔 무조건 그려진다. = 굳이 쓴다면 UI에
  • 34. Z Read(Test) = On Z Write = Off 읽기는 읽는데 쓰지는 않는다. 주전자가 반투명이라고 생각. 반투명인 놈들끼리 만났을 때는? 불투명인 플렌과 만났을 때는?
  • 35. Z Read(Test) = On Z Write = Off 읽기는 읽는데 쓰지는 않는다.
  • 36. Z Read(Test) = On Z Write = Off 읽기는 읽는데 쓰지는 않는다. 이래도 완전 해결이 안 된다니…
  • 37. Z Read(Test) = On Z Write = Off 이 이외에도 문제가 있을… 수 있음. 어쨌건 해결책.
  • 38. 예를 들어 이런 사태도… 있을 수 있다는 말이지
  • 39. 알파 테스팅을 이용한다.  적절하게 Z write를 하지 않도록 한다.  이펙트에서는 기본이다.  100% 는 아니라는걸 잊지 말자.  다양한 해결책이 더 있다…