Top

언리얼 엔진 4 머티리얼 [70가지 예제로 배우는 머티리얼 제작과 활용]

  • 원서명Unreal Engine 4 Shaders and Effects Cookbook: Over 70 recipes for mastering post-processing effects and advanced shading techniques (ISBN 9781789538540)
  • 지은이브라이스 브렌라 라모스(Brais Brenlla Ramos), 존 도란(John P. Doran)
  • 옮긴이김규열
  • ISBN : 9791161754376
  • 40,000원
  • 2020년 07월 28일 펴냄
  • 페이퍼백 | 604쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/unreal-shader-effect

요약

언리얼에서 머티리얼 제작은 결과를 시각적으로 확인할 수 있어서 이를 이론적인 설명이나 각 노드 설명만 보는 것으로는 지루해서 학습을 쉽게 포기하게 된다. 그래서 이 책에서는 입문자가 따라 하면서 배울 수 있도록 내용을 구성했다. 예제를 따라 해보면 언리얼에서 머터리얼 제작을 하는 방법과 제작한 머터리얼을 활용하는 방법에 관한 기초 지식을 얻을 수 있으며, 더 깊이 있는 탐험을 할 수 있는 원동력이 돼줄 것이다.

이 책에서 다루는 내용

■ 실시간 그래픽스를 개발하기 위한 언리얼 엔진의 렌더링 파이프라인
■ 머티리얼을 만들고 조명을 설정하기 위한 물리 기반 렌더링 사용
■ 멀티 플랫폼용 게임을 위한 최적화된 재질 만들기
■ 원하는 효과를 만들기 위한 언리얼 엔진의 노드와 함수
■ 프로덕션 단계의 셰이더 기획과 제작
■ 복잡한 재질과 텍스처 제작을 위한 머티리얼 에디터

이 책의 대상 독자

내용이 진행될수록 점점 더 어려운 주제를 다루는 구조로 구성돼 있다. 따라서 언리얼 엔진의 머티리얼 파이프라인을 다뤄 보지 않은 초보 개발자부터 숙련된 개발자까지 모두를 대상으로 한다. 개발자의 숙련도와 상관없이 언리얼에 대한 이해도가 높다면 이 책을 따라가는 데 좀 더 수월할 것이다.

이 책의 구성

1장, ‘물리 기반 렌더링’에서는 언리얼이 근간을 두고 있는 기본적인 렌더링 개념을 다루는 것으로 시작하며, 머티리얼 에디터도 소개한다.
2장, ‘포스트 프로세싱 이펙트’에서는 포스트 프로세싱이라는 강력한 개념을 소개하고 이를 이용해 얻을 수 있는 서로 다른 이펙트를 설명한다.
3장, ‘불투명 머티리얼과 텍스처 매핑’에서는 언리얼에서 가장 기본이 되는 머티리얼 형식 가운데 한 가지를 자세히 다루고 여러 사용법을 알아본다.
4장, ‘투명 머티리얼과 더 많은 이야기’에서는 투명 머티리얼이라는 가장 흥미로운 머티리얼 형식 가운데 한 가지를 다룬다. 추가적으로 서브 서피스와 이미시브(emissive) 머티리얼을 포함해 다양한 머티리얼도 다룬다.
5장, ‘머티리얼의 활용 범위 확장하기’에서는 단순히 3D 모델링에 머티리얼을 적용하는 것 이외에 라이트 함수, UI 요소, 비디오를 화면에 출력하는 방법 등을 다룬다.
6장, ‘머티리얼 고급 기법’에서는 시차 차폐 매핑(parallax occlusion mapping)과 메시 거리 필드(mesh distance fields)와 같은 향상된 기술을 사용해 머티리얼 에디터에서 만들 수 있는 최신 이펙트를 이야기한다.
7장, ‘머티리얼 인스턴스 사용하기’에서는 인스턴싱의 개념을 사용하는 방법을 알아본다. 이를 통해서 서로 다른 머티리얼 위에 또 다른 셰이더를 레이어로 둔 머티리얼 인스턴스에 빠르게 변형을 주는 방법과 여러 머티리얼 설정을 한 번에 변경하는 방법을 알 수 있다.
8장, ‘모바일 셰이더와 머티리얼 최적화’에서는 모바일 장치나 가상현실과 같이 성능이 중요한 하드웨어에서 이전에 만든 머티리얼이 좀 더 성능에 최적화될 수 있도록 하는 여러 방법을 다룬다.
9장, ‘몇몇 유용한 노드’에서는 어떤 분류 목록에도 속하지 않지만 언리얼에서 찾을 수 있는 정말로 유용한 몇 가지 노드에 초점을 맞춰 이야기한다.

