Seite 1 von 1

SampleLevel HLSL

Verfasst: 27.09.2013, 13:43
von MadMax
Kurze Frage:

warum funktioniert Load richtig und SampleLevel nicht (SampleLevel gibt mir immer die nullte Mip)

Code: Alles auswählen

	int l=3;
	int2 size = int2(DEVICE_DATA.x,DEVICE_DATA.y)*(1.0/(pow(2,l)));
	int2 index = int2(uv.x*size.x,uv.y*size.y);

	return RENDERTARGET_5.Load(int3(index, l), 0 );
	return RENDERTARGET_5.SampleLevel(PointSamplerClamp,uv.xy,l);

Re: SampleLevel HLSL

Verfasst: 27.09.2013, 15:06
von B.G.Michi
Mit der Menge an Informationen würde ich auf den Sampler tippen. Evtl. einen Sampler im Shader definiert oder einen falschen an das Device gebunden?

Re: SampleLevel HLSL

Verfasst: 27.09.2013, 18:44
von Krishty
Hat die Textur überhaupt Mip-Ebenen? Dein Load() funktioniert nämlich auch dann richtig; SampleLevel() kann hingegen nur Ebenen samplen, die auch existieren.

Sonst würde ich, wie Michi, die Sampler-Einstellungen verdächtigen.

Re: SampleLevel HLSL

Verfasst: 28.09.2013, 12:45
von MadMax
Was meinst du mit Load würde auch ohne Mips funktionieren. Load sollte eigentlich 0 liefern sobald es außerhalb des Speichers zugreift.  Sollten keine Mips existieren  Zugriff mit l != 0  Schwarz. Das ist aber nicht der Fall. Ich erstelle die Mips übrigens mit GenerateMips.

Re: SampleLevel HLSL

Verfasst: 28.09.2013, 12:58
von Krishty
Ja stimmt; ich hatte das falsch gelesen.