_MainTex_TexelSize what's the meaning?

uniform float4 _MainTex_TexelSize
where is the value of the float4 _MainTexelSize from?

It's set by the application if it's present in the shader - it is the size of a texel of the texture in question, in other words, if it's a 1k x 1k texture, both x and y will be 1.0/1024.0

_MainTex_TexelSize is set by magic sauce in the darkness of Unity's source code.

It follows the dimensions of the _MainTex sampler and has these contents:

Vector4(1 / width, 1 / height, width, height)

https://forum.unity3d.com/threads/_maintex_texelsize-whats-the-meaning.110278/

Texture size

{TextureName}_TexelSize - a float4 property contains texture size information:

  • x contains 1.0/width
  • y contains 1.0/height
  • z contains width
  • w contains height

https://docs.unity3d.com/Manual/SL-PropertiesInPrograms.html

原文地址:https://www.cnblogs.com/jiahuafu/p/6744178.html