Q100311: ரெண்டரர் செருகுநிரலில் நேரடி ரெண்டரிங்கை செயல்படுத்துதல்

Follow

சுருக்கம்

ரெண்டரர் செருகுநிரலில் லைவ் ரெண்டரிங் எவ்வாறு செயல்படுத்தப்படலாம் என்பதை இந்தக் கட்டுரை விளக்குகிறது மற்றும் பின்வரும் தலைப்புகளை உள்ளடக்கியது:

  • பண்பு மாநாடு
  • RendererInfo ப்ளக்-இன் செயல்பாடுகள்
  • செருகுநிரல் செயல்பாடுகளை வழங்கவும்
  • பைதான் பயன்பாடுகள்
    - LiveRenderAPI
    -
    LiveRenderActions
    - திரும்ப அழைக்கிறது
  • கோட்சாஸ்
    - ஒற்றை மாதிரி மேம்படுத்தல்கள்
    - தொடர்ந்து இல்லாத புதுப்பிப்புகள்

லைவ் ரெண்டரிங் பற்றிய பொதுவான விளக்கத்திற்கு , ரெண்டர் வகைகளில் Katana பயனர் கையேடு பிரிவில் அதன் விளக்கத்தைக் கண்டறியவும், அதே போல் ரெண்டரைச் செய்தல் என்ற லைவ் ரெண்டரிங் தொடங்குதல் மற்றும் நிறுத்துதல் துணைப் பிரிவு மற்றும் நேரடி ரெண்டரிங்கைக் கட்டுப்படுத்துதல் என்ற பகுதியைப் பார்க்கவும்.

ரெண்டரர் செருகுநிரல்களின் பிற பகுதிகளின் விரிவான விளக்கம் மற்றும் LiveRendering உடன் நேரடியாக தொடர்பில்லாத RenderAPI இன் பிற செயல்பாடுகளின் ஆவணங்கள் Katana டெவலப்பர் கையேட்டின் ரெண்டரர் செருகுநிரல்கள் பிரிவில் காணலாம்.

மேலும் தகவல்

பண்பு மாநாடு

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

நேரடி ரெண்டர். <updateGroup> . <attributeName>

படம்__3__.png

<updateGroup> - இது ஒரு GroupAttribute ஆகும், இது பண்புக்கூறுகளை ஒன்றிணைத்து ஒரே புதுப்பிப்பில் பயன்படுத்தப்படுகிறது.

<attributeName> - இது கண்காணிக்க வேண்டிய உயர்நிலை பண்புக்கூறின் பெயர். மேலே உள்ள படத்தில் liveRender.geoXform.xform பண்புக்கூறானது, உயர்நிலை xform பண்புக்கூறுக்கு ஏதேனும் மாற்றங்களை அனுப்ப லைவ் ரெண்டர் அமைப்புக்கு அறிவுறுத்துகிறது. இது ஒரு StringAttribute என்பதை நினைவில் கொள்ளவும், அதன் மதிப்பு பொதுவாக updateGroup உடன் பொருந்தும் , இது மரபு காரணங்களுக்காக, ஆனால் பொதுவாக உள்நாட்டில் பயன்படுத்தப்படாது. ஒரே புதுப்பிப்புக் குழுவில் பல பண்புக்கூறுகள் குறிப்பிடப்பட்டிருந்தால், அவற்றில் ஏதேனும் ஒன்று மாறும்போது அவை அனைத்தும் ரெண்டரருக்கு அனுப்பப்படும்.

RendererInfo ப்ளக்-இன் செயல்பாடுகள்

 void fillLiveRenderTerminalOps( OpDefinitionQueue & terminalOps ,
                              const FnAttribute::GroupAttribute& stateArgs )

