지원 티켓 만들기
팔로우

Q100170 : Katana에서 텍스처 처리

개요

텍스처는 쉐이더 라이브러리 및 스튜디오 파이프 라인에 의해 다양한 방식으로 처리되며 Katana는 몇 가지 일반적인 규칙에 따라 텍스처를 할당 할 수있는 유연한 프레임 워크를 제공합니다.

다음은 Arnold 및 RenderMan에서 작동하는 이러한 옵션 중 일부를 요약 한 것입니다. 여기에 설명 된 두 가지 방법을 모두 보여주는 첨부 된 예제 장면을 참조하십시오.

추가 정보

재질 속성을 사용하여 텍스처 선언

각 오브젝트에 고유 한 텍스처를 부여하는 가장 간단한 방법은 오브젝트 당 머티리얼을 만들고 쉐이더에서 텍스처를 문자열 매개 변수로 명시 적으로 선언하는 것입니다. 그런 다음 각 객체에 관련 자료가 할당됩니다.

이 방법은 특히 많은 객체가 포함 된 장면을 작업 할 때 가장 노동 집약적이며 재료를 변경해야 할 때 유연성이 부족합니다.

종종 많은 오브젝트가 같은 머티리얼을 공유 할 수 있지만 다른 텍스처를 할당해야합니다. 이 경우 각 오브젝트가 자체 텍스처를 선택하도록 장면을 설정할 수 있습니다.

객체 속성을 사용하여 텍스처 선언

머티리얼에 텍스처를 설정하는 대신, 렌더링 할 오브젝트는 임의의 속성을 통해 관련 텍스처 파일을 가리킬 수 있습니다.

RenderMan primvars

RenderMan을 사용할 때, 텍스처 파일은 RenderMan primvar로 렌더러에 전달 될 수 있습니다.

Katana에서는 textures.xxx 라는 문자열 속성 xxx 라는 기본 변수로 RenderMan에 자동으로 작성됩니다 . 셰이더에 이름이 같은 문자열 매개 변수가있는 경우 RenderMan은 형상에서 전달 된 primvar의 값을 사용하여 렌더링시이 셰이더 매개 변수를 설정합니다.

텍스쳐의 이름이 형상에 임의의 속성에 포함되어있는 경우에, 당신은 렌더맨으로 인식됩니다 형식 속성 texture.xxx 이러한 설정하기 OpScript를 사용할 수 있습니다.

RenderMan primvars를 사용하여 예제 장면을 설정하려면 다음을 수행하십시오.

  1. 도움말> 조랑말 원함을 클릭하여 CameraCreate 및 두 개의 조랑말 노드를 추가하십시오 . 조랑말의 이름을 지정하십시오.
  2. AttributeSet 노드를 사용하여 'geometry.arbitrary.texFile'속성을 작성하십시오. 조랑말 중 하나에서 'flag_uk.tx'로 설정하고 다른 조랑말에서 'flag_usa.tx'로 설정하십시오.
  3. 병합 노드를 사용하여 모든 노드를 병합하십시오.
  4. 머티리얼을 생성하고 RMSGPSurface Shader를 추가하십시오.
  5. MaterialAssign 노드를 사용하여 머티리얼을 root / world / geo // *에 할당하십시오.
  6. PxrStdAreaLight로 GafferThree 노드를 추가하십시오.
  7. 이제 텍스처를 처리 할 OpScript 노드를 만듭니다.
    -사용자 정의 CEL 위치 (/ root / world / geo // *)에 적용하십시오. 즉, OpScript는 지리적 아래에있는 모든 객체에 재귀 적으로 적용됩니다.
    -texturePath라는 사용자 매개 변수를 추가하고 Katana에 포함 된 데모의 텍스처가 저장된 위치로 값을 설정하십시오.
    Linux의 경우 /opt/Foundry/Katana2.5v3/demos/tx_files/
    Windows의 C : / Program Files / Katana2.5v3 / demos / tx_files /
    -다음 루아 코드를 추가하십시오.
    로컬 texPath = Interface.GetOpArg ( 'user.texturePath')
    로컬 파일 이름 = Interface.GetAttr ( 'geometry.arbitrary.texFile')
    로컬 파일 경로 = (texPath : getValue () .. fileName : getValue ())

    Interface.SetAttr ( 'textures.SurfaceMap', StringAttribute (filePath))



  8. 이것을 렌더링하면 각 조랑말에 geometry.arbitrary.texFile에 의해 지정된 텍스처가 할당 된 것을 볼 수 있습니다.

이 경우 SurfaceMap과 같이 Katana에서 매개 변수의 내부 이름을 보려면 마우스 가운데 버튼을 스크립트 편집기의 텍스트 필드로 끌어 놓을 수 있습니다. 결과 명령은 속성에 사용할 이름을 알려줍니다.

텍스처의 이름 또는 파일 경로가 포함 된 태그를 geometry.arbitrary에 추가하는 방법에 대한 자세한 내용은 파이프 라인 데이터를 사용하여 텍스처 설정 에 대한 Katana 온라인 도움말을 참조하십시오 .

셰이더 매개 변수에 대한 {attr : xxx} 구문

Arnold 및 Renderman과 함께 작동하는 다른 옵션은 셰이더 매개 변수에 {attr : xxx} 구문을 사용하는 것입니다. 이것은 머티리얼을 생성 할 때 머티리얼의 파라미터를 {attr : tex.SurfaceMap}과 같이 설정함으로써 작동합니다.

렌더링시 렌더러는 렌더링 할 형상에서 tex.SurfaceMap이라는 속성을 찾습니다. 그런 다음 셰이더 매개 변수는 geometry 속성에서 읽은 값으로 설정됩니다.

이 방법에서는 위의 예에서 설명한대로 장면을 설정하되 {attr : tex.SurfaceMap}을 Surface Map 매개 변수 (텍스처가 아님)로 값을 추가하고 (primvar를 사용하지 않음을 표시) OpScript 코드의 마지막 줄

Interface.SetAttr ( 'tex.SurfaceMap', 문자열 속성 (filePath))

자세한 내용은 "텍스처 처리-개요"예제 프로젝트와 Katana 온라인 도움말 텍스처 처리 옵션 섹션을 참조하십시오.

도움이 되었습니까?
/

우리는 문제로 불편을 끼쳐 드려 죄송합니다

이유를 알려주세요
4명 중 1명이 도움이 되었다고 했습니다.

댓글