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.
Notice the VERY simple HLSL code here:
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