상세 이미지

저자/역자 소개

지은이의 말

언리얼 엔진 4로 만드는 게임 개발의 여정으로 개발자들을 이끌 것이다. 게임과 앱의 시각적 요소에 영향을 주는 조작을 수행해보며 언리얼 엔진의 구석구석을 탐험한다. 꼭 알고 있어야 하는 기본적인 주제를 시작으로 특정 주제를 하나씩 살펴본다. 각 장은 그 기본 내용을 확장해 나간다. 대부분의 개발자가 내용을 따라 갈 수 있도록 완만한 학습 곡선을 갖도록 구성했다. 만약 관련 내용을 잘 안다면 실습을 건너뛰고 다른 장이나 실습을 진행해도 상관없다.
우선 언리얼 엔진에서 물리 기반 렌더링(physically based rendering)을 다루는 방법이나 포스트 프로세싱 이펙트(post-processing effects)와 같은 엔진의 렌더링 파이프라인(rendering pipeline) 아래 핵심 개념부터 책을 시작한다. 두 주제에 관한 견고한 기반 지식을 갖고 그 지식을 확장해 불투명, 투명, 서브서피스(subsurface) 머티리얼과 또 다른 셰이딩 모델(shading model) 같은 좀 더 많은 내용을 알아볼 것이다. 또 향상된 여러 가지 머티리얼 생성 기술과 기법을 살펴볼 것이다. 이 기술들은 머티리얼과 블루프린트(blueprint)를 함께 사용하는 것부터 머티리얼을 인스턴싱(instancing)하고 최적화하는 등의 다양한 효과를 만드는 데 이용할 수 있다.
이 책을 다 마치고 나면 다양한 머티리얼의 개념과 기법에 관한 지식과 실무를 모두 탄탄히 다지게 될 것이다. 개발자가 하고자 하는 것이 게임 개발이든 앱 개발이든 혹은 개인적인 프로젝트든 간에 이 책을 통해 새롭게 배운 개념을 정확하게 이해하고 있다는 확신을 갖고 사용하게 될 것이다. 이제 시작해보자!

지은이 소개

브라이스 브렌라 라모스(Brais Brenlla Ramos)

열정적인 아키텍트, 3D 아티스트, 언리얼 엔진 4 개발자이며, 영국 런던에 있는 작업실과 스페인의 라 코루냐를 오가며 지내고 있다. 3D에 대한 열정의 원천은 건축과 컴퓨터 애니메이션 공부를 시작하도록 영감을 준 비디오 게임을 하던 어린 시절까지 거슬러 올라가야 할 것이다. 이미 학생 때 여러 스튜디오에서 건축 시각화 관련 프로젝트에 참여하면서 3D 분야에 입문했다. 이후 여러 가지 3D 모델링과 앱 개발 프로젝트에 참여했다. 처음에는 팀 멤버로, 현재는 런던에 있는 애큐시티스(AccuCities)에서 언리얼 엔진 4 책임 개발자로 일하고 있다.

존 도란(John P. Doran)

열정적이고 숙련된 기술을 가진 게임 디자이너, 소프트웨어 엔지니어다. 미국 일리노이주 피오리아에 살고 있다. 10년 동안 게임 개발에서 게임 디자이너, 책임 UI 프로그래머 업무를 수행하면서 다양한 실무 경험을 쌓았다. 싱가포르와 대한민국, 미국에서 게임 개발 교육 과정 강의를 했다. 최근까지 게임 개발 관련 책 10여 권에 저자로 참여했다.
현재 브래들리대학교에서 강사로 일하고 있다. 수상 경력이 있는 비디오 촬영 작가이기도 하다.

옮긴이의 말

