SlideShare una empresa de Scribd logo
1 de 25
카툰 렌더링
데부루키
10.11.13
나철환
목차
• 카툰 렌더링이란?
• 제한된 단계의 명암
• 외각선 그리는 방법
카툰 렌더링이란?
제한된 단계 명암
[일반 렌더링] [카툰 렌더링]
θ
90′
명암
1.0
θ
90′
명암
1.0
외각선 그리는 방법
• 첫번째, 윤곽이 될 폴리곤의 변을 검색하
여 그 변에 따라서 검은색 그리는 방법
• 두번째, 원본 모델과 같은 형태로 검은 모
델을 그리는 방법
• 세번째, 렌더링 완료 후 인위적 효과를 첨
가하여 그리는 방법(포스트 이펙트)
외각선 추출 목차
• 색 성분 외각선 추출
• 휘도 외각선 추출
• ID 외각선 추출
• 법선 외각선 추출
• 디렉션 외각선 추출
색 성분 외각선 추출
• 색의 차이를 조사하는 것입니다.
• 인접한 픽셀에 있는 RGB색의 각각의 성분
과 차이를 구해서 외각선을 그린다.
• 색의 차이가 있는 곳에 다 외각선을 넣고
싶을 때 사용
• 단점 – 다른 물체라도 색이 같은면 외각선
이 없다.
색 성분 외각선 추출
색 성분 외각선 추출 문제점
휘도 외각선 추출
• 휘도 – 인간이 느끼는 주관적 밝기와 비교
적 잘 대응하도록 정해진 시각 자극의 강
도를 말한다.(즉 빛의 밝기)
• 단점 – 다른 물체라도 빛의 밝기가 같은면
외각선이 없다.
휘도 외각선 추출
휘도 외각선 추출 단점
ID 외각선 추출
• 픽셀에 색대신 적당한 번호(ID)을 넣어서
외각선을 그린다.
• 외각선을 넣고 싶은 곳에만 넣을때 사용
• 단점1 – 알파 성분에 ID을 넣는다면 256종
류의 밖에 넣을 수 없다.
• 단점2 – 서서히 사라지는 선을 그리기 어
렵다.
ID 외각선 추출
ID = 1.0
ID = 0.0
ID 외각선 추출 단점
깊이 외각선 추출
• 깊이 값에 차이에 의해서 윤관선을 그린다.
• 단점1 – 연속적으로 연결되어 있지 않은
부분에 윤관선을 그린다.
• 단점2 – 물체가 접촉한 장소는 윤관선이
사라져버린다.
깊이 외각선 추출
깊이 외각선 추출 단점
법선 외각선 추출
• 법선 벡터의원드 좌표계에서의 x, y, z성분
을 텍스쳐 RGB성분에 대응시켜서 외각선
그린다.
• 단점 – 부동소수점 포맷이나 부호 점부 포
맷을 사용하면 깔끔할 수 있으나 부동소수
점 포맷을 사용할수 없는 시스템이 있으면
속도가 상당히 느려진다.
법선 외각선 추출
법선 외각선 추출 단점
디렉션 외각선 추출
[시선 벡터와 법선 벡터를 이용]
: 시선벡터와 법선 벡터가 90도에 가까우면 외각 정점(o)
: 시선벡터와 법선 벡터가 90도에 가깝지 않으면 외곽 정점이 아니다
(X)
색 성분 외각선 추출
PixelShader PS_NormalEdge = asm
{
tex t0 // 현재프레임(좌측상단)
tex t1 // 현재프레임(우측하단)
tex t2 // 현재프레임(좌측하단)
tex t3 // 현재프레임(우측상단)
// RGB 각각의휘도차
sub_x2 r0, t0, t1 // r0 = 2*(t0-t1) //RGB각각 한다.
sub_x2 r1, t2, t3 // r1 = 2*(t2-t3) // RGB각각 한다.
// 절대값의근사값을얻기위해서제곱
dp3_x4 r0, r0, r0 // r0 = (r0)^4
dp3_x4 r1, r1, r1 // r1 = (r1)^4
// (1 - 휘도차)로흰색바탕에검은엣지
add r0, 1-r0, -r1 // 1 - r0 - r1
};
마치면서...
• 각각의 게임에 맞게 사용하는 것이 중요한
것 같습니다.
• 한가지 방법만 사용해도 되지만 단점을 보
안에 주는 방법과 같이 사용해도 될것 같
습니다.
참고 자료
• DirectX9 셰이더 프로그래밍
• 전 주 희 – 카툰렌더링 발표 자료

