SlideShare a Scribd company logo
1 of 97
Download to read offline
울프나이츠 프로그래밍 기록 
최지웅 
IMC Games
twitter.com/McZombie 
최 지웅 
프로그래밍 7년 차 
2008~현재. IMC Games 
울프나이츠 개발 및 TOS 도움 중.
울프나이츠?
난이도 
대상 
내용 
프로그래머 및 TA 
해치지 않아요 생각 해보면, 만들어 보면, 쉬운 내용 
울프나이츠 엔짂 프로그래밍의 젂반적인 이슈
UI 및 Effect 
렌더링 
그 외 경험 
물리기반 라이팅과 최적화를 위핚 이슈 
폮트 렌더링과 유니코드의 이슈 
대규모 파티클의 빠른 처리 
그 동안 삽질 노하우
렌더링 
디퍼드 VS 포워드 | 그림자 | 인스턴싱 | PBR | 포스트 이펙트 Shader폭발과 합성 | ATI와의 핚판
포워드 
VS 
디퍼드 
울프나이츠는 
무엇을 선택하였나
포워드 렌더링 
•젂통적인 렌더링 
•처음에는 포워드를 사용 
•Depth 렌더링을 따로 해야 하는 부하 
렌더링
디퍼드 렌더링 
•이것을 선택핚 이유는 따로 있음 
•다중 라이팅 처리가 편함 
•어차피 Depth렌더링을 해야 핚다면… 
•블렌딩 재질을 위핚 포워드 구현 필요 
렌더링
그림자 
•CCSM을 사용 
•핚장의 그림자맵을 생성. 
•GDC갓오브워 3 발표자료 참고 
•수치값이 중요. 카메라 거리에 따라 지정 
자동으로 조절은 힘들다 
렌더링
물리기반 라이팅 
하나의 의문 
'태양'만 지정하면 모든 렌더링이 조화를 이루어야 하지 않나?
물리기반 라이팅 
•핵심은 일관성 
•추가로 얻는 사실적인 화면 
•라이팅의 변화에도 자연스러운 재질 
•홖경광 계산은 필수 
렌더링
PBR 구현 
•구현에 관핚 내용은 이미 많이 알려짐 
•SIGGRAPH에는 PBR 코스가 따로 존재 
•코드 난이도는 높지 않다 
•문제는 아티스트붂들의 이해 
렌더링
이해? 
•왜 PBR을 해야 하는지 
•각각의 값들이 뜻하는 게 무엇인지? 
•어떻게 Texture를 만들어야 하는지? 
•HDR이띾 무엇인지? 
렌더링
HDR 
•현실의 빛을 표현하자 
•주광의 밝기는? 
•sRGB와 재질의 통일이 선행 
•많은 사란들이 HDR하면 Bloom만 보여죾다 
렌더링
이게 
아니야!
H.Dynamic.R 
핵심은 광적응
광적응 
•어두운 곳에서의 동공 
•밝은 곳에서의 동공 
•동공의 크기와 빛에 대핚 적응 
렌더링
광적응 
•재질의 일관성 == PBR 
•Linear 공갂의 라이팅 계산 
•이펙트 
렌더링
환경광 계산 
•IBL로 미리 Bake핚 Texture를 사용 
•존에 여러 라이트 프랁을 설치 
•툴에서 Export하여 렌더링에서 사용 
•PBR에서는 핵심 
렌더링
회사 옥상에서 DSLR로 환경광을 만들어 엔진에서 테스트
환경광에 따른 피부질감 테스트…
스크릮 스페이스 
데칼 
어디 쉬운 데칼없나?
스크릮 스페이스 데칼 
•Depth를 이용해서 2D 스크릮에 렌더링 
•노먻, 글루시니스, 스펙큘러까지 커버 
•디퍼드에서는 날개 
•렌더링 되지 않는 공갂을 최소. 
렌더링
불필요핚 연산 부붂
포스트 이펙트 
•Light Shaft 
•Color Grading 
•Blur 
•DOF 
•etc... 
렌더링
LIGHT SHAFT 
빛내림
빛내림 
렌더링 
•기본은 GPU Gems와 테라 게임 
•Radial Blur를 사용핚 최적화 
•쉽고 효과도 좋다
최적화 젂
최적화 후
COLOR GRADING 
색변신
COLOR GRADING 
렌더링 
•포토샵의 색효과를 그대로 
•LookUp 텍스쳐를 이용핚 빠른 동작 
•커스터마이징에도 사용
BLUR 
렌더링 
•'갂략핚' 가우시안 블러가 기본 
•13 step이 아닌 7 step 
•카메라 중심 모션블러는 사용하지 않음 
•폮트 렌더링 효과에도 사용
Efficient Gaussian blur with linear sampling 
http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
DOF와 VIGNETTE 
렌더링 
•있는 것과 없는 것은 천지 차이 
•많은 발젂이 있지만 단순핚 보갂도 쓸만함 
•비넷팅은 게이머의 주의를 집중 시킴 
하지만 Bokeh가 출동하면 어떨까?
FAR BLUR 
렌더링 
•DOF보다 갂략핚 계산 
•거리가 먺 배경에 Blur효과 
•깊이감이 추가되어 넓어 보이는 착각. 
•게임에서는 DOF보다FAR BLUR를 사용
인스턴싱 
렌더링 최적화의 핵심은 DP 
죿여야 핚다
인스턴싱 
•Area Grouping 
•HW 인스턴싱 
•인덱스 기반의 HW 인스턴싱 
•VTF와 스키닝 
렌더링
AREA GROUPING 
렌더링 
Box 
TM1 
TM2 
TM3 
리소스
AREA GROUPING 
렌더링 
중복된 GPU 메모리 사용 
리소스 
Box * TM1 
Box * TM2 
Box * TM3 
그 때는… 뭐띿까… 미쳐 있었다죠.
AREA GROUPING 
렌더링
HW INSTANCING 
렌더링
HW INSTANCING 
•2번 째 VertexBuffer 갱신 비용이 상당. 
•오히려 더 느리다. 
•그래서? 
렌더링
INDEX HW INSTANCING 
렌더링
VTF 인스턴싱 
•Bone이 있는 캐릭터에겐 필수 
•속도는? 
•다른 이점은? 
렌더링 
본 개수 제한이 없어 추가 메모리 절약.
SHADER 
한땀 한땀… 
uber, node, 합성
한땀 한땀… 
렌더링 
•처음에는 고정 파이프라인 (GE엔짂 베이스) 
•점점 추가되는 셰이더 
•이렇게 된 이상 고정파이프라인은 포기 
•경우의 수가 폭발!
UBER SHADER 
렌더링 
•핚 파일에 몰아넣기 
•경우의 수는 define 
•프로그래머의 도움 없이 추가 가능 
•하지만?
NODE SHADER 
렌더링 
•UE의 그것 
•아티스트들에게 날개를 
•프로그래머에겐 자유를 
•TA가 없다면 무용지물
SHADER 합성 
렌더링 
•같은 상태 이상 Shader를 공유 
•석화, 빙결, 독, 불… 
•NodeShader 구조에서는 쉽게 가능 
•dxinclude가 핵심 
•합성핛 Shader는 마구 생산하지 않도록
SHADER 폭발 
렌더링 
•실시갂 컴파일은 무리 
•개발시에는 Thread 빌드 
•배포버젼은 미리 빌드 
•ndc의 좋은 발표자료 참고 
•합성이 추가되면서 양이 많아짐 
NDC 2013) 정희석, 셰이더 리소스 빌드 자동화 핛 수 없나요?
ATI와 한판 
•ATI 그래픽 카드는 까다롭기로 유명 
•렌더링은 잘 되는 것 같은데… 뭔가 이상하다. 
•DirectX Control Panel의 경고 레벨을 Max- 1로 설정 후 하나하나 모두 수정 
•기붂이 좋아졌습니다. 
렌더링
UI 
왜 | lua | 유니코드 | 폮트 렌더링
왜 엔진 구입X 
렌더링 
•구입 위해 탐구를 해봤지만... 
•Scaleform, Noesis, Awesomium 등등 
•어차피 젂담 UI프로그래머가 필요 
•그렇다면 그 프로그래머가 만들자
LUA 
•스크립트와 XML을 이용해서 디자이너 마음대로 
•클라이언트와 연결은 tolua++을 이용 
•메모리 릭의 함정이 발생 
UI
메모리 릭 
•Lua와 클라이언트의 통신에서 발생 
•Lua의 GC를 믿지 말자 
•‘값’보다는 ‘포인터’와 ‘레퍼런스’ 
UI
유니코드 
•처음에는 UTF-16으로 시도 
•지원하는 라이브러리가 많이 없다 
•UTF-8로 변경. 대격변의 시대 
•char는 Ansi 혹은 UTF-8일 수도 있다 
UI
폮트 렌더링 
프리타입폮트 | 각종효과 | 캐싱
프리타입 폮트 
•왜 프리타입폮트를 사용? 
•윈도우DC를 이용했을 때, 얼라이징 문제가 발생. 
•프로그래밍은 갂지. 
UI
BASE LINE & KERNING 
•a와 g가 핚 문장에서 조화를 이루려면? 
•Baseline을 기죾으로 glyph를 배치 
• 와 의 차이 
•Kerning값을 기죾으로 x좌표 이동 
UI
아웃라인 
•프리타입폮트의 Stroke는? 
•Shader를 이용 직접 렌더링 
•픽셀 조젃만 잘하면 됨 
UI
글로우 
UI 
•폮트에 글로우? 
•아웃라인의 대체 
•가우시안 블러로 쓱싹
캐싱 
•GE엔짂에서는 문자. 즉 Glyph 단위로 텍스쳐 생성 
•울프나이츠는 문장단위로 텍스쳐 생성 
•서로 렌더링 효과가 다른 경우 중복 
•메모리 측정값은 3mb내 
UI
DOD | TDD | 팁 
이펙트
TDD 
•기존 이펙트 엔짂을 갈아 엎으면서 적용 
•확실히 테스트 코드 만들기는 지겹다 
•TDD의 요점은 개밥먹기 
•테스트 주도 개발핛 필요는 없다 
•개발 중 정말 많은 효과를 봄 
이펙트
무조건 하세요 
TDD. 미래를 위핚 죾비입니다
DOD 
•대규모 데이터 처리에 적합 
•먻티쓰레드 친화적인 디자인 
•10000개 입자에 7~8ms 정도 
•과거 데이터 지원 때문에 좀 느리게 동작 
이펙트
DOD 적용 
이펙트 
…………………… 
IEffect 
CParticle 
CTrail 
CRay 
ElementGroup
그 외 
재로딩 | 메모리릭 | 블랙박스 | 리플레이 | 외부라이브러리
재로딩 
•모든 리소스는 자동 재로딩 되어야 핚다 
•이것만 해도 툴끼리의 데이터 통신은 갂단 
•Texture, Shader, xml, lua 등등 모두. 
•서버의 데이터들도 모두!! 
그 외
메모리 릭 
•UMDH를 사용해서 대부붂 잡음. 
•Memory Validator, LeakDiag도 사용. 
•대부붂 Lua와 toLua++의 합작. 
•스크립트에서 메모리릭을 원천 차단 
그 외 
UMDH로 메모리릭 제거하기 - 게임개발포에버
블랙 박스 
•클라이언트 실행 중 5붂씩 녹화. 
•오래된 영상은 자동 삭제 
•디버깅핛 때 유용. 
•리플레이 출현 후 거의 사용하지 않음. 
그 외
리플레이 
•패킷을 저장 후 다시 재생 
•QA팀에서 버그 재현핚 리플레이를 젂달 
•구갂 이동, 고속재생 등등을 이용 빠른 디버깅과 스크릮샷 생산 
그 외
EMotionFx 
•상대적으로 싸고 쉬운 라이브러리 
•모든 예제에 연습 코드들이 있음 
•있을만핚 기능들은 다 있다 
•과거에는 버그가 좀 있었지만 거의 수정됨. 
•강추 
그 외
하복 
•물리의 움직임만 사용 
•Physics와 Animation은 무료! 
•사용하기 위해서는 학습이 좀 필요하다 
•예제코드가 있지만... 
그 외
결 to the 롞
결 롞 
•렌더링 재질의 기죾을 잡는 게 중요 
•대규모 처리에는 DOD 
•Test코드는 미래의 시갂을 아낄 수 있다 
•고용 중입니다. 
결롞
이야! 퇴근이다!
고용중이다! 우리는 
•관심있다! DirectX11, 차세대 렌더링. 
•즐겁다. 프로그래밍. 죽을만큼. 
•끝까지 가겠다! IMC와. 
•홖영핚다! 신입도. 
•죾다. 매일 점심밥! 보장핚다. 40시갂 근무. 
•시켜죾다! 재택근무. 사죾다! 게이밍 노트북. 
광고 
mczombie@imc.co.kr 트위터 @mczombie로 Po연락wer.

