Pracuję obecnie z DX9/SM3, a dokumentacja MSDN na HLSL samplers wydaje się być bardzo obca w wyjaśnieniu, w jaki sposób używać różnych typów samplerów. Co gorsze jest to, że starają się pokryć DX9 i DX10 w jednym artykule, więc jumble razem wszystkie słowa kluczowe:Do czego służą różne typy próbników HLSL?
próbnika Nazwa = SamplerType {Texture = < texture_variable>; [nazwa stanu = wartość stanu;] ...};
...
SamplerType
[w] Typ próbnik, który jest jednym z następujących: próbnik, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.
Różnice Direct3D 9 i Direct3D 10:
Direct3D 10 obsługuje jeden dodatkowy typ próbnika: SamplerComparisonState.
mam wrażenie, że w przeciwieństwie do tego writeup, SamplerState
jest tylko DX10. Praktycznie cały kod, który widzę, używa sampler_state
dla SamplerType. Szybki przykład z BasicHLSL (DX9):
sampler MeshTextureSampler =
sampler_state
{
Texture = <g_MeshTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
};
Dlaczego istnieją wszystkie inne _SamplerType_s i kiedy należałoby użyć, powiedzmy, sampler
lub sampler2D
zamiast sampler_state
? Podczas pobierania musisz się wyraźnie informować, np. tex2D
, texCUBE
, więc co się tutaj dzieje?
Ostrzegam, [email protected] nie jest aktywnie monitorowany. – Goz
Nie wiedziałem tego, dzięki. Cóż, oceniłem i przesłałem opinię do artykułu, więc może to zadziała. – Tchami
Dzięki, cieszę się, że nie straciłem tego. Udało mi się wydobyć moje stare DX9 CHM i miał znacznie czystszy artykuł. DX9 obsługuje nawet tablice próbników, ale nigdy nie wiadomo, od nowo spartaczonej strony MSDN. –