새로운 기능 Katana 3.5

소개

이 문서는 소개 된 주요 변경 사항에 대해 설명합니다. Katana 3.5. 이러한 변경 사항은 다음과 같습니다.

  • Geolib3-MT : 이것은 Geolib3의 진화입니다- Katana의 장면 그래프 처리 엔진-기본 다중 스레드 장면 그래프 확장을 제공합니다. Geolib3-MT 프로젝트의 목표는 다음과 같습니다.
    • 최신 멀티 코어 시스템에서 사용 가능한 리소스를 완전히 활용합니다.
    • 장면 그래프 탐색 중에 메모리 리소스를보다 잘 관리하기위한 지능형 지능형 캐싱 기술을 제공합니다.
    • TTFP (Time-to-First-Pixel) 시간을 단축하여 아티스트가 샷을 효율적으로 반복하고 적시에 피드백을받을 수 있습니다.
    • 향상된 UI 성능을 통해 아티스트 생산성을 향상시킵니다.
  • 분석 및 프로파일 링 도구가 제공되므로 사용자는 주어진 시간에 가장 많은 시간이 소요되는 Ops를 디버깅 할 수 있습니다 Katana 세션.
  • 다수의 위치가 생성되는 장면의 성능을 향상시키는 최적화 된 키 워크 플로우.
  • 우리는 이제 약간의 변경이있는 USD 노드 유형을 포함하여 USD 19.11 기반 USD 플러그인을 구축하고 제공합니다. 플러그인 / 자원 / Usd / 디렉토리의 일부로 Katana 설치. USD 플러그인을 선택하는 방법에 대한 설명서가 Katana 새로운 형태의 개발자 안내서 플러그인 작성> Katana USD 플러그인 부분. 이 섹션에는 현재 제공되는 USD 플러그인의 차이점도 설명되어 있습니다. Katana Pixar USD 저장소에 배송 된 제품에서
  • 실험적인 모니터 레이어 기능이 이제 뷰어 (Hydra) 탭으로 전환하고 토글 버튼, 토글 된 메뉴 항목 또는 키보드 단축키 (`)를 통해 켜거나 끌 수 있습니다. 모니터 레이어를 사용하면 뷰어에 표시된 장면에 겹친 렌더링을 볼 수 있습니다.
  • 새로운 명령 줄 옵션 : -재사용 렌더링 프로세스 추가되었다. 달릴 때 Katana 이 옵션을 켜면 배치 모드에서 모든 프레임에 대해 새 렌더 부트 프로세스를 시작하지 않고 렌더 플러그인을 호스팅하는 단일 렌더 부트 인스턴스로 여러 프레임이 렌더됩니다. 이 옵션을 사용하면 렌더 플러그인 및 기타 모든 요소와 같이 프레임 시퀀스 렌더링 성능을 크게 향상시킬 수 있습니다. Katana 모든 프레임에 플러그인을 다시로드 할 필요는 없습니다.

Geolib3-MT 런타임

Katana 노드 그래프, 연산 트리 및 이후에 생성되는 장면은 매우 유연하고 다양합니다. 이러한 장면을 최적으로 평가하려면 평가 엔진이 효율적이고 유연하여 장면의 다양하고 복잡한 장면을 처리 할 수 있어야합니다. Katana. 차세대 Geolib3-MT Katana 장면 그래프 처리 엔진은 점점 더 복잡하고 다양한 워크로드의 요구를 충족시키기 위해 이전 버전의 Geolib3보다 더 높은 수준의 구성, 검사 및 조정 옵션을 제공합니다. 이 섹션에서는 이러한 옵션 중 일부와 이러한 옵션을 활용하여 장면 순회 성능을 향상시키는 방법을 살펴 봅니다.

구성

Geolib3-MT는 RenderSettings 노드를 통해 구성 할 수 있습니다. 모든 Geolib3-MT 옵션은 장면 표제.

sceneTraversal.maxCores

장면 탐색 단계에서 Geolib3-MT가 사용할 논리 코어 수를 결정합니다. 이전 버전과 달리 Geolib3-MT는 내부 스레드 풀을 사용하여 장면 탐색 시간을 향상시킵니다. 다음 다이어그램은 Geolib3-MT와 이전 버전의 차이점을 보여줍니다. Katana.

노트 : 기본값 (0)은 Geolib3-MT가 호스트 컴퓨터에서 사용 가능한 모든 논리 코어를 사용하게합니다. 코어 Geolib3-MT 프로세싱 엔진은 코어 수가 증가함에 따라 확장되지만 Op 트리 내의 개별 Op는 동일한 스케일링 특성을 나타내지 않을 수 있습니다. 결과적으로, 스레드의 증가는 장면 순회 시간의 증가 (감소하지 않음)를 초래할 수있다. 이 경우 새로운 프로파일 링 도구는 Katana 3.5는 이러한 작전을 식별하고 행동을 리팩터링 / 최적화하는 데 사용될 수 있습니다. "스레드 안전하지 않음"으로 표시된 Ops의 경우에도 마찬가지입니다. GEL (Global Execution Lock)을 획득해야하므로 장면 순회 확장 성이 더욱 제한됩니다.

sceneTraversal.opTreeOptimizations

Geolib3-MT는 사전 처리 단계를 수행하여 Op 트리의 토폴로지를 검사하여 잠재적으로 최적화 될 수있는 구문을 식별 할 수 있습니다. 이러한 최적화 중 하나는 동일한 유형의 Op 시퀀스를 해당 Op의 단일 인스턴스로 축소하는 것입니다. 이것에는 많은 이점이 있습니다.

  • 함수 호출 오버 헤드 감소-장면 그래프 위치를 요리하기 위해 Op를 예약하는 데 드는 비용이 적습니다. 유사한 Ops 체인을 결합하면이 함수 호출 오버 헤드를 줄일 수 있습니다.
  • 메모리 사용량 감소-10 Ops 체인은 캐싱 하위 시스템에서 10 개의 개별 쿠킹 결과를 차지하며 성공적으로 축소 된 Op 체인은 위치 당 1 개의 쿠킹 결과 만 차지합니다.

노트 :Op 트리 최적화 단계는 실험적인 기능이므로 기본적으로 해제되어 있습니다. RenderSettings 노드의 sceneTraversal.opTreeOptimizaions 옵션을 통해 설정할 수 있습니다.

추가 정보

Op 트리 최적화 프로그램은 호출하면 동일한 유형의 Op 체인을 축소하려고 시도합니다. GeolibSetupInterface :: setOpsCollapsible ()설정() 요구. 이 함수의 호출자는 Geolib3이 Op에 전달할 속성의 이름을 지정해야합니다. 쿡() Op 인수로 호출하십시오. 이 속성은 축소 된 Ops의 인수를 포함하는 정렬 된 속성 배열 (업스트림 Op에서 다운 스트림 Op로 정렬 됨)을 포함합니다. 그러면 Op는이 "일괄 처리"Op 인수를 적절하게 처리 할 수 있습니다.

sceneTraversal.verboseLogging

렌더 로그를 채우는 많은 정보 메시지를 피하기 위해 Geolib3-MT는 기본적으로 성능과 관련된 메시지를 기록하지 않습니다. 이 메시지는 sceneTraversal.verboseLogging RenderSettings 노드의 옵션입니다. 현재이 메시지에는 다음에 대한 정보가 포함되어 있습니다.

  • 사용 가능한 경우 Op 트리 최적화 프로그램에서 적용 할 수없는 최적화입니다.
  • 캐시 제거 후 캐싱 서브 시스템이 사용하는 메모리.

sceneTraversal.cache 그룹

Geolib3-MT에는 캐싱 하위 시스템의 동작을 제어하기위한 여러 설정이 포함되어 있습니다. 캐싱 하위 시스템은 "요리 결과"라고하는 이전에 조리 된 장면 그래프 위치를 저장하고 검색합니다. 이러한 설정은 프로젝트별로 RenderSettings 노드에서 수정할 수 있습니다. 프로덕션 스케일 장면에 대한 테스트를 기반으로 감지 가능한 기본값이 제공되었습니다. 각 설정에 대한 자세한 내용은 다음과 같습니다.

  • sceneTraversal.cache.cacheEviction -기본적으로 켜져 있습니다. 끄면 쿡 결과가 캐시에서 제거되지 않습니다. 처음에는 캐시 제거를 해제하는 것이 반 직관적 인 것처럼 보일 수 있지만 이것이 적절한 장면이있을 수 있습니다. 특히, 렌더러에 의해 요구되는 장면 및 데이터 구조의 크기가 메모리에 편안하게 맞을 수있는 경우; 렌더링의 장면 생성 단계가 완료되면 Geolib3-MT의 쿠킹 결과가 차지하는 메모리 페이지에 더 이상 액세스 할 수 없으므로 디스크에 페이징 할 수 없으므로 더 큰 장면은 어느 정도 도움이 될 수 있습니다. 성능 저하를 렌더링하는 동안 주 메모리로 다시 페이징되는 것은 최소입니다.
  • sceneTraversal.cache.cacheSoftLimit -캐시 제거가 켜져있는 경우 소프트 한계는 가장 최근에 사용 된 제거 정책을 사용하여 항목을 제거하기 전에 로컬 캐시에 저장되는 쿡 결과 수를 결정합니다. 참고 : 이러한 항목은 로컬 캐시에서 제거 될 수 있지만 여러 다른 로컬 캐시 또는 중앙 (공유 캐시)간에 공유 될 수 있습니다. 이 경우 항목의 메모리가 즉시 회수되지 않습니다.
  • sceneTraversal.cache.collectionFrequency -캐시 제거가 설정된 경우 수집 빈도가 수집주기 사이의 시간 (밀리 초)을 제어합니다. 수집주기 동안 Geolib3-MT는 이전 수집주기 이후에 제거 된 모든 캐시 항목을 수집하며, 조리 결과가 더 이상 사용되지 않으면 조리 결과에 대한 메모리를 제거하고 회수합니다.

추가 정보

캐싱 및 메모리 사용 시간과 첫 번째 픽셀 간 시간의 균형은 장면 통과 시간 및 렌더링 성능에 큰 영향을 줄 수 있습니다. Geolib3-MT에서 제공 한 설정을 사용하여 렌더링의 장면 순회 단계에서 메모리 풋 프린트를 조정할 수 있습니다. 다음은 이러한 장면을 실험 할 때 고려해야 할 사항입니다.

  • 장면 그래프 및 Op 트리의 최대 깊이를 고려하십시오. 캐시 소프트 한계는 스레드별로 최근에 사용 된 쿡 결과의 크기를 제어합니다. 이는 특정 실에서 요리 된 모든 위치 또는 요리 과정에서 액세스 한 모든 위치 (예 : getAttr ())는 로컬 캐시에 저장되며 다음 값에 따라 제거 될 수 있습니다. sceneTraversal.cache.cacheSoftLimit.
  • 수집 빈도 간격을 줄이면 쿠킹 결과가 더 적극적으로 제거되어 메모리 풋 프린트가 줄어들지 만 장면 이동 시간이 발생할 수 있습니다.

sceneTraversal.useCachePrepopulation

켜져 있으면 Geolib3-MT는 내부 캐시를 채우는 장면 그래프 탐색을 수행합니다. 이 순회의 범위는 아래 설정으로 제어 할 수 있습니다. sceneTraversal.cachePrepopulation 아래에 설명되어 있습니다.

  • sceneTraversal.cachePrepopulation.preCookSourceOps -Geolib3-MT가 켜져 있으면 Op 트리에서 발견 된 소스 Op에 의해 생성 된 장면을 먼저 순회합니다. 소스 Op는 입력이없는 Op로 분류됩니다. 이 설정은 지오메트리 캐시 또는 기타 자산 유형으로로드 할 때 이점을 제공 할 수 있습니다. 경험적 테스트에 따르면 소스 Ops 뒤에는 일반적으로 어떤 형태의 정리 작업이 뒤 따르는 것으로 나타 났으며,이 경우 소스 Op 사전 조리는 필요한 것보다 더 많은 장면 그래프 위치를 생성하여 메모리 소비 및 통과 시간을 늘릴 수 있습니다.
  • sceneTraversal.cachePrepopulation.preCookKeyOps -기본적으로 켜져있는 Geolib3-MT는 Op 트리 내에서 병렬로 평가할 수있는 Op를 식별합니다. 확실한 예는 Merge Op입니다.이 경우 Geolib3-MT는 각 분기를 병렬로 평가하여 장면 이동 시간을 단축 할 수 있습니다.
  • sceneTraversal.cachePrepopulation.preCookAllLocations -기본적으로 켜져있는 Geolib3-MT는 나머지 모든 장면 그래프 위치를 쿠킹하여 장면을 완전히 확장합니다.

위의 설정 값을 기반으로 캐시 사전 채우기 단계가 완료되면 Geolib3-MT 캐시는 전체 장면 그래프 또는 그 하위 섹션으로 미리 채워집니다. Geolib3-MT는 기존을 통해 렌더러 플러그인에 효율적으로 액세스 할 수 있도록 최적화되었습니다 FnScenegraphIterator 이 캐시에 대한 API. 이 캐시는 확장 가능한 스레드 안전 캐시이므로 렌더러 플러그인 작성자가이 캐시에 동시에 액세스하여 장면 빌드 단계의 성능을 향상시키는 것이 좋습니다.

참고 : Geolib3-MT 캐시가 완전히 채워지지 않은 경우 캐시 액세스 FnScenegraphIterator)로 인해 캐시 누락이 발생합니다. 이 경우 요청한 위치는 호출 스레드를 사용하여 쿠킹됩니다.

API 개선

성능 및 메모리 관리를 향상시키기 위해 다양한 API가 확장되었습니다

  • GeolibRuntime :: finalize ()FnScenegraphIterator :: finalizeRuntime () 렌더러 플러그인에서 사용하는 방법-일반적으로 장면을 탐색 한 후 렌더러 플러그인에서 Geolib3 런타임이 다시 필요하지 않음을 명시 적으로 지정할 수 있습니다. 런타임은 메모리를 제거하고 추가 계산을 중단합니다.
  • FnAttribute :: getSize () -이 함수는 특정 속성에 동적으로 할당 된 메모리 크기를 반환합니다. 그룹 속성의 경우 크기는 모든 하위 속성의 크기와 하위 이름의 길이의 합을 나타냅니다. 그룹 속성에 동일한 속성 인스턴스의 중복 참조가 포함 된 경우 해당 속성의 크기는 그룹에 나타나는 횟수만큼 설명됩니다.
  • AttributeKeyedCache 스레드 효율적인 대안을 포함합니다. 이 템플릿 클래스는 TBB의 동시 해시 맵 측면에서 다시 구현되었습니다. TBB를 사용할 수없는 사용자는 다음을 정의하여 여전히 뮤텍스 버전을 사용할 수 있습니다. ATTRIBUTEKEYEDCACHE_NO_TBB 헤더 파일을 포함시키기 전에
  • GeolibSetupInterface :: setOpsCollapsible (). 설정된 경우이 유형의 Op가 축소를 지원함을 Geolib3-MT에 표시합니다. 향후 릴리스에서 Geolib3-MT는이 정보를 사용하여 유사한 Ops의 체인을 식별하여 단일로 축소합니다 쿡() 요구.
  • kFnKatGeolibThreadModeGlobalUnsafe 더 이상 사용되지 않습니다. 모든 Op는 스레드로부터 안전하거나 자체 내부 잠금을 구현해야합니다.
  • 일부 새로운 기능 설치 (), 정리 () setRootIterator () 에 추가되었습니다 렌더베이스 렌더러 플러그인의 클래스 plugin_apis / include / FnRender / plugin / RenderBase.h 머리글. 이를 통해 렌더 플러그인은 각 프레임에 대해 새 플러그인 인스턴스를 작성하는 대신 단일 인스턴스에서 여러 프레임을 렌더링 할 수 있습니다.

분석 및 프로파일 링 도구

Geolib3-MT 프로파일 링

Geolib3-MT는 새로운 렌더링 유형을 추가합니다. 프로파일 링으로 렌더 미리보기장면 순회에서 성능 문제를 추적 할 수 있도록 설계되었습니다. 일반적인 미리보기 렌더를 수행하지만, Ops가 실행 한 정보, 위치를 요리하는 데 사용 된 CPU 양, 속성 및 Lua 스크립트에 사용 된 메모리 양에 대한 정보도 캡처합니다.

프로파일 링을 사용한 미리보기 렌더는 프로파일 링 데이터를 두 곳에서 출력합니다.

  • 렌더 로그에 사용 된 총 CPU 시간 및 메모리와 가장 비싼 10 개의 Ops를 포함하는 요약 보고서.
  • 원시 프로파일 링 데이터가 포함 된 디스크에 작성된 JSON 파일 (아래 설명 참조)

프로파일 링으로 미리보기 렌더 시작

프로파일 링을 사용한 미리보기 렌더는 다른 렌더와 동일한 메뉴에서 프로파일 링으로 렌더 미리보기 명령.

이 옵션은 미리보기 렌더러를 이미 지원하는 렌더러에서 사용할 수 있으며 렌더러 부분에 대한 추가 작업이 필요하지 않습니다. 렌더러가 finalize () Geolib3-MT 런타임의 방법으로, 이러한 프로파일 링 보고서는 런타임이 완료 될 때 생성됩니다. 그렇지 않으면 렌더링이 완료 될 때 보고서가 작성됩니다.

어떤 정보가 캡처됩니까?

Op의 이름, 유형 및 숫자 ID 각 Op에는 이름, 유형 및 고유 한 숫자 ID가 있습니다. 예를 들어 OpScript Op에는 이름이있을 수 있습니다. op74유형 OpScript.Lua 그리고 ID 77. 이름과 ID는 상관 될 필요가 없습니다.

의 이름과 유형 Katana Op를 스폰 한 노드. Op가 직접 Op를 스폰하는 경우 Katana node, 해당 노드의 이름 및 유형이 기록됩니다. Op가 내재적으로 작성된 경우 노드 이름은 동일합니다. _No 이름 _ 그리고 유형은 같을 것입니다 _NoType_. 예를 들어 MaterialFilenameResolve Ops :이 Ops는 파일 이름을 해결해야 할 때 암시 적으로 생성되므로 Katana 노드는 작성자로 식별됩니다.

참고 : sceneTraversal.opTreeOptimizations 이 켜져 있고 운영 체제 체인이 축소되면 노드 이름과 유형이 체인에서 생성 된 문자열로 바뀝니다. 체인 길이가 유형의 Ops로 구성 opType, 여기서 Op 케이 ~ 라 불려진다 영형케이 에 의해 생성됩니다 Katana 노드 이름 나는문자열의 일반적인 형식은 다음과 같습니다.

경찰 (o0(엔0)-> o1(엔1)-> ...-> o(엔))

그러나이 문자열의 형식이 고정 된 상태로 유지되는 것은 아닙니다.

Op가 요리 위치를 소비 한 총 CPU 시간입니다. 각 Op는 많은 위치를 요리하며 모든 장면 탐색 스레드에서이 작업을 수행하는 데 소요되는 시간이 누적됩니다. 따라서 CPU 시간은 장면이 병렬로 이송 될 때 장면 통과 스레드 수에 따라 확장되어야합니다. 그렇지 않은 경우 해당 Op의 업스트림 스레드 안전하지 않은 Op가있을 수 있습니다.

그 Op의 메모리 풋 프린트. 각 Op는 쿠킹 위치에 메모리를 할당해야하며 Op 당 총 메모리가 집계됩니다. 현재 다음과 같은 할당 만 기록됩니다.

  • 조리 된 위치의 속성을 저장하기위한 FnAttribute 라이브러리에 의한 할당
  • OpScript를 실행하는 동안 Lua 인터프리터가 할당 한 할당 과
  • 캐시에 CookResults를 저장하기위한 할당.

프로파일 링 요약 보고서

프로파일 링을 사용한 미리보기 렌더가 완료되면 요약 보고서가 렌더 로그에 작성됩니다. 이 보고서는 프로파일 데이터에 대한 개괄적 인 정보를 제공하기 위해 작성되었으며 다음을 포함합니다.

  • 모든 Op에 걸쳐 총 CPU 시간.
  • 모든 Op에 걸쳐 합쳐진 총 메모리 풋 프린트; 과
  • CPU 시간별 가장 느린 5 개의 Op.

렌더 로그 예제의 관련 섹션은 다음과 같습니다.

JSON 파일 프로파일 링

요약 보고서 외에도 원시 프로파일 링 데이터가 포함 된 JSON 파일이 디스크에 기록됩니다. 작성된 디렉토리는 다음에 의해 결정됩니다. -프로파일 링 -dir 명령 줄 옵션; 이것이 설정되어 있지 않으면, 임시 디렉토리에 기록됩니다. Katana 세션. 이 디렉토리가 없으면 파일 시스템 권한이 허용되는 경우 디렉토리가 작성됩니다. 파일 이름은 다음 형식을 따릅니다.

profile_ <렌더러> _previewRender_ <날짜 시간> .json

어디:
  • <렌더러> 렌더 플러그인의 이름입니다. 예 : dl 3 기쁨;
  • <날짜 시간> 렌더링이 시작된 시점의 ISO8601 타임 스탬프입니다.

파일에는 다음 속성을 가진 단일 JSON 객체가 포함됩니다.

특성 유형기술
타임 스탬프프로파일 파일이 작성된 ISO8601 타임 스탬프2019-10-11T09 : 37 : 06Z
렌더러렌더 플러그인의 이름입니다. dl
renderMethodName 렌더링 방법의 이름. 현재는 항상 "previewRender"입니다. previewRender
환경목적 다음을 포함하여 다양한 환경 변수의 값을 포함하는 객체 :
  • KATANA_RELEASE
  • KATANA_ROOT
  • KATANA_RESOURCES
{“KATANA_RELEASE”:“3.5v1”,“KATANA_ROOT”: /opt/foundry/katana3.5”,“KATANA_RESOURCES”:“<unset>”}
profileMode프로파일 모드의 이름. 현재는 항상 "기본"입니다.기본
작전정렬각 Op가 소비하는 리소스를 설명하는 객체의 배열입니다.아래를 참조하십시오.
numOps번호Ops 배열의 길이입니다.78
wallTime 번호 렌더링 시작과 프로파일 링 파일 사이의 벽시계 시간 (초). 렌더러가 구현하는 경우 finalize ()이는 장면 순회 시간과 같습니다. 46.85064
cpuTime 번호 모든 작업의 CPU 시간 합계 (초)입니다. 91.39238
사용 된 메모리 번호 모든 Op에 대한 메모리 풋 프린트의 합계 (바이트). 10728607911

그만큼 작전 property에는 장면 순회 중에 실행 된 각 Op에 대해 다음 형식의 객체 배열이 포함됩니다.

특성유형기술
opId번호 Op에 대한 고유 한 정수 식별자입니다.23
opName Op의 고유 이름 op223
opType Op의 유형AttributeSet
nodeName의 이름 Katana 이 Op를 작성해야하는 노드 또는 _No 이름 _ Op가 내재적으로 작성된 경우RenderSettings_SetSamples
nodeType의 유형 Katana 이 Op를 작성해야하는 노드 또는 _NoType_ Op가 내재적으로 작성된 경우렌더 설정
cpuTime번호이 Op가 전체 스레드에서 위치를 요리하는 데 걸린 총 시간 (초)입니다.0.54512136
사용 된 메모리 번호 위에서 정의한대로이 Op는 위치를 요리하는 동안 사용 된 총 메모리 공간 (바이트)입니다. 185378321
  • Op 트리 디버깅을위한 명령 줄 도구 -새로운 명령 줄 도구 씬 워커Op 개발, 장면 디버깅 및 성능 분석을 지원할 수 있습니다. 씬 워커 구성 가능한 개수의 코어를 사용하여 Op 트리를 통과하거나 특정 위치 만 통과하고 장면 그래프에서 원시 속성 데이터를 출력하도록 구성 할 수 있습니다.

실험적인 특징

  • 환경 변수 KATANA_EXPERIMENTAL_MONITOR_OVERLAY 더 이상 사용되지 않습니다. 모니터 레이어 기능은 이제 뷰어 (Hydra) 전환 버튼, 전환 메뉴 항목 또는 키보드 단축키 (`).