Más contenido relacionado

Destacado

아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드sketchout
 
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"은아 정
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원Wuwon Yu
 
Start with Unreal Engine4 Slideshow
Start with Unreal Engine4 SlideshowStart with Unreal Engine4 Slideshow
Start with Unreal Engine4 SlideshowWuwon Yu
 
미소녀 게임 제작을 위한 Live2D 사용기
미소녀 게임 제작을 위한 Live2D 사용기미소녀 게임 제작을 위한 Live2D 사용기
미소녀 게임 제작을 위한 Live2D 사용기DongRim Shin
 
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)GukHwan Ji
 
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용lswsox
 
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발Hyunsuk Ahn
 
김충효, 10년째 같은 회사를 다니고 있습니다
김충효, 10년째 같은 회사를 다니고 있습니다김충효, 10년째 같은 회사를 다니고 있습니다
김충효, 10년째 같은 회사를 다니고 있습니다devCAT Studio, NEXON
 
NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)GukHwan Ji
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013NDOORS
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요Chris Ohk
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기MinGeun Park
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출JeongHun Byeon
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.Kwangsung Ha
 

Destacado (20)

아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드
 
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"
2015 데브루키 페차쿠차 "Rim Light(림라이트) 만들기"
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
 
Start with Unreal Engine4 Slideshow
Start with Unreal Engine4 SlideshowStart with Unreal Engine4 Slideshow
Start with Unreal Engine4 Slideshow
 
미소녀 게임 제작을 위한 Live2D 사용기
미소녀 게임 제작을 위한 Live2D 사용기미소녀 게임 제작을 위한 Live2D 사용기
미소녀 게임 제작을 위한 Live2D 사용기
 
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)
이펙트 없는 게임은 콜라없는 햄버거와 같다(유니티 이펙트 세미나용 PT)
 
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
 
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발
NDC 2016 안현석 - 개발자와 디자이너를 이롭게 하는 UI 개발
 
김충효, 10년째 같은 회사를 다니고 있습니다
김충효, 10년째 같은 회사를 다니고 있습니다김충효, 10년째 같은 회사를 다니고 있습니다
김충효, 10년째 같은 회사를 다니고 있습니다
 
NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)NDC2016 카툰999 포스트모템(피드백의 힘)
NDC2016 카툰999 포스트모템(피드백의 힘)
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
 

Similar a 카툰 렌더링

니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌민웅 이
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
I phone3d programming - Chap04:깊이와 현실감 향상시키기
I phone3d programming - Chap04:깊이와 현실감 향상시키기I phone3d programming - Chap04:깊이와 현실감 향상시키기
I phone3d programming - Chap04:깊이와 현실감 향상시키기hanstar17
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)민웅 이
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseYEONG-CHEON YOU
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 

Similar a 카툰 렌더링 (6)

니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
I phone3d programming - Chap04:깊이와 현실감 향상시키기
I phone3d programming - Chap04:깊이와 현실감 향상시키기I phone3d programming - Chap04:깊이와 현실감 향상시키기
I phone3d programming - Chap04:깊이와 현실감 향상시키기
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 

Más de samagu0030

[Gpg1권 나철] 2.0 예측 가능한 난수
[Gpg1권 나철] 2.0 예측 가능한 난수[Gpg1권 나철] 2.0 예측 가능한 난수
[Gpg1권 나철] 2.0 예측 가능한 난수samagu0030
 
4장 테스트 자동화의 철학
4장 테스트 자동화의 철학4장 테스트 자동화의 철학
4장 테스트 자동화의 철학samagu0030
 

Más de samagu0030 (6)

Fsm
FsmFsm
Fsm
 
클로저 1
클로저 1클로저 1
클로저 1
 
[Gpg1권 나철] 2.0 예측 가능한 난수
[Gpg1권 나철] 2.0 예측 가능한 난수[Gpg1권 나철] 2.0 예측 가능한 난수
[Gpg1권 나철] 2.0 예측 가능한 난수
 
픽킹
픽킹픽킹
픽킹
 
픽킹
픽킹픽킹
픽킹
 
4장 테스트 자동화의 철학
4장 테스트 자동화의 철학4장 테스트 자동화의 철학
4장 테스트 자동화의 철학
 

