通过两个新属性类型和四个新节点扩展了Unity对Texture类型的支持。可以在着色器图中定义和采样Texture 3D和Texture 2D Array类型资源。 Texture2D LOD节点 这个新节点为Texture 2D Sample添加了LOD功能。Sample Texture 2D LOD使用与Sample Texture 2D相同的输入和输出栏,但包括通过Vector1输入参数调整细节级别的输入。
float height = SAMPLE_TEXTURE2D_LOD(_HeightMap, sampler_HeightMap, uv, 0).r * _HeightScale; positionOS.y += height; output.positionCS = TransformObjectToHClip(positionOS); output.uv = uv; return output; } 很简单,只不过需要注意的是,由于现在还在【几何阶段】,还没有光栅化,GPU无法计算LOD...
Sample Texture 2D LOD NodeDescriptionSamples a Texture 2D and returns a Vector 4 color value for use in the shader. You can override the UV coordinates using the UV input and define a custom Sampler State using the Sampler input. Use the LOD input to adjust the level of detail of the ...
Sample Texture 2D LOD和Sample Texture 2D的区别就在于,LOD节点可以获取被采样节点的Midmap层级,但这个一般很少被用到。 当采样Texture Array资源的时候,需要单独提供一个sliceIndex的参数,做为判断当前采样的是数组中哪一张图片的依据,对应到Sample Texture 2D Array节点的Index参数。相对于Texture Atlas说,纹理数列Te...
SAMPLE_DEPTH_TEXTURE_LOD、 SAMPLE_DEPTH_TEXTURE_PROJ 宏同样接受两个参数一一深度纹理和一个float3 或float4 类型的纹理坐标,它的内部使用了tex2Dproj 这样的函数进行投影纹理采样,纹理坐标的前两个分量首先会除以最后一个分量,再进行纹理采样。如果提供了第四个分量,还会进行一次比较,通常用于阴影的实现中。SAMPLE...
Sample Texture 2D LOD和Sample Texture 2D的区别就在于,LOD节点可以获取被采样节点的Midmap层级,但这个一般很少被用到。 当采样Texture Array资源的时候,需要单独提供一个sliceIndex的参数,做为判断当前采样的是数组中哪一张图片的依据,对应到Sample Texture 2D Array节点的Index参数。相对于Texture Atlas说,纹理数列Te...
float4 boneDataDual1 = SAMPLE_TEXTURE2D_LOD(animTex, animTexSample, BoneIndexToTexUV(index1 + 1, startData), 0); float4 real1 = boneDataReal1.rgba; float4 dual1 = boneDataDual1.rgba; int index2 = startData.z + texcoord.z; ...
UNITY_SAMPLE_TEX2DARRAY_LOD(name,uv,lod) 使用显式 Mipmap 级别采样纹理数组。 示例 以下着色器示例通过使用对象空间顶点位置作为坐标来采样纹理数组: Shader "Example/Sample2DArrayTexture" { Properties { _MyArr ("Tex", 2DArray) = "" {} _SliceRange ("Slices", Range(0,16)) = 6 _UVScale (...
类似的宏还有SAMPLE_DEPTH_TEXTURE_PROJ 和 SAMPLE_DEPTH_TEXTURE_LOD。SAMPLE_DEPTH_TEXTURE_PROJ 宏同样接受两个参数——深度纹理和一个float3或float4类型的纹理坐标,它的内部使用了tex2Dproj这样的函数进行投影纹理采样,纹理坐标的前两个分量首先会除以最后一个分量,再进行纹理采样。如果提供了第四个分量,还会...
类似的宏还有SAMPLE_DEPTH_TEXTURE_PROJ 和 SAMPLE_DEPTH_TEXTURE_LOD。SAMPLE_DEPTH_TEXTURE_PROJ 宏同样接受两个参数——深度纹理和一个float3或float4类型的纹理坐标,它的内部使用了tex2Dproj这样的函数进行投影纹理采样,纹理坐标的前两个分量首先会除以最后一个分量,再进行纹理采样。如果提供了第四个分量,还会...