சுருக்கம்
Mari க்காக Custom Shader, Layer அல்லது Node XML ஐ எழுதும் போது, தனிப்பயன் GLSL செயல்பாடுகளை ஒரு தனி கோப்பில் வைத்திருப்பது சில நேரங்களில் மிகவும் வசதியாக இருக்கும். இந்த செயல்பாடுகளை ஒரு தனி கோப்பில் வைத்திருக்க நீங்கள் தேர்வுசெய்தால், நீங்கள் cubemap texture-lookup ஐப் பயன்படுத்த வேண்டும், இது செயல்பாட்டை அதன் சொந்த சிறப்பு செயலாக்கத்தை இயக்க அனுமதிக்கிறது.
இந்தக் கட்டுரை, Mari இல் ஒரு raw texture-lookup அழைப்பை எவ்வாறு செய்வது என்பதை விளக்குகிறது, இதனால் ஒரே அழைப்பு வெவ்வேறு ஷேடர் முறைகளிலும் Mari இன் எதிர்கால வெளியீடுகளுக்கும் இடையில் தொடர்ந்து செயல்படும்.
மேலும் தகவல்
இது Mari இன் அதிகாரப்பூர்வ அம்சமாகக் கருதப்படவில்லை என்றாலும், ஒரு தனிப்பயன் ஷேடரை உருவாக்கும் போது, முன்பு ஒரு தனிப்பயன் முனையின் imagecube பண்புக்கூறிலிருந்து ஒரு sampleCube ஐப் பெறுவது சாத்தியமாக இருந்தது. இதிலிருந்து, முந்தைய Mari பதிப்புகளில், பயனர்கள் GLSL இன் texture() செயல்பாட்டைப் பயன்படுத்தும் ஒரு raw texture-lookup ஐ உருவாக்க முடிந்தது.
Mari 3.4v1 மற்றும் 4.1v1 இல், Mari இன் ஷேடர் அமைப்பிற்கான உள் மேம்பாடுகள் இப்போது, அமைப்பு-பார்வைக்கு Mari ஒரு மறைமுக மாறியைப் பயன்படுத்துவதைக் குறிக்கிறது.
நீங்கள் என்ன செய்ய வேண்டும்
இந்த மாற்றங்களைச் சரிசெய்து, ஒரு மூல அமைப்பு-தோற்றத்தை உருவாக்க, நீங்கள் செய்ய வேண்டியது:
- உங்கள் XML இல் Texture.glslh ஐச் சேர்க்கவும்.
- உங்கள் அமைப்பு மாதிரியை cubemapToken ஆக அறிவிக்கவும்.
- GLSL இல்
texture()மற்றும்textureLod()பயன்படுத்தப்படுவது போலவே, texture தேடலைச் செய்யmriTexture()அல்லதுmriTextureLod()ஐப் பயன்படுத்தவும்.
டெவலப்பர் உதாரணம்
ஒரு நோட் XML கோப்பில் அழைப்பாளர் பக்கத்தில், தனிப்பயன் GLSL செயல்பாட்டிற்கான அழைப்பை கீழே உள்ளவாறு செய்யலாம்:
...
<Attribute Name="Cubemap" PrettyName="Image" Type="imagecube"></Attribute>
...
textureSampleColor = customCubemapLookup( $Cubemap, coords, lod );
பின்னர் GLSL தலைப்பு கோப்பில், cubemapToken வாதத்தில் எடுக்கும் தனிப்பயன் செயல்பாட்டை இவ்வாறு அறிவிக்கலாம்:
//! include | Texture.glslh
vec4 customCubemapLookup(cubemapToken cubemapTexture, vec3 dir, float lod);
இதற்கு அப்பால், GLSL மூலக் குறியீடு கோப்பிற்குள், cubemapToken வாதத்தில் எடுத்துக்கொள்ளும் தனிப்பயன் செயல்பாட்டை வரையறுக்கலாம். mriTexture() மற்றும் mriTextureLod() செயல்பாடுகளைப் பயன்படுத்தி உண்மையான அமைப்பு மதிப்புகளைத் தேடலாம், எடுத்துக்காட்டாக:
#version 150
//! include | Texture.glslh
vec4 customCubemapLookup(cubemapToken token, vec3 coords, float lod)
{
return mriTextureLod(token, coords, lod);
}
மேலும் உதவி
நீங்கள் சிரமங்களை எதிர்கொண்டால், தயவுசெய்து ஒரு ஆதரவு டிக்கெட்டை உருவாக்கி, இந்தக் கட்டுரையில் கோரப்பட்ட தகவல்களை எங்களுக்கு வழங்கவும்:
Q100090: Mari சிக்கலைப் புகாரளிக்கும் போது ஆதரவை அனுப்ப வேண்டிய தகவல்
ஆதரவு டிக்கெட்டை எவ்வாறு திறப்பது என்பது பற்றிய கூடுதல் தகவலுக்கு, இந்தக் கட்டுரையைப் பார்க்கவும்:
Q100064: ஆதரவு டிக்கெட்டை எவ்வாறு திரட்டுவது
We're sorry to hear that
Please tell us why