முனை வரைபடத்தில் மேலே உள்ள பண்புக்கூறு மாநாட்டை அமைக்க முடியும் என்றாலும், லைவ் ரெண்டர் தொடங்கும் போது தானாகவே பண்புகளை அமைக்க RendererInfo செருகுநிரலில் fillLiveRenderTerminalOps() செயல்பாட்டைப் பயன்படுத்துவது மிகவும் பயனுள்ளதாக இருக்கும். செயல்பாடானது டெர்மினல்ஆப்ஸ் எனப்படும் ஒரு வாதமாக அனுப்பப்படுகிறது, இது std::deque இல் எதுவும் இல்லை அல்லது அதற்கு மேற்பட்ட std::pair பொருள்கள் op வகை ( std::string ) மற்றும் op வாதங்கள் ( குரூப்அட்ரிபியூட் ஆக) ஆகியவற்றைக் கொண்டுள்ளது.

எ.கா. கீழே உள்ள குறியீடு /root/world/lgt க்கு கீழே உள்ள ஒளி இடங்களின் xform பண்புக்கூறில் ஏற்படும் மாற்றங்களைக் கண்காணிக்கிறது .

 FnAttribute::GroupBuilder opArgs;
opArgs. set ( "type" , FnAttribute::StringAttribute( "light" ));
opArgs. set ( "location" , FnAttribute::StringAttribute( "/root/world/lgt" ));
opArgs. set ( "attributeNames" , FnAttribute::StringAttribute( "xform" ));
terminalOps.push_back( std ::make_pair( "LiveRenderFilter" , opArgs.build()));

Katana அனுப்பப்படும் பல Geolib3 Ops இங்கே பயனுள்ளதாக இருக்கும்:

LiveRenderFilter

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

OpArgs

- attributeNames (StringAttribute) - பண்புக்கூறுகளின் பெயர்கள் மாற்றங்களைக் கண்காணிக்க வேண்டும் மற்றும் ஒன்று மாறும்போதெல்லாம் ஒரு புதுப்பிப்பாக ரெண்டர் செருகுநிரலுக்கு அனுப்பப்பட வேண்டும்.

- இடம் (StringAttribute) - இந்த ஆப் பயன்படுத்தப்படும் முதல் இடத்தை வரையறுக்கும் CEL வெளிப்பாடு. பின்னர் இது அனைத்து குழந்தை இடங்களிலும் பயன்படுத்தப்படும்.

- விலக்குகள் (StringAttribute) - (விரும்பினால்) விலக்கப்பட்ட இருப்பிட வகைகளின் பட்டியல், இந்த ஆப் இயங்கக் கூடாது.

- typeAlias (StringAttribute) - (விரும்பினால்) ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும் 'வகை' பண்புக்கூறுக்கான பெயர். அமைக்கப்படாவிட்டால், இருப்பிட வகை பயன்படுத்தப்படும்.

- வகை (StringAttribute) - (விரும்பினால்) அமைக்கப்பட்டால், op இந்த வகை இடங்களில் மட்டுமே இயங்கும்.

- collectUpstream (IntAttribute) - (விரும்பினால்) பூஜ்ஜியமாக இல்லாவிட்டால், ஒவ்வொரு பெற்றோர் இருப்பிடத்திலும் கண்காணிக்கப்படும் ஒவ்வொரு பண்புக்கூறின் மதிப்புகளும் நேரலை ரெண்டர் புதுப்பிப்பில் சேர்க்கப்படும்.

LiveAtribute

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

OpArgs

லைவ் ரெண்டர் சிஸ்டம் மூலம் இந்த ஆப்ஸிற்கான ஆர்க்ஸ் தானாகவே அமைக்கப்படும் மற்றும் கைமுறையாக அமைக்கப்படக்கூடாது.

LocalizeXform

xform.matrix எனப்படும் ஒரு உலக-விண்வெளி மேட்ரிக்ஸாக அதன் அனைத்து முன்னோர்களிடமிருந்தும் ஒரு இருப்பிடத்தின் xforms ஐ சமன் செய்கிறது.

OpArgs

- excludeCel (StringAttribute) - op பயன்படுத்தக்கூடாத காட்சி வரைபட இருப்பிடங்களை விவரிக்கும் CEL வெளிப்பாடு.

- addMaterialHash (IntAttribute) - (விரும்பினால்) லைவ் ரெண்டரிங்கின் பழைய பதிப்பிற்கான மரபு நடத்தை. பூஜ்ஜியம் இல்லை என்றால், 'மெட்டீரியல்' பண்புக்கூறின் ஹாஷ் மதிப்பு 'மெட்டீரியல் ஹாஷ்' ஆக சேமிக்கப்படும்.

