texture2DProjLod(texture, coordinates, lod)
Syntax:
texture2DProjLod(sampler2D, vec3/vec4, float)
Arguments:
texture
Description:
ID of the texture to sample.
coordinates
Description:
x, y and z for projecting texture coordinates.
lod
Description:
Overwrites mipmap LOD.
Returns:
vec4, texel color and alpha
Description:
Currently not supported in GM!
texture2DProjLod is like
texture2DLod except it computes it's texture coordinates from the x and y coordinates divided by the last component (z component for a vec3 or w for a vec4); Useful in 3D when you need to project a 2D texture onto 3D geometry. Then it samples the texture at the given texture coordinates for color and alpha. Texture coordinates are between 0 to 1 and they represent a pixel position on the sampler's texture page. Each texture (or sprite) has its own set of texture coordinates within the texture page, so sometimes you may need to convert from one set of coordinates to another. You can use the GML
sprite_get_uvs
to get the set of coordinates, which can be passed into the shader via uniforms. Surfaces or sprites with the 'Separate Texture Page' box ticked will always have a range of 0 to 1, so they are easier to deal with.
Also, the sampled pixel will be filtered by GM (no interpolation, linear interpolation or mipmapping) which is why we call this a 'texel'.
With mipmapping, it overwrites the automatic LOD level with the specific LOD you want. If mipmapping is disabled, it will output the same result as
texture2DProj would.