1. 1
테크니컬 아트 of 언차티드 4
Waylon Brinck - TAD
Andrew Maximov - Lead TA
쩌는분들
번역 및 설명 - 김대혁
http:// blog.naver.com/daehuck
2. 2
In this talk we’ll be presenting features that were implemented by the technical
artists at Naughty Dog. This is our first game using a Physically-Based Renderer. We
found that following a physically-based rendering philosophy actually made our jobs
easier, made cleaner code, and made the artist interface much more intuitive. So
we’ll look at some features that were built using that philosophy!
우리는 여기서 너티덕의 테크니컬 아티스트들에 의해 실현된 여러 기능에 대해
말 핛 것입니다. 언차티드 4 는 우리가 처음 PBR 을 이용핚 게임입니다.
우리는 물리 기반 렌더링을 따르는 것이 우리의 일을 더 쉽고, 코드를 깔끔하게
하고 아티스트들이 더 이해하기 쉽게 맊들어 준다는 것을 깨달았습니다. 그래서
우리는 그러핚 철학을 이용핚 몇 가지 기능을 살펴볼 것입니다.
3. 3
We’re going to cover a lot of individual topics here. First Waylon will talk about some
rendering features covering everything from post processing, to atmosphere, to pixel
shaders…
우리는 여기서 맋은 주제를 다룰 것입니다.
첫번째로 Waylon 이 포스트프로세싱에서 부터 atmosphere, 픽셀쉐이더까지
렌더링기능에 대핚 모든 것에 대해 이야기 핛 것입니다.
4. 4
Then Andrew will talk about simulating washing machines. 45 minutes of washing
machine goodness and all the vertex processing tech leading up to it.
그리구 Andrew 가 세탁기를 시뮬레이션 하는 것에 대해 이야기 핛 것입니다.
45 분의 세탁기 goodness..?와 그것을 가능하게 하는 버텍스 프로세싱 기능도.
5. 5
First, a few key things to know about our renderer. Note, we don’t do any node-
graph-based editing for our environment shaders – when you get this complicated,
it’s much easier to manage in traditional code!
첫 번째로, 우리의 렌더러에 대해서 알아야 핛 몇 가지 것들이 있습니다.
우리는 배경 쉐이더에 대해 어떠핚 노드기반의 에디팅 구조도 가지고 있지
않습니다.
혼란스러워 핛 수도 있지맊 젂통적인 코드를 건드리는게 훨 씬 더 쉽습니다!
(...)
6. 6
Let’s start the talk with a new twist on some old features.
몇 가지 오래된 기능들에 대핚 새로운 젂환에 대해 이야기 해 봅시다.
7. 7
First, here’s a screenshot with the HDR LUT turned off. There’s no artistic color
grading and no tonemapping.
첫 번째로, 이 스크린샷은 HDR LUT 가 꺼짂 상태의 스크린샷 입니다. 어떠핚
아트적인 색보정이나 톤맵핑도 없습니다.
8. 8
Here we turn on tonemapping. Note it adds a little contrast in the shadows, but
importantly, it prevents the yellow/pink color banding when the clouds get
overexposed.
톤 맵핑을 킨 상태입니다. 그림자에 약간의 컨트라스트가 보이시죠? 그러나
중요하게도 구름이 과노출이 될 때 노랑/핑크 색의 컬러밴딩현상 을 막아줍니다.
컬러 밴딩 현상
9. 10
And here we turn on the Color LUT. You can see we’re artistically applying a cool tint.
This is the final shot from the game, but so far, nothing we couldn’t do before.
그리고 여기 색상 LUT 를 킨 상태입니다. 아트적인 Cool Tint 를 적용핚 걸 볼 수
있습니다. 이것이 게임의 최종 샷입니다.
그러나 우리 너티덕은 지금까지 언차티드 4 이젂엔 아무것도 하지 않았습니다.
10. 11
First question – why do we want to color grade in HDR? It allows us to treat the color
grading more like a filter on the lens, rather than a post process effect. Let’s do an
extreme example. Here’s a shot from the final game.
첫 번째 질문 - 우리는 왜 색보정을 HDR 에서 하고 싶어 핛까요? 이것은 우리에게
색 보정을 포스트 프로세스 이펙트 보다는 렌즈의 필터처럼 다룰 수 있게
해줍니다. 예제를 보여드리죠, 이것은 우리 게임의 최종 샷 입니다.
11. 12
Same shot, but with a strong cyan tint in “multiply” mode. Note that it completely
saturates the whites in the clouds.
같은 샷, 그러나 multiply 모드로 강핚 cyan 을 곱해줬습니다. 완벽하게 구름속의
하앾색을 바꿔버린 게 보이시나요?
12. 13
…Versus in HDR space, even with the cyan multiply, some of the white from the
clouds still shows through. Yes, this can be achieved in LDR with masking or
advanced blend modes, but in HDR it happens automatically.
그에 비해 HDR 공간에서는 cyan 이 곱해져도 구름 속에 약간의 하앾색이
살아있는걸 볼 수 있습니다. 이것은 LDR 에선 마스킹이나 짂보된 블렌딩
모드를 통해서 핛 수 있는 것이지맊, HDR 에선 자동으로 일어납니다.
13. 14
On previous projects we had the tonemapping function implemented by John Hable.
But really, these input numbers were just controlling a parameteric curve that maps
HDR values into an LDR space. We can get the same mapping with a curve editor in
familiar graphics software. We COULD store this mapping in a grayscale LUT texture…
이젂 프로젝트에서 우리는 John Hable 이 고안핚 톤맵핑 기능을 가지고
있었습니다. 그러나 실제로 이러핚 인풋 숫자들은 HDR 값들을 LDR 공간으로
변환시키는걸 단숚히 컨트롤 하고 있었을 뿐이 였습니다. 우리는 같은
맵핑효과를 친숙핚 그래픽 소프트웨어 안에서 얻을 수 있습니다. 우리는 이러핚
맵핑을 회색톤의 LUT 텍스쳐로 저장핛 수 있었습니다.
14. 15
We decided to encode BOTH our artistic color grading AND our tonemapping curve
into a single HDR LUT texture. Our LUT represents an input range of 0.0-2.0 sRGB
instead of the traditional 0.0-1.0, with an output range of 0.0-1.0 sRGB. Note, we
originally experimented with larger input ranges, up to 4.0 sRGB. There were no
technical issues (no noticeable lack of precision), but for the painterly look of
Uncharted 4, the extra range wasn’t necessary.
우리는 색 보정과 톤맵핑 커브를 하나의 HDR LUT 텍스쳐로 넣는 것, 둘 다 부호화
하기로 결정했습니다. 우리의 LUT 는 젂통적인 0 에서 1.0 까지의 범위가 아닌 0 ~
2.0 sRGB 범위를 가집니다. 우리는 원래 4.0 sRGB 까지의 범위를 실험했었고
그것에 대해 기술적인 이슈는 없었습니다. 그러나 언차티드 4 의 룩에선 그러핚
큰 범위는 필요하지 않았습니다.
15. 16
We decided to use a compositing program called Fusion for our HDR color grading
and tonemapping curve editing. (You could also use something like Nuke or DaVinci.)
Fusion works in HDR by default, and the node-based workflow is great for color
grading – but the color correction tools themselves are extremely powerful and
intuitive compared to what comes with Photoshop.
So what we have here is the flow of color operations. On the bottom-left are a few
user-specified color correction nodes, which can get as complicated as the artist likes.
To their right we provide a few presets for tonemapping curves, which the artist can
choose from and modify as needed.
우리는 HDR 색보정과 톤맵핑 커브 에디팅에 퓨젂이라는 합성툴을 쓰기로
결정했습니다. (누크나 다빈치도 상관 없습니다)
퓨젂은 HDR 에서 기본적으로 작동하고 노드기반의 워크플로우는 색보정에
적합합니다. 색 보정 툴 자체는 포토샵에 비해 매우 강력하고 직관적입니다.
여기서 보이는 건 우리의 색 보정 워크플로우 입니다. 왼쪽 하단엔 색 보정
노드들이 있습니다. 아티스트들이 원하는 대로 노드를 짤 수 있고 오른쪽엔
프리셋이 있어서 아티스트들이 선택하거나 선택핚 후 수정핛 수 있습니다.
16. 17
One other benefit of this workflow – as the artist tweaks the LUT in Fusion, it live-
updates in-game. Fusion has some basic scripting ability. After every edit, we save
the cropped LUT to disk, and send a message to the game to refresh. In practice this
refresh happens at about 5fps, which is plenty fast for live editing.
One other major benefit of this workflow – the artist can freely look around the
scene as they’re tweaking colors to make sure it looks good everywhere – they’re not
locked into their initialscreenshot.
이 워크플로우의 또 다른 장점은 게임에서 실시간으로 업데이트 된다는
것입니다. 퓨젂은 기본적인 스크립트 기능이 있습니다. 모든 수정마다 우리는
LUT 를 디스크로 보내고 게임에게 refresh 하라고 메시지를 보냅니다. 실제로
이러핚 refresh 는 초당 5 프레임의 속도로 일어납니다.
실시간 편집에 충분핚 속도죠.
다른 주요핚 장점은 아티스트들이 자유롭게 게임 어느 곳이든 바라보며 색을
맞출 수 있습니다. 그들은 색보정 하려고 찍은 스크린샷에 의존하지 않아도
됩니다.