OSL 워크플로우

3ds Max에서 OSL을 사용하는 기본 워크플로우는 두 개로, OSL 범주의 미리 작성된 맵을 사용하는 워크플로우와 OSL 맵 자체를 사용하는 워크플로우가 있습니다.

OSL 범주의 맵 사용

OSL 범주의 맵을 사용하는 워크플로우는 꽤 단순합니다. 사실상 다른 3ds Max 맵과 다른 점이 없습니다.
  1. 슬레이트 재질 편집기를 엽니다.
  2. 재질/맵 브라우저에서 OSL 범주를 확장합니다.
  3. 맵을 선택하여 슬레이트 재질 편집기로 드롭합니다.
  4. 필요에 맞게 맵 매개변수를 편집합니다.
  5. 지원되는 렌더러에서 ActiveShade를 렌더링하거나 사용합니다.
OSL 범주에서 검색되는 모든 OSL 맵은 3ds Max 플러그인 폴더에서 가져옵니다. 여기에는 약 100개의 OSL 셰이더가 포함되어 있지만 셰이더를 더 추가할 수도 있습니다.
주: 이 워크플로우에서 모든 셰이더 코드는 플러그인 폴더 내 파일에서 호스트되며 일반적으로 다른 플러그인과 동일하게 동작합니다. 업데이트된 버전을 적절한 폴더로 드롭하면 렌더링 시 새 버전이 사용됩니다.

OSL 맵 사용

OSL 맵은 편집 기능이 있는, 채워지지 않은 빈 맵입니다. 다른 맵과 마찬가지로 슬레이트 재질 편집기로 간단하게 드롭하면 됩니다. 하지만 이 맵에는 흥미로운 매개변수 편집 기능이 있습니다.

. . . . 버튼을 선택하여 디스크에서 OSL 셰이더를 로드할 수 있습니다. OSL 셰이더는 플러그인 폴더 계층에 국한되지 않고 어느 위치에나 있을 수 있습니다. OSL 맵은 새 매개변수에 동적으로 모핑되고 필요에 따라 추가 입력 및 출력을 생성한 후 로드된 OSL 파일을 기반으로 렌더링을 시작합니다.

이 워크플로우에서는 OSL 코드가 실제로 OSL 맵에 로드됩니다. 여기서는 로드할 때만 파일을 사용하고, 이 시점부터 코드가 OSL 맵 내에 문자열 매개변수로 유지됩니다.

편집을 클릭하여 OSL 소스 편집기를 엽니다. 이 편집기는 단순하며 고정 가능한 구문 색상 지정 텍스트 편집기이고, 여기서 OSL 코드는 실시간으로 편집 가능합니다. 셰이더 컴파일을 누르거나 바로 가기 F7 키를 사용하면 ActiveShade에서 렌더링하는 동안에도 셰이더를 최신 코드로 업데이트할 수 있습니다.

그러면 OSL 맵이 완전한 셰이더 개발 환경이 됩니다. 한 번에 여러 편집기를 열 수 있으므로 코드와 대화식으로 작업할 수 있습니다.

편집된 파일은 OSL 파일 저장 또는 바로 가기 Ctrl+S를 사용하여 저장할 수 있습니다. 코드가 OSL 맵 내에 있으므로 장면에 저장하거나 재질 라이브러리에 드롭할 수도 있습니다. 어떠한 파일에 대해서도 외부 종속성이 없으며 완벽하게 자체 포함됩니다. 표준 공간에 걸쳐 렌더 팜에 전송된 장면의 경우 셰이더가 장면 내에 있으므로 절대로 누락되지 않습니다.

OSL 파일을 플러그인/OSL 폴더 중 하나에 저장하는 경우 셰이더가 재질/맵 브라우저에 자동으로 나타납니다.

팁: OSL 소스 편집기는 사용자의 편의를 위해 일치하는 괄호를 강조 표시하며, Ctrl+스크롤 휠을 사용하여 글꼴 크기의 배율을 조정할 수 있습니다.

서로 동일한 OSL 범주 맵과 OSL 맵

맵 브라우저에서 사전 로드된 셰이더를 실행하는 OSL 맵과 일반 섹션에서 검색되는 OSL 맵은 동일한 항목입니다. 실제로, OSL 섹션에서 항목을 드래그하는 경우 OSL 맵은 기본적으로 링크 모드로 가져오고 해당 파일은 적절한 OSL 파일로 사전 로드된다는 점 한 가지만 다릅니다.

체인 아이콘 상태는 "링크" 모드를 나타냅니다.

이 모드가 켜진 경우 디스크의 파일, 즉 파일 버튼에 명명된 파일에서 셰이더를 읽어옵니다.

꺼진 경우 셰이더 코드가 OSL 맵 자체에 포함되어 저장됩니다.

가장 큰 이점은 전환이 가능하다는 점입니다.

사전 로드된 셰이더 중 하나의 측면을 변경하려는 경우 그렇게 할 수 있습니다. 그냥 링크를 해제하고 원하는 내용으로 편집하면 됩니다. 장면에 있는 복사본만 편집되며, 디스크의 원래 파일은 편집되지 않습니다. 링크된 상태의 다른 모든 셰이더는 계속 플러그인처럼 동작합니다. 링크 해제된 셰이더는 해당 OSL 맵 내에서의 로컬 편집을 허용합니다.

수정된 맵을 다시 링크하려고 하면 파일의 버전으로 되돌아가고 편집 내용이 취소됩니다.

따라서 간단한 일회성 수정은 물론, 간단한 실험을 간편하게 수행할 수 있습니다. 원하는 항목과 팅커링하고, 링크를 해제한 경우 다시 링크하면 원래대로 돌아갑니다.