์ง๊ธ 2์ผ๋์ ์ด๊ฒ๋ง ๋ถ์ก๊ณ ์์์..
ํฌ์คํธ ํ๋ก์ธ์ฑ ์ ์ฉ๋๊ฑฐ (๊ฒ์๋ทฐ ์นด๋ฉ๋ผ)
ํฌ์คํธ ํ๋ก์ธ์ฑ ์ ์ฉ ์๋๊ฒ (์คํฌ๋ฆฐ ์บก์ณํ ๋ง๋ค์ด์ง Texture2D)
๋ด๊ฐ ์๊ธฐ๋ก๋ ๋ ๋๋ง ์์์์ย
์นด๋ฉ๋ผ ๋ ๋๋ง -> ์ฌ ๋ ๋๋ง -> ํฌ์คํธ ํ๋ก์ธ์ฑ ์ ์ฉ ์ธ๊ฑธ๋ก ์๊ณ ์๋๋ฐ
https://docs.unity3d.com/kr/2022.1/Manual/ExecutionOrder.html
์ฝ๋ฃจํด์ผ๋กย WaitForEndOfFrame ๋ง์ง๋ง ํ๋ ์ ๊น์ง ๊ธฐ๋ค๋ ค๋ ํฌ์คํธ ํ๋ก์ธ์ฑ์ด ์ ์ฉ๋์ ์คํฌ๋ฆฐ ์บก์ณ๊ฐ ์๋จ..
๋ ๋๋ง ํ์ดํ๋ผ์ธ์ URP๋ฅผ ์ฌ์ฉํด์ย OnRenderImageย ๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ ์๋ ์์์ด
๊ทธ๋ฆฌ๊ณ ย RenderPipelineManager.endCameraRenderingย ,ย endFrameRendering
์ด๊ฑฐ ์ฝ๋ฐฑ์ผ๋ก ์ฒ๋ฆฌํด๋ ํฌ์คํธ ํ๋ก์ธ์ฑ ์ฒ๋ฆฌ๊ฐ ์๋๋๋ผ;; ์ง์ง ๋ฏธ์ณ๋ฒ๋ฆฌ๊ฒ ์ย ย
๋ง์ง๋ง ์๋จ์ผ๋ก ์ํด๋ณธ๊ฑด
OnRenderImageย ๋์ ์ URP์์๋ย ScriptableRenderPass ๋ฅผ ์ฌ์ฉํด์ย OnRenderImageย ย ๋ย ๋น์ทํ๊ฒ ๊ตฌํํ ์ ์๋ค๋๋ฐ ํน์ ์๋์ฌ๋ ์์ ๋ต๋ณ์ข..ย ย
<์ง๊ธ ์ฌ์ฉ์ค์ธ ์ฝ๋>
1. ๋ ๋ ํ ์ค์ณ ์์ฑ ๋ฐ ์นด๋ฉ๋ผ ํ๊ฒ ํ ์ค์ณ์ ์๋ก ์์ฑํ ๋ ๋ ํ ์ค์ณ ํ ๋น
2. ์ฝ๋ฃจํด - WaitForEndOfFrame์คํ
private static IEnumerator RecordFrame(RectTransform rectTransform = null, RawImage rawImage = null)
{
TurnOffOtherCameras();
rt = RenderTexture.GetTemporary((int)rectTransform.rect.width, (int)rectTransform.rect.height, 24,
RenderTextureFormat.ARGB32, RenderTextureReadWrite.Default, 1);
_camera.targetTexture = rt;
yield return new WaitForEndOfFrame();
CaptureScreenAndSave(rectTransform, rawImage);
TurnOnOtherCameras();
}
ํ๋จ์
CaptureScreenAndSaveย ๋ด๋ถ ์ฝ๋๋ค์ย
3. ์นด๋ฉ๋ผ ๋ ๋
_camera.targetTexture = null;
4. ํ์ผ ๊ฒฝ๋ก์ ์ ์ฅํ Texture2D ์์ฑ ํย ReadPixels() ๋ฐ Apply() ์คํ
screenTex = new Texture2D(pixelWidth, pixelHeight, TextureFormat.RGBA32, false);
Rect area = new Rect(0f, 0f, pixelWidth, pixelHeight);
screenTex.ReadPixels(area, 0, 0);
screenTex.Apply();
์ ๋ํฐ์์ง์์ ์ง์ํด์ฃผ๋ ScreenCapture ํด๋์ค๊ฐ ์๋๋ฐ ์ด๊ฑธ ์ฌ์ฉํด์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์์ง๋ง,
https://forum.unity.com/threads/how-to-capture-screenshot-with-post-processing.701432/
ScreenCapture.CaptureScreenshotIntoRenderTexture();
์๋์ผ๋ก ์คํํ๋ฉด ์ผ๋จ ์ํ ๋ฐ์ ๋์ ์ฐํ๊ธฐ๋ ํ๊ณ ย ์๋ฌด๋ฆฌ RenderTexture ๋ฅผ ํด์๋ ๋์ํด์ ์งํํด๋ ์ฐ๊ทธ๋ฌ์ง๋ ํ์์ด ๋ฐ์ํ์.
ํน์ camera.Render() ๋ฅผ ๊ธฐ์ค์ผ๋ก Graphics.Blit ์ ์ ์ฉํด์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด ์์๊น?
์๋๋ฉด camera.Render()๋ฅผ ํ๋ ์์ ์์ฒด๊ฐ ํฌ์คํธํ๋ก์ธ์ฑ ์ด์ ์์ ์ด๋ผ์
์ฆ ๋ ๋ ํ ์ค์ณ๋ฅผ ์์ฑํ๊ณ ๊ทธ ํ๋ ์์ Texture2D๋ก ์ ์ฅํ๋ย ์์ ์ด ํฌ์คํธ ํ๋ก์ธ์ฑ ๋ณด๋ค ํจ์ฌ ์ด์ ์ด๋ผ ์คํฌ๋ฆฐ์ท์ ํฌํจ์ด ์๋๋๊ฑธ๊น.. ์ข ๋์์ฃผ์ด์..
ํด๊ฒฐํ์ จ๋์? - dc App
์์ง ๋ชปํ์ต๋๋ค..ใ ใ