카툰 렌더링

  • 2. 목차 • 카툰 렌더링이란? • 제한된 단계의 명암 • 외각선 그리는 방법
  • 4. 제한된 단계 명암 [일반 렌더링] [카툰 렌더링] θ 90′ 명암 1.0 θ 90′ 명암 1.0
  • 5. 외각선 그리는 방법 • 첫번째, 윤곽이 될 폴리곤의 변을 검색하 여 그 변에 따라서 검은색 그리는 방법 • 두번째, 원본 모델과 같은 형태로 검은 모 델을 그리는 방법 • 세번째, 렌더링 완료 후 인위적 효과를 첨 가하여 그리는 방법(포스트 이펙트)
  • 6. 외각선 추출 목차 • 색 성분 외각선 추출 • 휘도 외각선 추출 • ID 외각선 추출 • 법선 외각선 추출 • 디렉션 외각선 추출
  • 7. 색 성분 외각선 추출 • 색의 차이를 조사하는 것입니다. • 인접한 픽셀에 있는 RGB색의 각각의 성분 과 차이를 구해서 외각선을 그린다. • 색의 차이가 있는 곳에 다 외각선을 넣고 싶을 때 사용 • 단점 – 다른 물체라도 색이 같은면 외각선 이 없다.
  • 9. 색 성분 외각선 추출 문제점
  • 10. 휘도 외각선 추출 • 휘도 – 인간이 느끼는 주관적 밝기와 비교 적 잘 대응하도록 정해진 시각 자극의 강 도를 말한다.(즉 빛의 밝기) • 단점 – 다른 물체라도 빛의 밝기가 같은면 외각선이 없다.
  • 13. ID 외각선 추출 • 픽셀에 색대신 적당한 번호(ID)을 넣어서 외각선을 그린다. • 외각선을 넣고 싶은 곳에만 넣을때 사용 • 단점1 – 알파 성분에 ID을 넣는다면 256종 류의 밖에 넣을 수 없다. • 단점2 – 서서히 사라지는 선을 그리기 어 렵다.
  • 14. ID 외각선 추출 ID = 1.0 ID = 0.0
  • 16. 깊이 외각선 추출 • 깊이 값에 차이에 의해서 윤관선을 그린다. • 단점1 – 연속적으로 연결되어 있지 않은 부분에 윤관선을 그린다. • 단점2 – 물체가 접촉한 장소는 윤관선이 사라져버린다.
  • 19. 법선 외각선 추출 • 법선 벡터의원드 좌표계에서의 x, y, z성분 을 텍스쳐 RGB성분에 대응시켜서 외각선 그린다. • 단점 – 부동소수점 포맷이나 부호 점부 포 맷을 사용하면 깔끔할 수 있으나 부동소수 점 포맷을 사용할수 없는 시스템이 있으면 속도가 상당히 느려진다.
  • 22. 디렉션 외각선 추출 [시선 벡터와 법선 벡터를 이용] : 시선벡터와 법선 벡터가 90도에 가까우면 외각 정점(o) : 시선벡터와 법선 벡터가 90도에 가깝지 않으면 외곽 정점이 아니다 (X)
  • 23. 색 성분 외각선 추출 PixelShader PS_NormalEdge = asm { tex t0 // 현재프레임(좌측상단) tex t1 // 현재프레임(우측하단) tex t2 // 현재프레임(좌측하단) tex t3 // 현재프레임(우측상단) // RGB 각각의휘도차 sub_x2 r0, t0, t1 // r0 = 2*(t0-t1) //RGB각각 한다. sub_x2 r1, t2, t3 // r1 = 2*(t2-t3) // RGB각각 한다. // 절대값의근사값을얻기위해서제곱 dp3_x4 r0, r0, r0 // r0 = (r0)^4 dp3_x4 r1, r1, r1 // r1 = (r1)^4 // (1 - 휘도차)로흰색바탕에검은엣지 add r0, 1-r0, -r1 // 1 - r0 - r1 };
  • 24. 마치면서... • 각각의 게임에 맞게 사용하는 것이 중요한 것 같습니다. • 한가지 방법만 사용해도 되지만 단점을 보 안에 주는 방법과 같이 사용해도 될것 같 습니다.
  • 25. 참고 자료 • DirectX9 셰이더 프로그래밍 • 전 주 희 – 카툰렌더링 발표 자료

Notas del editor

  1. 완전하게 자동화 한다는것은 대단한 작업이다.