본문 바로가기
셰이더 (Shader)/The Renderman Shading Language Guide

[RSL] Part2 : Shader Design Methodology (158p ~ 161p)

by Minkyu Lee 2023. 8. 19.

Why Follow a Methodology? (왜 방법론을 따를까요?)

쉐이더 개발은 일반적으로 어렵지 않지만

이전에 구현되지 않은 매우 독특한 해결책을 개발하려고 할 때에 어려움이 있을 수 있습니다. 

 

그런 경우 많은 독자적인 연구, 수학적 계산, 차트 작성 및 테스트가 필요할 수 있습니다. 

보통의 쉐이더에서는 이러한 단계 대부분을 건너뛸 수 있지만, 

심지어 가장 간단한 쉐이더라도 특정 수준의 계획과 조직이 필요합니다.


"쉐이더 작성 과정"이라는 제3장에서 언급한 것처럼, 

쉐이더 개발에는 일반적으로 설계 단계가 포함됩니다. 

이 단계는 목표가 무엇인지를 알려줍니다. 

이 단계가 없으면 어떤 방향으로 나아가야 할지 막막해질 수 있습니다. 

 

방법론은 "무엇을 해야 하는가"가 아니라 "어떻게 해야 하는가"입니다. 

심지어 이해하기 힘든 이상한, 특이한 방법론이라도 개발하는 동안 따르는 것이 좋은 실천법입니다. 

이 장에서는 개인적으로 유용하게 여기는 몇 가지 개발 전략을 설명하겠습니다. 

이 전략들은 1996년 SIGGRAPH에서 Tony Apodaca가 발표한 문서와 

Steve May의 웹 튜토리얼인 "RManNotes"를 기반으로 합니다.

 

나는 이러한 전략들을 주제로 수박 쉐이더를 사용하여 시연할 것입니다. 

현재 당장 쉐이더를 작성하지는 않겠습니다. 

단지 이와 같은 과제에 접근하기 위해 취해질 수 있는 단계들을 지적하겠습니다. 

 

여기 당신의 과제 개요입니다:
당신은 부서장으로부터 지시를 받습니다. 

당신은 수박 싸움 장면에서 약 100개의 수박에 쉐이더를 작성해야 합니다. 

각 수박마다 약간 다른 외모를 가지길 원하기 때문에 프로시저 방식으로 작성해야 합니다. 

일부 샷에서는 중간 근접 샷이 존재하므로 텍스처는 상당히 디테일해야 합니다. 

이 작업을 완료하기 위해 당신은 3일의 시간이 주어집니다.

 

이 정보를 가지고 우리는 과제에 접근할 준비가 되었습니다. 

이 설명은 거의 디자인 요구사항과 일맥상통합니다. 

쉐이더를 할당받을 때 꼼꼼한 질문을 해야 합니다. 우리가 수박의 내부 부분을 볼 가능성이 있을까요? 

만약 내부를 본다면, 아마도 완전히 다른 외관과 특성을 가지기 때문에 

두 가지 다른 쉐이더를 다루게 될 가능성이 높습니다. 

 

그렇다면 그런 경우, 시간이 충분하지 않을 수 있으므로 상사와 이 문제를 논의하는 것이 좋을 것입니다. 

쇼 개발 표준은 필요한 AOV(임의 출력 변수)들, 명명 규칙 등과 같은 추가 정보를 제공할 것입니다. 

무엇을 해야 하는지 알게 되면 아마도 잘 보이는 쉐이더를 작성하는 가장 중요한 부분으로 넘어갈 수 있습니다. 

그 부분은 어떤 레퍼런스를 확보하는 것입니다.

 

Reference

첫 번째 단계는 우리가 만들려고 하는 주제에 대한 레퍼런스를 모으는 것입니다. 

레퍼런스 없이 기억에서 작업을 해야 하면 원하는 쉐이딩 내용을 잘 기억하기 어렵습니다. 

 

마치 어둠 속에서 총을 쏘는 것처럼, 어디를 조준해야 할지 알 수 없는 상황입니다. 

당신의 부서장에게 미술이나 제작 디자인 부서에서 작업한 레퍼런스를 요청하세요. 

 

그들이 원하는 내용에 대한 그림이나 클리핑이 있다면, 레퍼런스 검색을 거의 마쳤으며, 

어떻게 쉐이더를 작성할 것인지 계획을 진행할 수 있습니다.

 

그러나 우리 특정 요소의 경우, 미술 부서에서 아무런 아트워크를 생성하지 않았고 

부서장이 당신에게 일반적인 수박처럼 보이도록 하라고 지시한다고 가정해 봅시다. 

 

