如何在Unity3D的未点亮着色器中获取屏幕位置?

时间:2014-10-02 12:37:50

标签: unity3d position screen shader vertex

我在Unity3D中编写的着色器并非基于“#pragma surface surf Lambert”或任何其他内置照明模型。如何获取片段程序中的当前像素屏幕位置?我需要它以像素为单位(不在0和1或-1和1之间)。这是我的着色器代码:

Shader "selectedFace"
{
    SubShader
    {
        Pass
        {
            CGPROGRAM
            #pragma vertex vert 
            #pragma fragment frag
            float4 vert(float4 vertexPosition:POSITION):POSITION
            {
                return mul(UNITY_MATRIX_MVP,vertexPosition);
            }
            float4 frag(void):COLOR
            {
                //GET SCREEN POSITION HERE!!!
                return float4(0.75,1.0,0.0,1.0);
            }
            ENDCG
        }
    }
}

谢谢:D

1 个答案:

答案 0 :(得分:0)

OP询问如何获取片段着色器中像素的屏幕位置。 更改OP的代码以使片段着色器正常工作。

public async Task<IActionResult> Index()
{
    await _hubContext.Clients.All.SendAsync("Notify", $"Home page loaded at: {DateTime.Now}");
    return View();
}