Ich arbeite mit DX9/SM3 im Moment, und die MSDN-Dokumentation auf HLSL samplers scheint zu fehlen deutlich zu erklären, wie die verschiedenen Sampler-Typen zu verwenden. Noch schlimmer ist, sie versuchen, DX9 und DX10 in einem einzigen Artikel zu bedecken, so dass sie durcheinander zusammen alle Schlüsselwörter:Wozu dienen die verschiedenen HLSL-Sampler-Typen?
Sampler Namen = SamplerType {Texture = < texture_variable>; [state_name = state_value;] ...};
...
SamplerType
[in] Der Typ sampler, die eine der folgenden ist: sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.
Unterschiede zwischen Direct3D 9 und Direct3D 10:
Direct3D 10 unterstützt eine zusätzliche sampler Typ: SamplerComparisonState.
Ich habe das Gefühl, dass im Gegensatz zu dieser Zuschreibung, SamplerState
DX10 ist nur. Praktisch der gesamte Code, den ich sehe, verwendet sampler_state
für SamplerType. Ein kurzes Beispiel aus BasicHLSL (DX9):
sampler MeshTextureSampler =
sampler_state
{
Texture = <g_MeshTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
};
Warum alle haben die verschiedenen _SamplerType_s existieren und wann würden Sie, verwenden Sie sagen, sampler
oder sampler2D
statt sampler_state
? Sie müssen beim Abrufen trotzdem explizit sein, z. tex2D
, texCUBE
, was geht hier vor?
gewarnt werden, wird [email protected] nicht aktiv überwacht. – Goz
Wusste das nicht, danke. Nun, ich habe auch den betreffenden Artikel bewertet und Feedback gegeben, also wird das vielleicht funktionieren. – Tchami
Danke, froh, dass ich es nicht verloren habe. Ich schaffte es, mein altes DX9 CHM auszugraben und es hatte einen viel saubereren Artikel. DX9 unterstützt sogar Sampler-Arrays, aber Sie würden das nie von der neu verpfuschten MSDN-Seite erfahren. –