- outputAttrName (StringAttribute) - (விரும்பினால்) புதிய உள்ளூர் xform பண்புக்கூறுகளைச் சேமிக்கப் பயன்படுத்த வேண்டிய பெயர். இயல்புநிலை 'xform', ஏற்கனவே உள்ள பண்புக்கூறை மேலெழுதும்.

LocalizeLiveAttributeXform

பார்வையாளரை கையாளும் போது, இருப்பிடத்தின் உண்மையான xform பண்பு மாறாது (பேனா-அப் வரை). அதற்கு பதிலாக LiveAttributes.xform இன் கீழ் தற்காலிக xform ஐ சேமிக்க LiveAttribute op பயன்படுத்தப்படுகிறது. இந்த op ஆனது localizeXform போன்று செயல்படுகிறது, ஆனால் இந்த liveAttribute மாநாட்டைப் பற்றி அறிந்திருக்கிறது, எனவே liveAttributes.xform இருந்தால் அது xform க்குப் பதிலாகப் பயன்படுத்தப்படும். கையாளுதலின் போது இருப்பிடங்கள் xform புதுப்பிக்கப்படுவதற்கு இது அனுமதிக்கிறது. இயற்கையாகவே இந்த ஆப்ஸை LiveAttribute opக்குப் பிறகு பயன்படுத்த வேண்டும்.

OpArgs

- addMaterialHash (IntAttribute) - (விரும்பினால்) லைவ் ரெண்டரிங்கின் பழைய பதிப்பிற்கான மரபு நடத்தை. பூஜ்ஜியம் இல்லை என்றால், 'மெட்டீரியல்' பண்புக்கூறின் ஹாஷ் மதிப்பு 'மெட்டீரியல் ஹாஷ்' ஆக சேமிக்கப்படும்.

LocalizeLightListLiveRenderFilter

இந்த Op என்பது நிலையான LiveRenderFilter op-ன் நிபுணத்துவம், குறிப்பாக ஒளி பட்டியல்களுடன் பயன்படுத்துவதற்காக. ஒவ்வொரு இடத்திலும் லைட்லிஸ்ட் பண்புக்கூறு பற்றிய கூடுதல் தகவலை உருவாக்கும் தவிர, இது LiveRenderFilter opஐப் போலவே செயல்படுகிறது. இந்தத் தகவலானது ஒளிக்கான பாதை, தற்போதைய இருப்பிடத்திற்கு ஒளி இணைப்பு இயக்கப்பட்டுள்ளதா மற்றும் அது பெற்றோர் இருப்பிடத்தில் இயக்கப்பட்டுள்ளதா போன்றவற்றை உள்ளடக்கியது. இந்தத் தகவல் ரெண்டர் செருகுநிரலுக்கு "lightLink" புதுப்பிப்பாக அனுப்பப்படும்.

OpArgs

- attributeNames (StringAttribute) - பண்புக்கூறுகளின் பெயர்கள் மாற்றங்களைக் கண்காணிக்க வேண்டும் மற்றும் ஒன்று மாறும்போதெல்லாம் ஒரு புதுப்பிப்பாக ரெண்டர் செருகுநிரலுக்கு அனுப்பப்பட வேண்டும்.

- இடம் (StringAttribute) - இந்த ஆப் பயன்படுத்தப்படும் முதல் இடத்தை வரையறுக்கும் CEL வெளிப்பாடு. பின்னர் இது அனைத்து குழந்தை இடங்களிலும் பயன்படுத்தப்படும்.

- விலக்குகள் (StringAttribute) - (விரும்பினால்) விலக்கப்பட்ட இருப்பிட வகைகளின் பட்டியல், இந்த ஆப் இயங்கக் கூடாது.

- typeAlias (StringAttribute) - (விரும்பினால்) ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும் 'வகை' பண்புக்கூறுக்கான பெயர். அமைக்கப்படாவிட்டால், இருப்பிட வகை பயன்படுத்தப்படும்.

