我有一个以给定方式组合 2 个纹理的着色器。
我如何将第一个纹理定位在第二个纹理的中心以保持对应比例?
即我有一个 100x100 的图像和另一个 1024x 768 的图像。如何组合这两个纹理,使第一个图像居中在第二个图像前面,保持图像之间的差异(没有小图像拉伸整个材料) ?
这是我的着色器:
sampler2D _MainTex;
sampler2D _MainTex2;
float4 _Color;
float _bwBlend;
struct Input {
float2 uv_MainTex;
float2 uv_MainTex2;
};
void surf (Input IN, inout SurfaceOutput o)
{
half4 c = tex2D(_MainTex, IN.uv_MainTex);
half4 c2 = tex2D(_MainTex2, IN.uv_MainTex2);
o.Normal =c.a > .2f ? (.1,.1,.1) : (0,0,0);
o.Albedo = c.a > .2f ? c : c2;
}
语言是 CG,但我认为任何对着色器有基本知识的人都可以回答这个问题。