배치 렌더에서 렌더 프로세스 재사용

  • 출시를 최적화하기위한 새로운 모드 렌더 부트 렌더 플러그인을 호스팅하는 프로세스가 추가되었습니다 Katana새로운 배치를 통해 켜질 수있는 배치 모드 -재사용 렌더링 프로세스 에 명령 줄 옵션 Katana 실행 파일 ( --일괄). 달릴 때 Katana 이 옵션을 켜면 배치 모드에서 여러 인스턴스가 단일 인스턴스로 렌더링됩니다. 렌더 부트 새로운 플러그인을 시작하지 않고 렌더 플러그인 호스팅 렌더 부트 모든 프레임에 대한 프로세스. 이 옵션을 사용하면 렌더 플러그인 및 기타 모든 요소와 같이 프레임 시퀀스 렌더링 성능을 크게 향상시킬 수 있습니다. Katana 모든 프레임에 플러그인을 다시로드 할 필요는 없습니다.

    참고 : 렌더 플러그인은 Katana 3.5v1 렌더링 API는 -재사용 렌더링 프로세스 배치 모드의 명령 행 옵션.
  • 일부 새로운 기능 설치 (), 정리 () setRootIterator () 에 추가되었습니다 렌더베이스 렌더러 플러그인의 클래스 plugin_apis / include / FnRender / plugin / RenderBase.h 머리글. 이를 통해 렌더 플러그인은 각 프레임에 대해 새 플러그인 인스턴스를 작성하는 대신 단일 인스턴스에서 여러 프레임을 렌더링 할 수 있습니다.

기타 주목할만한 기능 향상

  • TP 55592 / BZ 27736-새로운 -V / --말 수가 많은 정보 메시지 로깅의 상세 수준을 제어하기위한 명령 줄 옵션이 Katana 실행 파일 :

     -V LEVEL, --verbose = LEVEL 정보 메시지 로깅의 상세 수준. 기본값은 1입니다. 대부분의 정보 메시지를 표시하지 않으려면 0으로 설정하십시오.
  • TP 280477-이제 선택된 항목의 텍스트 표현을 복사 할 수 있습니다. 지연된 그룹 트리 의 위젯 속성 클립 보드로 이동합니다. 이 유형의 위젯은 예를 들어 라이트리스트 의 그룹 속성 / root / world 그리고 material.nodes 그룹 속성 재료 네트워크 자료를 나타내는 위치.