சுருக்கம்
தற்போதைய பிரேம் நேரம் அல்லது மாதிரிகளின் எண்ணிக்கை போன்ற தற்போதைய வரைபட நிலையின் அமைப்பு வாதங்களை தனிப்பயன் Op இலிருந்து எவ்வாறு அணுகலாம் என்பதை இந்தக் கட்டுரை விளக்குகிறது.
தனிப்பயன் Op ஐ எவ்வாறு எழுதுவது மற்றும் தொகுப்பது என்பது குறித்த தகவலை நீங்கள் தேடுகிறீர்கள் என்றால், தயவுசெய்து Q100326 ஐப் பார்க்கவும்: உங்கள் முதல் தனிப்பயன் Op ஐ எவ்வாறு எழுதுவது மற்றும் சோதிப்பது .
மேலும் தகவல்
தனிப்பயன் Ops ஐ செயல்படுத்தும்போது ஒரு பொதுவான தடையாக இருப்பது, தற்போதைய நேரத்தை ( shutterOpen அல்லது shutterClose மதிப்புகள்) அல்லது நேர மாதிரிகளின் எண்ணிக்கையை வழங்கும் சமையல் இடைமுக செயல்பாடுகள், தனிப்பயன் Op பகுதியாக இருக்கும் Op சங்கிலியின் முனை சரியாக அமைக்கப்படாவிட்டால் சரியான முடிவை வழங்காது.
எடுத்துக்காட்டாக, அழைப்புகளுக்கு இது பொருத்தமானது:
Foundry ::கட்டான::GetCurrentTime(இடைமுகம்)
Foundry ::கட்டான::GetShutterOpen(இடைமுகம்)
Foundry ::கட்டான::கெட்ஷட்டர்குளோஸ்(இடைமுகம்)
Foundry ::கட்டான::GetNumSamples(இடைமுகம்)
இந்த செயல்பாடுகளிலிருந்து எதிர்பார்க்கப்படும் வருவாய் மதிப்பைப் பெற, System Op Args ஐச் சேர்ப்பது அவசியம். பொதுவாக இவற்றை வழங்குவது முனையின் (அல்லது interface.execOp வழியாக Op ஐ ஹோஸ்ட் செய்யும்) பொறுப்பாகும்.
Op ஆனது GenericOp முனை வழியாக உடனடிப்படுத்தப்பட்டால், அதன் addSystemOpArgs அளவுருவை ஆம் என அமைக்க வேண்டும்.
ஒரு தனிப்பயன் NodeTypeBuilder வழியாக Op பதிவுசெய்யப்பட்டால், buildOpChain() க்கு அனுப்பப்படும் இடைமுகப் பொருளில் ஒரு addOpSystemArgs() முறை உள்ளது, இது Op args இல் 'system' GroupAttribute ஐச் சேர்க்கும். Op பின்னர் இதை மீட்டெடுத்துப் பயன்படுத்தலாம்.
குறிப்பு: தொடர்புடைய NodeTypeBuilder செயல்பாட்டை Katana டெவலப்பர் வழிகாட்டியில் காணலாம்.
உதாரண செயல்படுத்தல்
இணைக்கப்பட்டுள்ள எளிய NodeTypeBuilder அடிப்படையிலான முனை வகையின் ஒரு எடுத்துக்காட்டு , இது /root/world/geo/hello_world இல் hello world வகையின் ஒற்றை இருப்பிடத்தை உருவாக்கி , அதில் HelloWorld Op ஐ இயக்குகிறது. (இந்த எடுத்துக்காட்டில் /root இல் சில பண்புக்கூறுகளை அமைத்தல் ).
பயன்படுத்தத் தயாராகும் முன், ஆப் மூலத்தைத் தொகுக்க வேண்டும். இதைச் செய்ய, Katana நிறுவல் கோப்பகத்தில் சேர்க்கப்பட்டுள்ள $KATANA_ROOT/plugins/Src/README.md கோப்பில் உள்ள வழிமுறைகளைப் பின்பற்றவும்.
மேலும் விரிவான வழிகாட்டுதலுக்கு, தயவுசெய்து Q100326 ஐப் பார்க்கவும்: உங்கள் முதல் தனிப்பயன் Op ஐ எவ்வாறு எழுதுவது மற்றும் சோதிப்பது .
C++ மூலமானது .so அல்லது .dll கோப்பில் தொகுக்கப்பட்டவுடன், இந்தக் கோப்பு KATANA _RESOURCES கோப்பகத்தின் Ops துணைக் கோப்புறையில் வைக்கப்பட வேண்டும், மேலும் NTB.py KATANA _RESOURCES கோப்பகத்தின் Plugins துணைக் கோப்புறையில் வைக்கப்பட வேண்டும்.
KATANA _RESOURCES ஐ அமைப்பது பற்றிய கூடுதல் தகவலுக்கு, Katana நிறுவல் வழிகாட்டியைப் பார்க்கவும்.
முனையின் Op சங்கிலியில் Op ஐச் சேர்க்கும்போது 'system' Op arg ஐச் சேர்ப்பதற்கான தொடர்புடைய குறியீடு பின்வருமாறு:
opArgs = FnAttribute.GroupBuilder()
interface.addOpSystemArgs(opArgs)
interface.appendOp('HelloWorld', opArgs.build())
இது பின்வருவனவற்றைச் செய்வதற்குச் சமம்:
graphState = interface.getGraphState()
opArgs = FnAttribute.GroupBuilder()
opArgs.set('system', graphState.getOpSystemArgs())
interface.appendOp('HelloWorld', opArgs.build())
'HelloWorld' ஆப் இதை அணுகலாம், எடுத்துக்காட்டாக, தற்போதைய நேரத்தை ரூட்டில் ஒரு பண்புக்கூறாக அமைக்கலாம்:
static void cook(Foundry::Katana::GeolibCookInterface& interface)
{
if (interface.atRoot())
{
interface.setAttr("Hello", FnAttribute::StringAttribute("World!"));
interface.setAttr("CurrentTime", FnAttribute::FloatAttribute(Foundry::Katana::GetCurrentTime(interface)));
}
interface.stopChildTraversal();
}
தொழில்நுட்ப விளக்கம்
GraphState::getOpSystemArgs() என்பது timeslice குழு ( currentTime , shutterOpen , shutterClose , numSamples ) மற்றும் variables குழு ( graph state variables ) ஆகியவற்றைக் கொண்ட ஒரு குழுவை வழங்குகிறது. இந்தக் குழுவை 'system' ஆக அமைக்க வேண்டும். Op arg; GetCurrentTime மற்றும் GetGraphStateVariables போன்ற CookInterface அழைப்புகள் getOpArg("system.[...]") ஐ அழைக்கும் வசதி செயல்பாடுகளாகும்.
மேலும் உதவி
இந்தக் கட்டுரையில் உள்ள தகவல்களில் ஏதேனும் சிக்கல்கள் ஏற்பட்டால், தயவுசெய்து ஒரு ஆதரவு டிக்கெட்டைத் திறந்து, நீங்கள் எதிர்கொள்ளும் சிக்கலையும், இதுவரை நீங்கள் எடுத்துள்ள சரிசெய்தல் நடவடிக்கைகளையும் எங்களுக்குத் தெரியப்படுத்துங்கள்.
ஆதரவு டிக்கெட்டை எவ்வாறு திறப்பது என்பது பற்றிய கூடுதல் தகவலுக்கு, தயவுசெய்து Q100064 ஐப் பார்க்கவும்: ஆதரவு டிக்கெட்டை எவ்வாறு திரட்டுவது .
இணைப்புகள்
We're sorry to hear that
Please tell us why