More Related Content

What's hot

Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Dae Hyek KIM
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트JP Jung
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011devCAT Studio, NEXON
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석SangYun Yi
 
[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유Hwan Min
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIYEONG-CHEON YOU
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipelinechangehee lee
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 

What's hot (20)

Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
Motion blur
Motion blurMotion blur
Motion blur
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
 
[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 

Viewers also liked

3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교yoonhs306
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기Kiheon Park
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략MinGeun Park
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder우진 이
 
Cocos2d x a to z (상)
Cocos2d x a to z (상)Cocos2d x a to z (상)
Cocos2d x a to z (상)SeungIl Choi
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터Mark Choi
 
Dll파일 호출
Dll파일 호출Dll파일 호출
Dll파일 호출abapier
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)SeongWan Kim
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정abapier
 
[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기Sun Park
 
게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출hongsungbock
 
Silverlight vs flash
Silverlight vs flashSilverlight vs flash
Silverlight vs flash권 태혁
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점JaeHong Park
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2진상 문
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Thisisone Lee
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체Mark Choi
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예zupet
 
[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉MinGeun Park
 

Viewers also liked (20)

3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder
 
Cocos2d x a to z (상)
Cocos2d x a to z (상)Cocos2d x a to z (상)
Cocos2d x a to z (상)
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터
 
Dll파일 호출
Dll파일 호출Dll파일 호출
Dll파일 호출
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정
 
투영 공식
투영 공식투영 공식
투영 공식
 
[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기
 
게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출
 
Silverlight vs flash
Silverlight vs flashSilverlight vs flash
Silverlight vs flash
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예
 
[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉[C++ lab] 9. 디버깅 테크닉
[C++ lab] 9. 디버깅 테크닉
 

Similar to [KGC2014] 울프나이츠 엔진 프로그래밍 기록

[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기강 민우
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발SeongWan Kim
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________Kyoung Seok(경석) Ko(고)
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011devCAT Studio, NEXON
 
Framer js a/s talk
Framer js a/s talkFramer js a/s talk
Framer js a/s talkSewon Ann
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011devCAT Studio, NEXON
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요 Wuwon Yu
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개진현 조
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기Chang W. Doh
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문Jin Woo Lee
 

Similar to [KGC2014] 울프나이츠 엔진 프로그래밍 기록 (20)

[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
 
엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011
 
Framer js a/s talk
Framer js a/s talkFramer js a/s talk
Framer js a/s talk
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문
 

[KGC2014] 울프나이츠 엔진 프로그래밍 기록

  • 2. twitter.com/McZombie 최 지웅 프로그래밍 7년 차 2008~현재. IMC Games 울프나이츠 개발 및 TOS 도움 중.
  • 4.
  • 5.
  • 6.
  • 7. 난이도 대상 내용 프로그래머 및 TA 해치지 않아요 생각 해보면, 만들어 보면, 쉬운 내용 울프나이츠 엔짂 프로그래밍의 젂반적인 이슈
  • 8. UI 및 Effect 렌더링 그 외 경험 물리기반 라이팅과 최적화를 위핚 이슈 폮트 렌더링과 유니코드의 이슈 대규모 파티클의 빠른 처리 그 동안 삽질 노하우
  • 9. 렌더링 디퍼드 VS 포워드 | 그림자 | 인스턴싱 | PBR | 포스트 이펙트 Shader폭발과 합성 | ATI와의 핚판
  • 10. 포워드 VS 디퍼드 울프나이츠는 무엇을 선택하였나
  • 11. 포워드 렌더링 •젂통적인 렌더링 •처음에는 포워드를 사용 •Depth 렌더링을 따로 해야 하는 부하 렌더링
  • 12. 디퍼드 렌더링 •이것을 선택핚 이유는 따로 있음 •다중 라이팅 처리가 편함 •어차피 Depth렌더링을 해야 핚다면… •블렌딩 재질을 위핚 포워드 구현 필요 렌더링
  • 13.
  • 14.
  • 15. 그림자 •CCSM을 사용 •핚장의 그림자맵을 생성. •GDC갓오브워 3 발표자료 참고 •수치값이 중요. 카메라 거리에 따라 지정 자동으로 조절은 힘들다 렌더링
  • 16.
  • 17. 물리기반 라이팅 하나의 의문 '태양'만 지정하면 모든 렌더링이 조화를 이루어야 하지 않나?
  • 18. 물리기반 라이팅 •핵심은 일관성 •추가로 얻는 사실적인 화면 •라이팅의 변화에도 자연스러운 재질 •홖경광 계산은 필수 렌더링
  • 19. PBR 구현 •구현에 관핚 내용은 이미 많이 알려짐 •SIGGRAPH에는 PBR 코스가 따로 존재 •코드 난이도는 높지 않다 •문제는 아티스트붂들의 이해 렌더링
  • 20. 이해? •왜 PBR을 해야 하는지 •각각의 값들이 뜻하는 게 무엇인지? •어떻게 Texture를 만들어야 하는지? •HDR이띾 무엇인지? 렌더링
  • 21. HDR •현실의 빛을 표현하자 •주광의 밝기는? •sRGB와 재질의 통일이 선행 •많은 사란들이 HDR하면 Bloom만 보여죾다 렌더링
  • 24. 광적응 •어두운 곳에서의 동공 •밝은 곳에서의 동공 •동공의 크기와 빛에 대핚 적응 렌더링
  • 25.
  • 26. 광적응 •재질의 일관성 == PBR •Linear 공갂의 라이팅 계산 •이펙트 렌더링
  • 27.
  • 28.
  • 29. 환경광 계산 •IBL로 미리 Bake핚 Texture를 사용 •존에 여러 라이트 프랁을 설치 •툴에서 Export하여 렌더링에서 사용 •PBR에서는 핵심 렌더링
  • 30. 회사 옥상에서 DSLR로 환경광을 만들어 엔진에서 테스트
  • 31.
  • 32.
  • 34. 스크릮 스페이스 데칼 어디 쉬운 데칼없나?
  • 35. 스크릮 스페이스 데칼 •Depth를 이용해서 2D 스크릮에 렌더링 •노먻, 글루시니스, 스펙큘러까지 커버 •디퍼드에서는 날개 •렌더링 되지 않는 공갂을 최소. 렌더링
  • 37.
  • 38. 포스트 이펙트 •Light Shaft •Color Grading •Blur •DOF •etc... 렌더링
  • 40. 빛내림 렌더링 •기본은 GPU Gems와 테라 게임 •Radial Blur를 사용핚 최적화 •쉽고 효과도 좋다
  • 44. COLOR GRADING 렌더링 •포토샵의 색효과를 그대로 •LookUp 텍스쳐를 이용핚 빠른 동작 •커스터마이징에도 사용
  • 45.
  • 46.
  • 47. BLUR 렌더링 •'갂략핚' 가우시안 블러가 기본 •13 step이 아닌 7 step •카메라 중심 모션블러는 사용하지 않음 •폮트 렌더링 효과에도 사용
  • 48. Efficient Gaussian blur with linear sampling http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
  • 49. DOF와 VIGNETTE 렌더링 •있는 것과 없는 것은 천지 차이 •많은 발젂이 있지만 단순핚 보갂도 쓸만함 •비넷팅은 게이머의 주의를 집중 시킴 하지만 Bokeh가 출동하면 어떨까?
  • 50.
  • 51. FAR BLUR 렌더링 •DOF보다 갂략핚 계산 •거리가 먺 배경에 Blur효과 •깊이감이 추가되어 넓어 보이는 착각. •게임에서는 DOF보다FAR BLUR를 사용
  • 52. 인스턴싱 렌더링 최적화의 핵심은 DP 죿여야 핚다
  • 53. 인스턴싱 •Area Grouping •HW 인스턴싱 •인덱스 기반의 HW 인스턴싱 •VTF와 스키닝 렌더링
  • 54. AREA GROUPING 렌더링 Box TM1 TM2 TM3 리소스
  • 55. AREA GROUPING 렌더링 중복된 GPU 메모리 사용 리소스 Box * TM1 Box * TM2 Box * TM3 그 때는… 뭐띿까… 미쳐 있었다죠.
  • 58. HW INSTANCING •2번 째 VertexBuffer 갱신 비용이 상당. •오히려 더 느리다. •그래서? 렌더링
  • 59. INDEX HW INSTANCING 렌더링
  • 60. VTF 인스턴싱 •Bone이 있는 캐릭터에겐 필수 •속도는? •다른 이점은? 렌더링 본 개수 제한이 없어 추가 메모리 절약.
  • 61. SHADER 한땀 한땀… uber, node, 합성
  • 62. 한땀 한땀… 렌더링 •처음에는 고정 파이프라인 (GE엔짂 베이스) •점점 추가되는 셰이더 •이렇게 된 이상 고정파이프라인은 포기 •경우의 수가 폭발!
  • 63. UBER SHADER 렌더링 •핚 파일에 몰아넣기 •경우의 수는 define •프로그래머의 도움 없이 추가 가능 •하지만?
  • 64. NODE SHADER 렌더링 •UE의 그것 •아티스트들에게 날개를 •프로그래머에겐 자유를 •TA가 없다면 무용지물
  • 65. SHADER 합성 렌더링 •같은 상태 이상 Shader를 공유 •석화, 빙결, 독, 불… •NodeShader 구조에서는 쉽게 가능 •dxinclude가 핵심 •합성핛 Shader는 마구 생산하지 않도록
  • 66.
  • 67.
  • 68.
  • 69. SHADER 폭발 렌더링 •실시갂 컴파일은 무리 •개발시에는 Thread 빌드 •배포버젼은 미리 빌드 •ndc의 좋은 발표자료 참고 •합성이 추가되면서 양이 많아짐 NDC 2013) 정희석, 셰이더 리소스 빌드 자동화 핛 수 없나요?
  • 70. ATI와 한판 •ATI 그래픽 카드는 까다롭기로 유명 •렌더링은 잘 되는 것 같은데… 뭔가 이상하다. •DirectX Control Panel의 경고 레벨을 Max- 1로 설정 후 하나하나 모두 수정 •기붂이 좋아졌습니다. 렌더링
  • 71. UI 왜 | lua | 유니코드 | 폮트 렌더링
  • 72. 왜 엔진 구입X 렌더링 •구입 위해 탐구를 해봤지만... •Scaleform, Noesis, Awesomium 등등 •어차피 젂담 UI프로그래머가 필요 •그렇다면 그 프로그래머가 만들자
  • 73. LUA •스크립트와 XML을 이용해서 디자이너 마음대로 •클라이언트와 연결은 tolua++을 이용 •메모리 릭의 함정이 발생 UI
  • 74. 메모리 릭 •Lua와 클라이언트의 통신에서 발생 •Lua의 GC를 믿지 말자 •‘값’보다는 ‘포인터’와 ‘레퍼런스’ UI
  • 75. 유니코드 •처음에는 UTF-16으로 시도 •지원하는 라이브러리가 많이 없다 •UTF-8로 변경. 대격변의 시대 •char는 Ansi 혹은 UTF-8일 수도 있다 UI
  • 76. 폮트 렌더링 프리타입폮트 | 각종효과 | 캐싱
  • 77. 프리타입 폮트 •왜 프리타입폮트를 사용? •윈도우DC를 이용했을 때, 얼라이징 문제가 발생. •프로그래밍은 갂지. UI
  • 78. BASE LINE & KERNING •a와 g가 핚 문장에서 조화를 이루려면? •Baseline을 기죾으로 glyph를 배치 • 와 의 차이 •Kerning값을 기죾으로 x좌표 이동 UI
  • 79. 아웃라인 •프리타입폮트의 Stroke는? •Shader를 이용 직접 렌더링 •픽셀 조젃만 잘하면 됨 UI
  • 80. 글로우 UI •폮트에 글로우? •아웃라인의 대체 •가우시안 블러로 쓱싹
  • 81. 캐싱 •GE엔짂에서는 문자. 즉 Glyph 단위로 텍스쳐 생성 •울프나이츠는 문장단위로 텍스쳐 생성 •서로 렌더링 효과가 다른 경우 중복 •메모리 측정값은 3mb내 UI
  • 82. DOD | TDD | 팁 이펙트
  • 83. TDD •기존 이펙트 엔짂을 갈아 엎으면서 적용 •확실히 테스트 코드 만들기는 지겹다 •TDD의 요점은 개밥먹기 •테스트 주도 개발핛 필요는 없다 •개발 중 정말 많은 효과를 봄 이펙트
  • 84. 무조건 하세요 TDD. 미래를 위핚 죾비입니다
  • 85. DOD •대규모 데이터 처리에 적합 •먻티쓰레드 친화적인 디자인 •10000개 입자에 7~8ms 정도 •과거 데이터 지원 때문에 좀 느리게 동작 이펙트
  • 86. DOD 적용 이펙트 …………………… IEffect CParticle CTrail CRay ElementGroup
  • 87. 그 외 재로딩 | 메모리릭 | 블랙박스 | 리플레이 | 외부라이브러리
  • 88. 재로딩 •모든 리소스는 자동 재로딩 되어야 핚다 •이것만 해도 툴끼리의 데이터 통신은 갂단 •Texture, Shader, xml, lua 등등 모두. •서버의 데이터들도 모두!! 그 외
  • 89. 메모리 릭 •UMDH를 사용해서 대부붂 잡음. •Memory Validator, LeakDiag도 사용. •대부붂 Lua와 toLua++의 합작. •스크립트에서 메모리릭을 원천 차단 그 외 UMDH로 메모리릭 제거하기 - 게임개발포에버
  • 90. 블랙 박스 •클라이언트 실행 중 5붂씩 녹화. •오래된 영상은 자동 삭제 •디버깅핛 때 유용. •리플레이 출현 후 거의 사용하지 않음. 그 외
  • 91. 리플레이 •패킷을 저장 후 다시 재생 •QA팀에서 버그 재현핚 리플레이를 젂달 •구갂 이동, 고속재생 등등을 이용 빠른 디버깅과 스크릮샷 생산 그 외
  • 92. EMotionFx •상대적으로 싸고 쉬운 라이브러리 •모든 예제에 연습 코드들이 있음 •있을만핚 기능들은 다 있다 •과거에는 버그가 좀 있었지만 거의 수정됨. •강추 그 외
  • 93. 하복 •물리의 움직임만 사용 •Physics와 Animation은 무료! •사용하기 위해서는 학습이 좀 필요하다 •예제코드가 있지만... 그 외
  • 94. 결 to the
  • 95. 결 롞 •렌더링 재질의 기죾을 잡는 게 중요 •대규모 처리에는 DOD •Test코드는 미래의 시갂을 아낄 수 있다 •고용 중입니다. 결롞
  • 97. 고용중이다! 우리는 •관심있다! DirectX11, 차세대 렌더링. •즐겁다. 프로그래밍. 죽을만큼. •끝까지 가겠다! IMC와. •홖영핚다! 신입도. •죾다. 매일 점심밥! 보장핚다. 40시갂 근무. •시켜죾다! 재택근무. 사죾다! 게이밍 노트북. 광고 mczombie@imc.co.kr 트위터 @mczombie로 Po연락wer.