Я хочу визуализировать тень виртуального объекта AR, помещенного в плоскость AR, в которой он расположен. Затем я хочу получить доступ к пикселям экрана внутри сценария C# в Unity, чтобы выполнить постобработку на основе компьютерного зрения. Я уже получаю доступ к необработанному кадру AR с помощью сценария CpuImageSample.cs, предоставленного ARFoundation (https://github.com/Unity-Technologies/a ... eSample.cs).
Для рендеринга теней на плоскостях AR я использую бесплатную версию актива URP Shadow Receiver. (https://assetstore.unity.com/packages/v ... =1100ljSxt), который предоставляет графы шейдеров для рендеринга теней.
Я выбрал прозрачный приемник теней в качестве шейдера для использования с материалами плоскости AR. Этот граф шейдера имеет следующие свойства в инспекторе.

Я пытался получить доступ к свойству unity_ShadowMasks из сценария C# в Unity, но оно всегда равно нулю.
Это код моего C# сценарий:
Код: Выделить всё
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CustomPlaneShadowScript : MonoBehaviour
{
private Renderer planeShadowRenderer;
public void Awake()
{
planeShadowRenderer = GetComponent();
}
// Start is called before the first frame update
void Start()
{
Texture shadowMasks = planeShadowRenderer.material.getTexture("unity_ShadowMasks");
if (shadowMasks != null)
{
Debug.Log("Successfully accessed unity_ShadowMasks");
}
else
{
Debug.LogWarning("unity_ShadowMasks is null");
}
}
// Update is called once per frame
void Update()
{
}
}
Буду признателен за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/793 ... ich-pixels