Есть ли способ узнать, какие пиксели на экране находятся в тени, а какие пиксели не находятся внутри сценария Unity C#?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ узнать, какие пиксели на экране находятся в тени, а какие пиксели не находятся внутри сценария Unity C#?

Сообщение Anonymous »

Я разрабатываю приложение ARFoundation для мобильных устройств Android с использованием игрового движка Unity.
Я хочу визуализировать тень виртуального объекта 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»