我在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
答案 0 :(得分:0)
OP询问如何获取片段着色器中像素的屏幕位置。 更改OP的代码以使片段着色器正常工作。
public async Task<IActionResult> Index()
{
await _hubContext.Clients.All.SendAsync("Notify", $"Home page loaded at: {DateTime.Now}");
return View();
}