I can’t seem to figure out how to sample a texture in HLSL code via the material editor’s Custom node.
In the images below, I’m attempting to create a simple “pass-thru” shader.
But for whatever reason, it spits out these errors:
Why!?
I’ve even tried several variations of the code, such as return tex2D( Tex, UV.xy ); but I always get the same error whenever I try to make use of the tex2D intrinsic function. Am I missing something here, or is this a bug?
What happens if you use a TextureSampleParameter2D instead of a TextureSample?
The same error. Also tried TextureObject, TextureObjectParameter, TextureSampleParameterSubUV, SpriteTextureSampler, TextureSample > MakeFloat4… All of which results in the same error.
And this is happening in a fresh, empty project.
Well, shoot. You’ve got me stumped.
Figured it out! Sure, tex2D doesn’t work… but Texture2DSample (with a Texture Object node) does.
HLSL Code:
return Texture2DSample(Tex, TexSampler, UV);
Of course, the downside here is that (AFAIK) you can’t actually generate a texture to pass in.
But you could possibly get around this by using a Texture Object Parameter node instead, creating a material instance, and changing the parameter in a blueprint.
1 Like