지원 티켓 만들기
팔로우

Q100170 : Katana에서 텍스처 처리하기

개요

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

아래는 Arnold와 RenderMan과 함께 사용할 수있는 몇 가지 옵션에 대한 요약입니다. 여기에 설명 된 두 가지 접근법을 보여주는 첨부 된 예제 장면도 참조하십시오.

추가 정보

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

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

이 방법은 특히 많은 수의 개체를 포함하는 장면을 작업 할 때 가장 노동 집약적 인 방법이며 재질 변경이 필요할 때 융통성이 부족합니다.

종종 많은 물체가 동일한 재질을 공유 할 수 있지만 다른 질감을 할당해야합니다. 이 경우 각 객체가 자체 텍스처를 선택하도록 장면을 설정할 수 있습니다.

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

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

RenderMan primvars

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

Katana에서는 textures.xxx 라는 문자열 속성 이 자동으로 RenderMan에 xxx 라는 primvar로 기록됩니다 . 셰이더의 문자열 매개 변수가 같은 이름 인 경우 RenderMan은 렌더 타임에이 셰이더 매개 변수를 설정하기 위해 기하 도형에서 전달 된 primvar 값을 사용합니다.

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

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

  1. 도움말> 포니가 필요함을 클릭하여 CameraCreate와 두 개의 포니 노드를 추가합니다 . 조랑말의 이름을 확인하십시오.
  2. AttributeSet 노드를 사용하여 'geometry.arbitrary.texFile'속성을 생성하십시오. 조랑말 중 하나에서 'flag_uk.tx'로 설정하고 다른 쪽에서는 'flag_usa.tx'로 설정하십시오.
  3. 병합 노드를 사용하여 모든 노드를 병합하십시오.
  4. 머티리얼을 생성하고 RMSGPSurface 쉐이더를 추가합니다.
  5. MaterialAssign 노드를 사용하여 root / world / geo // *에 재질을 지정하십시오.
  6. PxrStdAreaLight가있는 GafferThree 노드를 추가합니다.
  7. 이제 텍스쳐를 처리 할 OpScript 노드를 생성하십시오.
    - 사용자 CEL 위치 : / root / world / geo // *에 적용하십시오. 즉, OpScript는 geo 아래의 모든 객체에 반복적으로 적용됩니다.
    - texturePath라는 사용자 매개 변수를 추가하고 Katana에 포함 된 데모에 대한 텍스처가 저장되는 위치로 값을 설정합니다 (예 :
    Linux에서 /opt/Foundry/Katana2.5v3/demos/tx_files/
    C : / Program Files / Katana2.5v3 / demos / tx_files / Windows에서
    - 다음 루아 코드를 추가하십시오 :
    로컬 texPath = 인터페이스 .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의 이름이나 파일 경로를 포함하는 태그를 geometry.arbitrary에 추가하는 방법에 대한 자세한 내용은 파이프 라인 데이터를 사용하여 텍스처 설정 에 대한 Katana 온라인 도움말을 참조하십시오 .

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

Arnold와 Renderman과 함께 사용할 수있는 또 다른 옵션은 셰이더 매개 변수에 {attr : xxx} 구문을 사용하는 것입니다. 재질을 만들 때 재질의 매개 변수를 {attr : tex.SurfaceMap}과 같이 설정하면됩니다.

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

이 접근법의 경우, 위의 예제에서 설명한 것처럼 장면을 위로 설정하고 Surface Map 매개 변수의 값으로 {attr : tex.SurfaceMap}을 추가합니다 (텍스처가 아니라. 우리가 primvars를 사용하지 않는다는 것을 나타냄). OpScript 코드의 마지막 줄

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

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

도움이 되었습니까?
/

We're sorry to hear that!

Please tell us why.
2명 중 0명이 도움이 되었다고 했습니다.

댓글