새로운 기능 Katana 3.1

소개

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

  • 와의 완전한 호환성 VFX 레퍼런스 플랫폼 CY2017 사양, 특히 코드베이스를 수량 5.
  • 작업에 대한 개선 된 지원 매우 큰 속성.
  • 향상 사용자 인터페이스 성능.
  • 향상 Alembic 읽기 성능.
  • 실험 새로운 Hydra Viewer 레이어 그 픽셀을 보여줍니다 감시 장치 탭.

기술 변경

타사 소프트웨어

아래 표에는 제공된 타사 소프트웨어 버전의 변경 사항이 요약되어 있습니다. Katana 3.1v1은 다음과의 호환성을 목표로합니다. VFX 참조 플랫폼 CY2017.

Katana 3.1 Katana 3.0
Qt 5.6.1 4.8.5
PyQt 5.6 4.11.4
한모금 4.18.1 4.17
OpenSubdiv 3.1.1 3.0.5
Ptex 2.1.28 2.1.10
fmt 4.1.0 배송되지 않음
Fontconfig 배송되지 않음 2.8.0 (Linux 만 해당)

Qt 4에서 Qt 5 로의 포트로 인해 다음과 같은 사용자 인터페이스 API가 변경되었습니다.

  • 선택한 Qt 위젯 Katana'키 기반 드래깅'프로토콜은 다음과 같이 업데이트해야합니다. 이전에는 Katana 동적 PyQt를 방출합니다 keyBasedDragRequested 사용자가 마우스를 가져 가서 누르면 위젯에서 신호 Ctrl+. 현재 Katana 3.1, 위젯이 대신 customEvent () 처리하는 방법 QT4Widgets.GlobalEventFilter.KeyBasedDragEvent Qt 이벤트. 위젯은 이벤트를 수락하고 QT4Widgets.InteractiveDrag 목적.

  • 이전에 Python 속성을 설정 한 Qt 위젯 drawInteractiveHighlight그릇된 이제 부울을 설정해야합니다 Q 개체 대신 같은 이름의 속성. 이 속성을 사용하면 위젯이 표준 강조 효과를 선택 해제 할 수 있습니다 Katana 드래그 앤 드롭 작업의 대상 위젯에 적용됩니다.

  • 이전에 Python 속성을 설정 한 Qt 위젯 STOP_GLOBAL_SCROLLING 또는 SKIP_GLOBAL_SCROLLING 이제 부울을 설정해야합니다 Q 개체 대신 같은 이름의 속성. 이 속성을 사용하면 위젯에서 옵트 아웃 할 수 있습니다 Katana기본 '글로벌 스크롤'동작 Alt 커서가 위에있는 동안 마우스 가운데 버튼으로 드래그 QScrollArea기반 위젯.

  • 클래스 UI4.Widgets.TextInfoDialog 없어졌으며 제거되었습니다.

뷰어 API 개선

  • 그만큼 뷰어 API 단일 OpenGL 컨텍스트에 대한 지원을 추가하기 위해 재 작업되었습니다. 뷰포트. 그만큼 뷰포트 위젯 클래스는 이제 QWidget.

  • FnViewerDelegate :: getPartialXform () 반환 된 행렬에 포함 된 xform 그룹을 구성하기위한 3 개의 새로운 인수가 제공되었으며 기본값은 기존 동작과 일치합니다. 이 변경 사항은 여러 변환 그룹 (TP 346989)이있는 룩스 루 카메라를 조작 할 때 3.0v2에서 제공되는 수정 사항으로 인해 잘못된 결과를 얻습니다.

FnAttribute 개선

