HLSL shader question: projecting flat texture on mesh if it would be a 2d image

Hello to all!

I have a question regarding the HLSL language.

How do I project a texture on a Mesh treating as it would be a flat 2d image
instead of projecting it around the geometry?

I tried changing the Out.TexCd in the vertex shader and also the
tex2D in the pixelshader, but I didn’t find out how to do it.

Anyone has a hint?

Thanks in advance :)

The mesh should be like a mask where the texture is only visible where alpha is not zero.

i used to change UV mapping of the geometry (according point of view), maybe there is HLSL way to get the same.

I’m sure that it must be really simple. Unfortunately I’m really a beginner with hlsl…


this is another approach to it, without hlsl though.
in case you’re in a hurry.


tex2Dproj is the one you are looking for:

tex2dproj.zip (2.9 kB)

Thanks tonfilm. that’s it.
default shader mode: mirror - would be great to get border mode option as well

Thank you tonfilm! That’s it what I was searching! :)

the texture sampler modes can be set with something like:

sampler Samp = sampler_state //sampler for doing the texture-lookup
Texture = (Tex); //apply a texture to the sampler
MipFilter = LINEAR; //sampler states
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = border; //or mirror, wrap, clamp
AddressV = border; //or mirror, wrap, clamp
BorderColor = (someColor);

Thanks again, but that I always knew. But perhaps it can be useful for others! :)