- வகை (StringAttribute) - (விரும்பினால்) அமைக்கப்பட்டால், op இந்த வகை இடங்களில் மட்டுமே இயங்கும்.

- collectUpstream (IntAttribute) - (விரும்பினால்) பூஜ்ஜியமாக இல்லாவிட்டால், ஒவ்வொரு பெற்றோர் இருப்பிடத்திலும் கண்காணிக்கப்படும் ஒவ்வொரு பண்புக்கூறின் மதிப்புகளும் நேரலை ரெண்டர் புதுப்பிப்பில் சேர்க்கப்படும்.

CoordinateSystemLiveRenderFilter

இது நிலையான LiveRenderFilter op இன் மற்றொரு சிறப்பு. இது ஒருங்கிணைப்பு அமைப்புகளுடன் பயன்படுத்தப்படுகிறது. இது LiveRenderFilter op-ஐப் போலவே செயல்படும் தவிர, தற்போதைய இருப்பிடம் Globals.coordinatesystems attribute இல் /root/world/ இல் பட்டியலிடப்பட்டுள்ளதா என்பதை முதலில் சரிபார்க்கும், அது உண்மையாக இருந்தால் மட்டுமே செயல்படுத்தலைத் தொடரும்.

OpArgs

- attributeNames (StringAttribute) - பண்புக்கூறுகளின் பெயர்கள் மாற்றங்களைக் கண்காணிக்க வேண்டும் மற்றும் ஒன்று மாறும்போதெல்லாம் ஒரு புதுப்பிப்பாக ரெண்டர் செருகுநிரலுக்கு அனுப்பப்பட வேண்டும்.

- இடம் (StringAttribute) - இந்த ஆப் பயன்படுத்தப்படும் முதல் இடத்தை வரையறுக்கும் CEL வெளிப்பாடு. பின்னர் இது அனைத்து குழந்தை இடங்களிலும் பயன்படுத்தப்படும்.

- விலக்குகள் (StringAttribute) - (விரும்பினால்) விலக்கப்பட்ட இருப்பிட வகைகளின் பட்டியல், இந்த ஆப் இயங்கக் கூடாது.

- typeAlias (StringAttribute) - (விரும்பினால்) ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும் 'வகை' பண்புக்கூறுக்கான பெயர். அமைக்கப்படாவிட்டால், இருப்பிட வகை பயன்படுத்தப்படும்.

- வகை (StringAttribute) - (விரும்பினால்) அமைக்கப்பட்டால், op இந்த வகை இடங்களில் மட்டுமே இயங்கும்.

- collectUpstream (IntAttribute) - (விரும்பினால்) பூஜ்ஜியமாக இல்லாவிட்டால், ஒவ்வொரு பெற்றோர் இருப்பிடத்திலும் கண்காணிக்கப்படும் ஒவ்வொரு பண்புக்கூறின் மதிப்புகளும் நேரலை ரெண்டர் புதுப்பிப்பில் சேர்க்கப்படும்.

ரெண்டரர் செருகுநிரல் செயல்பாடுகள்

 int startLiveEditing()
 int stopLiveEditing()

இந்த இரண்டு செயல்பாடுகளும் Katana இருந்து அழைக்கப்பட்டு, லைவ் ரெண்டரிங் செயலில் இருக்கும் போது மற்றும் இருப்பிடங்களுக்கான புதுப்பிப்புகளை எதிர்பார்க்க வேண்டும்

 int processControlCommand( const std::string & command )

இந்தச் செயல்பாடு Katana UI இலிருந்து ரெண்டர் ப்ளக்-இன் வரையிலான தகவல்தொடர்பு முறையாகும். பைதான் LiveRenderAPI.SendCommand() செயல்பாட்டின் மூலம் UI ஒரு கட்டளையை ஒரு சரமாக அனுப்ப முடியும் , அதை நீங்கள் விரும்பும் எந்த நோக்கத்திற்காகவும் ரெண்டர் செருகுநிரலில் கையாளலாம்.

 int queueDataUpdates(FnAttribute::GroupAttribute updateAttribute)