Katana 2로 속성 생성을 지원합니다.32 시간 샘플 당 하나 이상의 값 및 내부 크기 제한과 관련된 오류 처리가보다 강력 해졌습니다. 이전에는 Katana 특정 내부 제한이 위반 된 경우 충돌하거나 잘못된 속성을 생성 할 수 있으며 이러한 제한에 대한 공식적인 문서가 없습니다. 내부 데이터 제한 FnAttribute (현재 C ++ 헤더에 문서화되어 있음)는 다음과 같습니다.

  • DataAttribute (int, float, double, string) :
    • 값 개수 (시간 샘플 당) : [0, 263]
    • 시간 샘플 수 : [0, 213]
    • 튜플 크기 : [0, 216]
  • GroupAttribute
    • 아동 수 : [0, 228]

OpScript는 이제 2 개 이상의 속성을 검사하고 생성 할 수 있습니다27 새로운 샘플을 사용하여 시간당 샘플 값 getSamples () 방법; 모든 데이터 속성에서 사용 가능합니다. 에 의해 반환 된 '샘플 접근 자'개체 getSamples () 기존 데이터를 조작하기 위해 샘플 버퍼의 변경 가능한 사본을 생성 할뿐만 아니라 시간 샘플 데이터의 읽기 전용보기 검사를 지원합니다. 전체 설명서는 Katana 개발자 안내서이지만 유용한 예는 다음과 같습니다.

현지myIntAttr=상호 작용.GetAttr('myAttr') local newSamples = {} for _, sample in ipairs(myIntAttr:getSamples()) do -- Create a mutable copy of the sample buffer local buffer = sample:toArray() for i, elem in ipairs(buffer) do buffer:set(i, elem * 2) end local t = sample:getSampleTime() newSamples[t] = buffer end Interface.SetAttr('myAttr',IntAttribute ( 새로운 샘플)) 

이전 버전과의 호환성을 위해 myDataAttr : getNearestSample (시간) 시간 샘플 사본을 Lua 테이블로 계속 반환하며 최대 2 개가 적용됩니다27 가치. 양해 바랍니다 getSamples () API에는 새로운 LuaJIT 기반 OpScript 백엔드가 필요하며 레거시 Lua 5.1 백엔드에서는 사용할 수 없습니다.

성능 개선

응용 프로그램 시작, 사용자 인터페이스 상호 작용 및 유휴 CPU 사용 성능을 최적화하여 Katana 이벤트 시스템 및 인스턴스 제거 Katana 이벤트에 대한 설문 조사.

메모리 매핑 된 I / O를 사용하여 Ogawa 기반 Alembic 읽기 성능도 향상되었습니다.

새로운 기능

프로파일 링

  • 새로운 예제 렌더러 플러그인이 이제 Katana: 프로파일 링. 플러그인은 그림을 렌더링하지 않습니다. 대신, 그 목적은 프로파일 Katana렌더러 플러그인의 컨텍스트에서 장면 그래프 확장을 통해 장면 그래프 위치 데이터에 액세스하기위한 다양한 탐색 전략을 구현합니다. 플러그인의 소스 코드는 플러그인 / Src /.

    추가의 일부로 프로파일 링 예를 들어, 기존 렌더러 플러그인 의 페이지 Katana 개발자 안내서는 두 섹션으로 나뉩니다. 개요 렌더 API. 새 플러그인은 새 섹션에 설명되어 있습니다. 모의 렌더러 프로파일 링.

실험적인 특징

프런트 버퍼 모니터

의 픽셀 데이터를 보여주는 실험 뷰어 레이어 감시 장치 탭이 추가되었습니다 뷰어 (Hydra) 탭.

설정시 KATANA_EXPERIMENTAL_MONITOR_OVERLAY 환경 변수 Katana 환경을 시작하다 1, ㅏ 프런트 버퍼 모니터 토글 된 메뉴 항목이 탭의 전망 메뉴. 언제 보기> 모니터 전면 버퍼 이 켜져 있으면 이미지 레이어가 탭의 뷰어 레이어에 삽입되며, 여기에 전면 버퍼로 표시되는 카탈로그 항목의 픽셀 데이터가 표시됩니다. Katana'에스 감시 장치 탭.