2001년 2월 엔비디아(NVIDIA)에서 지포스 3 그래픽 카드를 출시하면서 셰이더의 세계가 눈 앞에 펼쳐졌다. 나도 당시 큰돈을 들여 지포스 3를 구입해 어셈블리로 셰이더 프로그래밍을 배우면서 고정 파이프라인에 자유를 제공하는 일이 실력이나 상상력의 차이를 만들거라 믿었다. 실제로 실시간 3D 그래픽스에서 품질 차이는 극명해지기 시작했다.
하지만 초창기 셰이더는 어셈블리로 작성해야 했다. 제약 사항도 많아 실제로 3D 아티스트가 다룰 수 있는 물건이 아니었다. 물론 시간이 지나면서 셰이더도 HLSL과 같은 고급 프로그래밍 언어 형태로 프로그래밍이 가능해지고 접근성이 점점 더 나아졌지만 여전히 3D 아티스트에겐 어려운 영역이다. 시간이 지나면서 셰이더를 노드 그래프 형식으로 제작할 수 있는 툴이 생겨나기 시작했다. 이러한 변화는 어려운 셰이더 프로그래밍을 좀 더 쉽게 만들어줄 거라는 착각을 일으켰다. 물론 글자보다 노드 그래프로 보는 것이 시각적으로 더 쉽고 편하게 느껴진다. 그렇다고 해서 그래픽스 이론과 선형대수를 몰라도 셰이더를 만들 수 있도록 해주는 것이 아니다. 실제로 국내 3D 아티스트나 테크니컬 아티스트 중에 셰이더를 만들 수 있는 이가 극히 드물다는 사실이 이러한 변화가 아무런 어려움도 줄여주지 못했다는 점을 반영한다고 생각한다. 3D 아티스트가 표현하고 싶어하는 요구 사항을 프로그래머가 셰이더로 작성하기 때문에 서로 소통하는 데 비용이 많이 들고 원하는 바를 정확하게 표현하지 못하는 결과를 낳는다고 본다.
결국 3D 아티스트가 직접 셰이더를 작성할 수 있어야 더 좋은 그래픽을 빠르게 표현할 수 있다. 그 힘든 여정을 출발하는 데 미적분, 선형대수 같은 과목을 공부하고 그래픽스 이론을 공부하듯이, 정공법으로 가는 길보다 실습으로 이미 만들어진 셰이더를 따라 해보면서 우선 익숙해지는 과정을 갖는 방법이 조금 더 낫다.
만약 언리얼 엔진을 사용하거나 사용해보고 싶고 언리얼 엔진에서 머티리얼(언리얼에서 머티리얼은 큰 셰이더 템플릿 코드에서 특정 부분을 채워주는 셰이더 코드 조각)을 만들어보고 싶다면 이 책이 입문용으로 가장 적절하다. 예제를 쉽게 따라 해보고 결과를 보면서 만족감과 성취감을 느낄 수 있음과 동시에 학습의 원동력이 돼 줄 것이다. 아울러 전반적인 원리를 설명하고 있고 더 깊이 있는 내용을 찾아볼 수 있는 이정표가 돼 줄 것이다.
원서 정오표에 올라온 내용은 없었지만 번역을 진행하면서 발견한 오타와 오류를 수정했다. 때로는 주석으로 설명을 덧붙이기도 했다. 실습을 진행하는 데 혼동되지 않도록 언리얼 에디터에서 영문으로 표기한 메뉴는 이 책에서도 영문으로 표기했다. 모든 예제는 언리얼 엔진 4.20에서 4.24까지 확인했으며 문제는 없었다. 이 글을 쓰고 있는 시점에서 가장 최신 버전은 4.25.1이지만 예제가 문제없이 동작할 거라고 믿는다.
이 책은 언리얼 엔진에서 머티리얼을 제작하는 데 출발점이 돼 줄 수 있을 뿐이다. 필요한 머티리얼을 척척 만들고자 한다면 걸어야 할 여정은 정말 멀고 험하다. 그래도 멈추지 않고 원하는 바를 얻는 길로 나아가길 바란다.

옮긴이 소개

김규열

1997년에 게임 프로그래머로 현업을 시작한 올드타이머(old-timer)다. 2005년 엔씨소프트에서 처음 언리얼 3를 사용했으며 이후로도 언리얼 엔진을 사용 중이다. 초창기에 3D 엔진 개발이 꿈이었고 한동안 엔진 개발에 매진해 언리얼 엔진을 썩 선호하지는 않는다. 그럼에도 아직 적절한 대체품을 찾지 못하고 있다. 현재 크래프톤에서 신기술을 적용한 게임 개발에 열정을 쏟고 있다.

