Create a ticket
Follow

Q100326: வழக்கமான Ops எழுதுதல் மற்றும் சோதனை

பொழிப்பும்

கட்டாவில் உள்ள 3 டி காட்சி தரவுகளை உருவாக்கும் மற்றும் கையாளக்கூடிய செயல்பாட்டுக் கட்டங்கள் Ops ஆகும். C ++ இல் எழுதப்பட்ட ஒப் டைப்ஸ் என்று அழைக்கப்படும் செருகுநிரல்களின் நிகழ்வுகள் Ops . அவர்கள் பல்வேறு செயல்பாடுகளைச் செய்யலாம், காட்சி வரைபடத்தை கையாளும் மற்றும் பண்புகளை மாற்றியமைக்கலாம், கட்டாவின் ஒப் ஏபிஐ பயன்படுத்தி .

இந்த கட்டுரையில், எழுத்துமுறை, ஒடுக்குதல் மற்றும் சோதனை செய்தல் ஆகியவற்றுக்கான ஒரு படிநிலையை வழங்குகிறது. இது HelloWorld எடுத்துக்காட்டாக OP இல் $ KATANA_ROOT / plugins / Src / Ops இன் கீழ் கிடைக்கிறது .

மேலும் தகவல்

தனிப்பயன் Op ஐ உருவாக்கும் முன், $ KATANA_ROOT / plugins / Src / Ops இல் உள்ள உதாரணம் Ops ஐ பார்க்கவும் . இந்த பயிற்சி குறிப்பாக HelloWorld உதாரணம் Op இல் அடிப்படையாக உள்ளது.

இந்த வரைபடத்தின் மூல குறியீட்டை எவ்வாறு மாற்றியமைப்பது என்பது ஒரு வரைபடத்தை மாற்றுவதற்கும், காட்சி வரைபடத்தின் இடங்களில் பண்புக்கூறுகளை அமைக்கவும் முடியும் என்பதை பின்வரும் படிநிலைகள் விளக்குகின்றன.

  1. $ KATANA_ROOT / plugins / Src / Ops / HelloWorld / src / HelloWorldOp.cpp இல் cook() செயல்பாட்டை மாற்றவும் பின்வருமாறு படிக்கவும்:

static void cook(Foundry::Katana::GeolibCookInterface& interface)
{
   FnAttribute::StringAttribute typeAttr = interface.getAttr("type");
   interface.setAttr("testType",  typeAttr);

    if (interface.atRoot())
    {
       interface.setAttr("hello", FnAttribute::StringAttribute("world!"));
    }

}

  1. உதாரணம் ஒன்றை கட்டமைக்க, தயவுசெய்து $ KATANA_ROOT / plugins / Src / README.md இல் கொடுக்கப்பட்ட வழிமுறைகளைப் பின்பற்றவும் .

    மூலக் கோப்பின் பாதையை சரியான கட்டான பதிப்பு செகெக் கட்டளையில் சுட்டிக்காட்டுவதை உறுதிபடுத்தவும். Cmake கமாண்டில் DCMAKE_PREFIX_PATH ஐ சேர்க்க வேண்டிய அவசியம் இல்லை, ஏனெனில் இந்த விஷயத்தில் நாம் ஆர்வம் இல்லாத பிற Op சார்புகளுக்கான சார்புகளை குறிப்பிடுகிறது.

  1. செருகுநிரல்களை கட்டப்பட்ட மற்றும் நிறுவப்பட்ட கொள்ளப்பட்டவுடன் வேண்டும், நிறுவ அடைவு பகுதியாகும் உறுதி KATANA _RESOURCES . அது README.md கொடுக்கப்பட்டுள்ளது கட்டளை பயன்படுத்தி, MyKatanaResources அடைவில் சேர்க்கப்பட வேண்டும் KATANA _RESOURCES.

  1. கட்டானவைத் துவக்குக, ஒரு CameraCreate முனை உருவாக்கவும், அது பொதுவான GenericOp முனையுடன் இணைக்கவும்.

  1. GenericOp முனையின் opType அளவுருவை "HelloWorld" க்கு அமைக்கவும். இதன் விளைவாக testType என்ற பண்புக்கூறு ஒவ்வொரு இருப்பிடத்திலும் அமைக்கப்பட வேண்டும், பண்புக்கூறு மதிப்பு இருப்பிட வகையாக இருக்கும். கூடுதலாக, "ஹலோ" என்று பெயரிடப்பட்ட ஒரு பண்பு / ரூட் மீது அமைக்கப்படும் , "உலக" மதிப்பு!