கண்காணிக்கப்படும் பண்புக்கூறு மாறும்போது, அதன் புதிய மதிப்பு இந்தச் செயல்பாட்டின் மூலம் ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும். அனுப்பப்பட்ட பண்புக்கூறில் மூன்று குழந்தை பண்புக்கூறுகள் இருக்கும்:

  • வகை - புதுப்பிப்பு வகை (இது <updateGroup> பண்புக்கூறு மாநாட்டுப் பிரிவில் மேலே பட்டியலிடப்பட்டுள்ளது)
  • இடம் - இந்தப் புதுப்பிப்புக்கான காட்சி வரைபட இருப்பிடம்.
  • பண்புக்கூறுகள் - மாற்றப்பட்ட பண்புகளின் மதிப்பு. இருப்பிடம் நீக்கப்பட்டிருந்தால், நீக்கப்பட்டது என்ற பண்புக்கூறு இதில் இருக்கும் என்பதை நினைவில் கொள்ளவும்

லைவ் ரெண்டர் புதுப்பிப்புகளைப் பெறுவதற்காகவே பிரத்யேக நூலில் இந்தச் செயல்பாடு அழைக்கப்படுகிறது என்பதை நினைவில் கொள்ளவும்.

 bool hasPendingDataUpdates()

queueDataUpdates() இல் வரிசைப்படுத்தப்பட்ட நேரடி ரெண்டர் புதுப்பிப்புகள் பயன்படுத்தப்பட வேண்டுமா என்பதை இந்த செயல்பாடு ரெண்டர்பூட் செயல்முறைக்கு கூறுகிறது.

 int applyPendingDataUpdates() 

இந்தச் செயல்பாடு முதன்மை ரெண்டர் த்ரெட்டில் அழைக்கப்படுகிறது, மேலும் வரிசைப்படுத்தப்பட்ட நேரடி புதுப்பிப்புகளை எடுத்து அவற்றைப் பயன்படுத்த வேண்டும். hasPendingDataUpdates() true என வழங்கினால் மட்டுமே அது அழைக்கப்படுகிறது.

பைதான் பயன்பாடுகள்

கீழே கொடுக்கப்பட்டுள்ள நேரடி ரெண்டரிங் அனுபவத்தை மேம்படுத்த Katana UI பல பயன்பாடுகளைக் கொண்டுள்ளது:

LiveRenderAPI

இந்த API உங்களை LiveRenderAPI.SendCommand() மற்றும் LiveRenderAPI.SendData() செயல்பாடுகளுடன் இயங்கும் லைவ் ரெண்டருக்கு தனிப்பயன் கட்டளை (சரம்) அல்லது நேரடி புதுப்பிப்பை அனுப்ப அனுமதிக்கிறது. லைவ் ரெண்டர் துணை அமைப்பால் பயன்படுத்தப்படும் டெர்மினல் ஆப்ஸின் பட்டியலை வினவுவதற்கும் மாற்றுவதற்கும் இது பல்வேறு செயல்பாடுகளைக் கொண்டுள்ளது. இந்த டெர்மினல் ஆப்ஸ், தற்போதைய காட்சி வரைபடத்தில் (உங்கள் முனைகளால் உருவாக்கப்பட்ட) மாற்றங்களை ஏற்படுத்துவதற்குப் பதிலாக, இருப்பிடம் எப்போது மாற்றப்படுகிறது என்பதைத் தீர்மானிக்கப் பயன்படுகிறது. இது RendererInfo::fillLiveRenderTerminalOps() க்கு அழைப்பின் போது அனுப்பப்பட்ட ops ஐ மாற்றுவதற்கான ஒரு வழியாகும்.

LiveRenderActions