이런 경우가 상상 이상으로 자주 발생하며, 쉐이더 작성자들이 선호하지 않는 일 중 하나입니다. 

긍정적인 면은 제작 디자인 아트워크가 없다면 예술적인 창의력과 자유도가 조금은 주어진다는 것입니다. 

하지만 부정적인 면은 잘못된 방향으로 진행하게 되어 가치 있는 제작 시간과 노력을 소비하게 될 수 있으며, 결국 승인되지 않을 수도 있다는 것입니다. 

그러면 다른 방향으로 처음부터 다시 시작해야 할 수도 있습니다.

 

"일반적인 수박"이라니요? 이것은 좋은 핑계가 될 수 있을 것 같습니다. 

멋진 오랜 점심 휴식을 즐기면서 지역 식료품 점이나 농산물 시장에 가서 수박 하나 또는 두 개를 사와서 사무실로 가져가는 것도 좋은 아이디어입니다. 그리고 그 수박을 사올 때 영수증을 꼭 받아두세요. 왜냐하면 그 수박 비용을 환급 받을 수 있을 테니까요. 결국, 이것은 직무 관련 경비입니다. 수박을 잘 검사하고 만져보세요. 얼마나 불규칙한지 느껴보세요. 디지털 카메라를 가져가서 수박의 여러 장면을 사진으로 찍어두는 것이 좋은 생각일 것입니다.

 

온라인에서도 수박 사진을 검색할 수 있지만, 손에 수박을 들고 있을 때 더 정확하게 수박이 어떻게 보이는지 이해할 수 있을 것입니다. 게다가 작업을 마치면 수박을 자르고 동료들과 함께 먹을 수 있으며, 더운 여름날에는 훌륭한 선택입니다. 저는 지역 농산물 시장에 갔다가 수박 사진을 찍었습니다. 그림 6.1과 6.2에 나와 있습니다. 그림들은 상당히 고해상도로, 우리의 예시에는 완벽하게 적합할 것입니다.

 

그림 6.1은 여러 개의 수박이 함께 쌓여 있는 모습을 잘 보여줍니다. 

또한 과일의 조명 구성 요소와 한 수박에서 다른 수박까지 모양, 색상 및 톤의 차이를 보여줍니다. 

그림 6.2는 수박을 식별하는 다양한 특징과 표식에 대한 많은 세부 정보를 제공합니다.

 

Make Your Efforts Count

사진을 신중하게 분석한 후, 수박의 외관의 여러 주요 구성 요소를 식별할 수 있어야 합니다. 

이 시점에서 여러분은 쉐이더에 넣을 기능을 우선 순위를 매겨야 합니다. 

수박의 가장 중요한 특징은 무엇인지 생각해 보세요 (그림 6.3과 6.4 참조).


다음과 같이 생각해 보세요: 수박을 나타내는 데 오직 두 가지 색상만 사용할 수 있다면, 

사람들이 이것이 수박임을 어떻게 알 수 있을까요? 

세세한 눈을 가진 사람은 수박에서 가장 두드러지는 것은 큰 녹색 줄무늬라고 말할 것입니다. 

다른 모든 것을 제거하고 조명도 빼고, 그 녹색 줄무늬만 남겨두면 여전히 수박임을 알 수 있을 것입니다.

이것이 여러분이 처음으로 다룰 특징이어야 하며, 대부분의 노력을 투여해야 할 곳입니다. 

조명은 또 다른 중요한 구성 요소이므로, 이 두 가지가 주요 작업 내용이 될 것입니다. 

조명은 아마도 간단한 플라스틱과 같은 조명 모델이 될 것입니다. 

만약 포토리얼리즘을 목표로 한다면, 서브서피스 산란 구성 요소를 추가해야 할 가능성이 높습니다.
대부분의 조명은 이미 수행된 작업을 기반으로 할 것이므로, 빠르게 솔루션을 코드로 구현할 수 있을 것입니다. 

이것은 여러분이 주로 녹색 줄무늬를 개발하는 데 시간을 많이 할애할 것을 의미합니다.


수박을 조금 더 자세히 살펴보면 포토리얼리스틱한 수박을 재현하려면 필요한 다른 여러 특징들이 보입니다. 

그러한 특징 중에는 어두운 녹색 줄무늬 내부의 작은 어두운 녹색 혈관, 밝은 녹색 영역 내의 어두운 녹색 혈관, 가운데가 밝고 가장자리가 어두운 작은 눈표, 그리고 작은 긁힘이 포함됩니다. 

줄무늬와 조명을 갖춘 후에는 케이크 위의 아이싱이 될 세부 사항과 특징들을 추가할 수 있을 것입니다. 

그 중에서 가장 두드러지는 특징부터 시작하세요.

댓글