2009-08-19 16 views
9

मैं फिलहाल डीएक्स 9/एसएम 3 के साथ काम कर रहा हूं, और एमएसडीएन दस्तावेज HLSL samplers पर विभिन्न सैंपलर प्रकारों का उपयोग करने के तरीके की व्याख्या करने में गंभीर कमी है। क्या बदतर है वे DX9 और एक लेख में DX10 को कवर करने की कोशिश है, तो वे एक साथ उन सभी कीवर्ड गड़बड़ी:सभी अलग-अलग एचएलएसएल नमूने के प्रकार क्या हैं?

नमूना नाम = SamplerType {बनावट = < texture_variable>; [राज्य_नाम = राज्य_value;] ...};

...

SamplerType

[में] नमूना प्रकार है, जो निम्न में से एक है: नमूना, sampler1D, sampler2D, नमूना 3 डी, नमूनाक्यूयू, sampler_state, नमूनास्टेट। Direct3D 9 और Direct3D 10 के बीच

अंतर: SamplerComparisonState:

Direct3D 10 एक अतिरिक्त नमूना प्रकार का समर्थन करता है।

मैं लग रहा है कि इस writeup के विपरीत, SamplerState DX10 केवल है मिलता है। लगभग सभी कोड जो मैं देखता हूं नमूना टाइप के लिए उपयोग करता है। BasicHLSL (DX9) से एक त्वरित उदाहरण:

sampler MeshTextureSampler = 
sampler_state 
{ 
    Texture = <g_MeshTexture>; 
    MipFilter = LINEAR; 
    MinFilter = LINEAR; 
    MagFilter = LINEAR; 
}; 

क्यों सभी विभिन्न _SamplerType_s मौजूद हैं और जब आप का प्रयोग करेंगे, कहते हैं, sampler या sampler2D बजाय sampler_state? किसी भी तरह लाने के दौरान आपको स्पष्ट होना चाहिए, उदा। tex2D, texCUBE, तो यहाँ क्या हो रहा है?

उत्तर

4

आप सही हैं। यह बहुत अजीब है।

ऐसा लगता है जैसे डायरेक्टएक्स 9 वाक्यविन्यास पर दस्तावेज़ गलत है। मुझे पता नहीं या तो HLSL या DirectX पर एक विशेषज्ञ का मतलब द्वारा हूँ, लेकिन मैं हमेशा ही देखा है DirectX 9 में samplers इस तरह घोषित किया गया:

SamplerType Name = sampler_state{ Texture = <texture_variable>; [state_name = state_value;] ... }; 

मैं मेरे लिए कुछ लेकिन अनुपलब्ध हो सकता है इसके बाद के संस्करण वाक्य रचना अधिक बनाता है दस्तावेज में से एक की भावना। आप किसी दिए गए प्रकार के साथ एक नमूना घोषित करते हैं, और नमूना राज्य निर्दिष्ट करता है।

अद्यतन: स्पष्ट रूप से यह गलत है। मैंने a thread on the official forums शुरू कर दिया है और अब तक मुझे केवल एक पुष्टि मिली है कि यह गलत है। मैंने सीधे डायरेक्टएक्स टीम को एक मेल भी भेजा है। सिर्फ सुरक्षित पक्ष पर होने के लिए।

+2

चेतावनी दी जानी चाहिए, [email protected] सक्रिय रूप से निगरानी नहीं की जाती है। – Goz

+0

उसे नहीं पता था, धन्यवाद। खैर मैंने प्रश्न में आलेख को भी रेट किया है और फीडबैक प्रदान किया है, इसलिए शायद यह काम करेगा। – Tchami

+0

धन्यवाद, खुशी है कि मैंने इसे खो दिया नहीं है। मैं अपने पुराने डीएक्स 9 सीएचएम खोदने में कामयाब रहा और इसका एक बहुत साफ लेख था। डीएक्स 9 समर्थन सैंपलर सरणी भी करता है, लेकिन आप कभी भी नए बॉट किए गए एमएसडीएन पेज से नहीं जानते। –

0

नमूना नाम = नमूना टाइप {बनावट =; [state_name = state_value;]};

यह सही है! घोषणा केवल प्रभाव के लिए मान्य है।

संपादित करें: आधिकारिक मंच एमएसडीएन पर हैं। आप "सामुदायिक जोड़ों" का उपयोग करके कोई सुझाव या त्रुटि पोस्ट कर सकते हैं।

संबंधित मुद्दे