목차

목차
  • 1장. 물리 기반 렌더링
    • 실습 레벨 세팅하기
    • 머티리얼 에디터 사용해보기
    • 첫 번째 물리 기반 머티리얼 만들기
    • 투명 블렌드 모드를 이용한 간단한 유리 재질 만들기
    • 이미지 기반 조명을 레벨에 적용하기
    • 머티리얼 비용 확인하기

  • 2장. 포스트 프로세싱 이펙트
    • 포스트 프로세스 볼륨 사용하기
    • Color Grading을 통한 장면 분위기 바꾸기
    • 피사계 심도를 이용한 영화적 카메라 연출
    • 게임에 영화적 효과 적용하기
    • 블룸과 렌즈 플레어를 이용한 실제 카메라 효과 표현하기
    • 포스트 프로세스 머티리얼을 이용한 공포 영화 박동 효과 구현하기
    • 안티-에일리어싱 적용하기와 다른 렌더링 기능

  • 3장. 불투명 머티리얼과 텍스처 매핑
    • 마스크를 이용한 머티리얼
    • 머티리얼 인스턴싱
    • 작은 물체에 텍스처링하기
    • 프레넬과 디테일 텍스처를 이용한 플라스틱 질감의 천 표현하기
    • 반자동 절차적 머티리얼 생성하기
    • 머티리얼을 텍스처로 굽기
    • 거리 기반 텍스처 혼합

  • 4장. 투명 머티리얼과 더 많은 이야기
    • SSS를 사용한 초 머티리얼 만들기
    • 완전한 투명 유리 재질 만들기
    • 다른 종류의 투명 - 홀로그램
    • 실사 같은 반사 표현하기
    • 풀장의 물을 표현해보면서 굴절 정복하기
    • 물 화선 표현
    • 애니메이션되는 바다 셰이더 만들기

  • 5장. 머티리얼의 활용 범위 확장하기
    • 레벨 조명으로 에미시브 머티리얼 사용하기
    • 화면에 인터넷에서 얻은 영상 재생하기
    • CCTV 카메라 만들기
    • 게임에서 상호작용 가능한 물체 하이라이트하기
    • 게임 속 나침반 만들기
    • 미니맵 만들기

  • 6장. 머티리얼 고급 기법
    • 정점 칠하기 기능으로 메시 칠하기
    • 데칼을 사용해 레벨에 세밀함 추가하기
    • 시차 차폐 매핑을 사용한 벽돌 벽 표현하기
    • 디스플레이스먼트를 사용한 벽돌 벽
    • 메시 디스턴스 필드를 사용한 거리-기반 마스킹

  • 7장. 머티리얼 인스턴스 사용하기
    • 머티리얼 레이어링을 사용한 물체 위에 눈이 쌓인 효과
    • 매개변수 컬렉션을 이용해 햇살 가득한 장면에서 눈 쌓인 장면으로 전환하기
    • 커브 아틀라스를 통한 빠른 계절 변화
    • 랜드스케이프 머티리얼 혼합하기
    • UV 커스터마이징

  • 8장. 모바일 셰이더와 머티리얼 최적화
    • 모바일 플랫폼 머티리얼 만들기
    • 포워드 셰이딩 렌더러를 사용한 VR 개발하기
    • 텍스처 아틀라스를 이용해 최적화하기
    • 3D 모델에 적용된 머티리얼을 텍스처로 굽기
    • HLOD 도구로 여러 메시 결합하기
    • 일반적인 머티리얼 최적화 기법

  • 9장. 몇몇 유용한 노드
    • 동일한 모델에 무작위성 추가하기
    • 차폐된 영역에 먼지 추가하기
    • 여러 메시를 가로지르는 텍스처 좌표 일치시키기
    • 퀄리티 스위치를 통한 머티리얼 복잡도 조절하기
    • 인테리어 큐브맵 사용해 건물 내부 텍스처링하기
    • 완전 절차적 Noise 패턴 사용하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.112 : 아래에서 2행]
NiMipmaps
->
NoMipmaps