能不能在顶点着色器阶段采样纹理
顶点纹理抓取有点特别。 它们只在Shader Model 3中支持,并且无法使用tex2d()函数。
这听起来很奇怪,但是tex2D()实际上是一个快捷方式,它指出“找出正确的mip级别来自动进行采样” – 在片段着色器中,这是使用隐式导数完成的,但是这些在顶点阶段不可用。
所以,我们需要使用更明确的tex2dlod()表单(它可以在顶点和片段阶段工作)。 这需要一个4分量vector,其x和y是uv空间中熟悉的纹理坐标, w表示从哪个mip级别采样(0是可用的最高分辨率)。