user 010beaea75 Chore: NiloToonURP 업데이트 및 배경 썸네일 갱신
- NiloToonURP 외부 에셋 업데이트
- 배경 씬 썸네일 16:9 해상도로 갱신
- 렌더 파이프라인 설정 업데이트
- 외부 셰이더 그래프 업데이트 (LEDScreen, PIDI Planar Reflections)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 01:28:02 +09:00

124 lines
5.2 KiB
C#

// This script/class is not used anymore.
using System;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using UnityEngine.XR;
namespace NiloToon.NiloToonURP
{
public class NiloToonRendererRedrawerPass : ScriptableRenderPass
{
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
// You should never call CommandBuffer.SetRenderTarget. Instead call <c>ConfigureTarget</c> and <c>ConfigureClear</c>.
// The render pipeline will ensure target setup and clearing happens in a performant manner.
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
{
// do nothing
}
// Here you can implement the rendering logic.
// Use <c>ScriptableRenderContext</c> to issue drawing commands or execute command buffers
// https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html
// You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline.
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
{
/*
// Never draw in Preview
Camera camera = renderingData.cameraData.camera;
if (camera.cameraType == CameraType.Preview)
return;
render(context, renderingData);
*/
}
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{
// do nothing
}
#endif
ProfilingSampler m_ProfilingSamplerNiloToonRendererRedrawer;
NiloToonRendererFeatureSettings allSettings;
// constructor(will not construct on every frame)
public NiloToonRendererRedrawerPass(NiloToonRendererFeatureSettings allSettings)
{
this.allSettings = allSettings;
m_ProfilingSamplerNiloToonRendererRedrawer = new ProfilingSampler("NiloToonRendererRedrawerPass");
}
// NOTE: [how to use ProfilingSampler to correctly]
/*
// [write as class member]
ProfilingSampler m_ProfilingSampler;
// [call once in constrcutor]
m_ProfilingSampler = new ProfilingSampler("NiloToonToonOutlinePass");
// [call in execute]
// NOTE: Do NOT mix ProfilingScope with named CommandBuffers i.e. CommandBufferPool.Get("name").
// Currently there's an issue which results in mismatched markers.
CommandBuffer cmd = CommandBufferPool.Get();
using (new ProfilingScope(cmd, m_ProfilingSampler))
{
context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref _filteringSettings);
cmd.SetGlobalTexture("_CameraNormalRT", _normalRT.Identifier());
}
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
*/
private void render(ScriptableRenderContext context, RenderingData renderingData)
{
CommandBuffer cmd = CommandBufferPool.Get();
using (new ProfilingScope(cmd, m_ProfilingSamplerNiloToonRendererRedrawer))
{
/*
Note : should always ExecuteCommandBuffer at least once before using
ScriptableRenderContext functions (e.g. DrawRenderers) even if you
don't queue any commands! This makes sure the frame debugger displays
everything under the correct title.
*/
// https://www.cyanilux.com/tutorials/custom-renderer-features/?fbclid=IwAR27j2f3VVo0IIYDa32Dh76G9KPYzwb8j1J5LllpSnLXJiGf_UHrQ_lDtKg
context.ExecuteCommandBuffer(cmd);
cmd.Clear();
/*
// draw every enabled NiloToonRendererRedrawer inside this renderer pass
var list = NiloToonRendererRedrawer.instances;
foreach (var instance in list)
{
foreach (var draw in instance.DrawList)
{
Renderer renderer = instance.Renderer;
// safe check
if (!draw.enabled) continue;
if (!renderer) continue;
if (!draw.material) continue;
cmd.DrawRenderer(instance.Renderer, draw.material, draw.subMeshIndex, draw.passIndex);
}
}
*/
}
// must write these line after using{} finished, to ensure profiler and frame debugger display correctness
context.ExecuteCommandBuffer(cmd);
cmd.Clear();
CommandBufferPool.Release(cmd);
}
}
}