cook() செயல்பாடு மேலும் படிக்க அல்லது உங்களுக்கு இருப்பிடத்தை மணிக்கு ஆர்வமுள்ள எந்த பண்பு அமைக்கலாம் அல்லது மற்ற செயல்பாடுகளை பல செய்ய மாற்றியமைக்க முடியும்.

தனிப்பயன் ஆப்ஸில் பயன்படுத்தக்கூடிய கூடுதல் செயல்பாடுகளைச் செய்வதற்கு, Katana இடைமுகத்தில் (C ++) Katana டெவலப்பர் கையேட்டைப் பார்க்கவும் .

குறிப்பு: ஒப்சா எல்லா இடங்களிலும் இயல்புநிலையாக இயங்குகிறது ( ஜெனிகிஓப் முனையிலுள்ள applyWhere அளவுருவில் குறிப்பிடப்பட்டபடி ), அது தானாகவே முழு காட்சி வரைபடத்தை மூடும். மேலே உள்ள எடுத்துக்காட்டில், testType பண்புக்கூறு எல்லா இடங்களிலும் அமைக்கப்படுகிறது.

இது எப்போதுமே விரும்பத்தக்கதல்ல என்பதால், மேலே உள்ள எடுத்துக்காட்டு உள்ளிட்டால், இடைமுகம் atRoot() உள்ளதா என்பதை சரிபார்க்கிறது - இது ஒப் ஓபரா ஓபன் இயங்கும் போது மட்டுமே செயல்படுத்தப்படும் என்றால், அது சமைக்கப்பட்டிருக்கும் at, and interface.stopChildTraversal() ஐப் பயன்படுத்த முடியும் என்றால், அந்த Opmost ஐ ஒப் நிறுத்தினால், அந்த முழுமையான இடத்தின் கீழே உள்ள முழு காட்சி வரைபடத்தையும் கடந்து செல்லுங்கள்.

உங்கள் OP ஐப் பயன்படுத்த விருப்ப முனை வகையை உருவாக்க விரும்பினால் , $ KATANA_ROOT / plugins / Src / Ops / Messer / RegisterMesserNode.py இல் கொடுக்கப்பட்ட NodeTypeBuilder இன் உதாரணம் பார்க்கவும் .

சில NodeTypeBuilder API செயல்பாடுகள் கட்டான டெவலப்பர் கையேட்டில் ஆவணப்படுத்தப்பட்டுள்ளன.

இந்த படிநிலைகளில் எந்த சிக்கல்களையும் எதிர்கொண்டால், தயவுசெய்து ஒரு ஆதரவு டிக்கெட் திறந்து, நீங்கள் சந்தித்த சிக்கலைத் தெரிந்து கொள்ளுங்கள், நீங்கள் இதுவரை எடுத்திருக்கும் பிழைத்திருத்த படிகளை அறியவும்.

ஒரு ஆதரவு டிக்கெட் திறக்க எப்படி மேலும் தகவலுக்கு, தயவு செய்து ' ஆதரவு போர்டல் பயன்படுத்தி ' கட்டுரை.



Was this article helpful?
/

We're sorry to hear that!

Please tell us why.
1 out of 2 found this helpful

Comments