SlideShare uma empresa Scribd logo
1 de 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% 는 아니라는걸 잊지 말자.

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

Mais conteúdo relacionado

Mais procurados

[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflectionBongseok Cho
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리YEONG-CHEON YOU
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3Jooyoung Yi
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근MinGeun Park
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성Gunho Shin
 

Mais procurados (20)

[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflection
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
Bump Mapping
Bump MappingBump Mapping
Bump Mapping
 
PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3PBR 기초 이론과 사용되는 맵들 Vol.3
PBR 기초 이론과 사용되는 맵들 Vol.3
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Motion blur
Motion blurMotion blur
Motion blur
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성
 

Destaque

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
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
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
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더포프 김
 
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
 

Destaque (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 기초
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
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
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더
 
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 기초
 

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% 는 아니라는걸 잊지 말자.  다양한 해결책이 더 있다…