plugin_apis/python/BaseLiveRenderAction.py இல் உள்ள வகுப்பைப் பயன்படுத்துவதன் மூலம் ரெண்டர் > லைவ் ரெண்டரிங் மெனுவை உங்கள் சொந்த தனிப்பயன் மெனு உருப்படிகளுடன் நீட்டிக்க முடியும். BaseLiverRenderAction வகுப்பிலிருந்து (இது QtGui.QAction இலிருந்து பெறப்பட்டது) மற்றும் உறுப்பினர் செயல்பாடுகளை மேலெழுதவும். உங்கள் வகுப்பு, LiveRenderAPI உட்பட, Katana பைதான் APIகளில் ஏதேனும் ஒன்றைப் பயன்படுத்திக்கொள்ளலாம், இது ரெண்டர் செருகுநிரலுக்கு தனிப்பயன் கட்டளைகள் அல்லது புதுப்பிப்புகளை அனுப்ப அனுமதிக்கிறது. LiveRenderActions இன் நேர்வுகளை $KATANA_RESOURCES/UIPlugins கோப்பகத்தில் வைக்க வேண்டும், அவை UI அமர்வுகளின் போது மட்டுமே ஏற்ற முயற்சிக்கும்.

திரும்பப் பெறுதல்

ரெண்டர் செருகுநிரலுக்கு லைவ் அப்டேட் அல்லது லைவ் ரெண்டர் கட்டளையை அனுப்பும் முன், Katana முறையே onLiveRenderUpdate அல்லது onLiveRenderCommand என அழைக்கப்படும் கால்பேக்கைத் தூண்டும். இந்த கால்பேக்குகள், ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும் கட்டளை அல்லது புதுப்பிப்பு பண்புக்கூறுக்கு அனுப்பப்படும். இது முதன்மையாக கண்காணிப்பு நோக்கங்களுக்காக, ரெண்டர் செருகுநிரலுக்கு அனுப்பப்படும் தரவை ஆய்வு செய்ய உங்களை அனுமதிக்கிறது, ஆனால் விதிவிலக்குகளை எழுப்புவதன் மூலம் செய்தி அனுப்பப்படுவதைத் தடுக்கவும் முடியும். இருப்பினும் இது Katana செய்திப் பதிவில் பிழைச் செய்தியைத் தூண்டும்.

கோட்சாஸ்

ஒற்றை மாதிரி புதுப்பிப்புகள்

ஒரு ரெண்டரைத் தொடங்கும் போது, ஜியோலிப் பல மாதிரி பண்புக்கூறுகளை உருவாக்குகிறது. இருப்பினும், Katana UI இல், பொதுவாக ஒரு மாதிரியைப் பயன்படுத்தி மட்டுமே பண்புக்கூறுகள் மீட்டெடுக்கப்படுகின்றன மற்றும் லைவ் ரெண்டர் புதுப்பிப்புகள் Katana UI இலிருந்து வருகின்றன. நேரடிப் புதுப்பிப்பின் போது அனுப்பப்படும் பண்புக்கூறுகள் பொதுவாக ஒரு நேர மாதிரியைக் கொண்டிருக்கும்.

நிலையான புதுப்பிப்புகள்

ரெண்டர் தொடங்கும் போது, காட்சியை உருவாக்குவதற்கான ஒப் ட்ரீ Katana வட்டில் எழுதப்பட்டு, அதன் சொந்த ஜியோலிப்3 இயக்க நேரத்தைப் பயன்படுத்தும் ரெண்டர் செயல்முறை மூலம் படிக்கப்படுகிறது. காட்சி வரைபடம் மற்றும் அதன் பண்புகளை வினவ, ரெண்டர் செருகுநிரலுக்கு SceneGraphIterator அணுகல் கொடுக்கப்பட்டுள்ளது. இருப்பினும் இந்த காட்சி மாறாதது. Katana இருந்து லைவ் ரெண்டர் அப்டேட் அனுப்பப்பட்டால், அது ஜியோலிப்3 இயக்க நேரத்தை புதுப்பிக்க முடியாது. ரெண்டர் ப்ளக்-இன் மூலம் நேரடி புதுப்பிப்புகள் பெறப்பட்டாலும், SceneGraphIterators எப்போதும் அசல் காட்சியை வழங்கும். எனவே, கூடுதல் தகவலைப் பெற, SceneGraphIterator ஐப் பாதுகாப்பாகப் பயன்படுத்த முடியாது என்பதால், ரெண்டர் செருகுநிரலுக்குத் தேவையான அனைத்துத் தகவல்களையும் நேரடி புதுப்பிப்பு பண்புக்கூறுகள் கொண்டிருக்க வேண்டும்.

    We're sorry to hear that

    Please tell us why