Shader 42

UNITY_UI_CLIP_RECT 란 무엇인가?

Rect Mask 2D 라는 컴퍼넌트를 위해 존재한다. 사각형 영역을 클립하기 위해 계산을 하는데 Shader Vector 에서 UNITY_UI_CLIP_RECT 을 추가하면 버텍스에서도 계산을 안할껀데 왜 그냥 두었나 모르겠다. 우선 새로 만드는 UI Shader 에서는 Vector 에서도 "#ifdef UNITY_UI_CLIP_RECT" 를 추가하자 #ifdef UNITY_UI_CLIP_RECT float2 pixelSize = vPosition.w; pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); float2 ..

Shader/이론 2022.08.03

Texture2DArray

텍스처를 매번 올리는 작업을 Texture2DArray 를 만들어 여러장의 택스처를 한번에 전송을 할수 있는 기능. CPU의 부담도 줄어 준다고 합니다. 최고 512 개까지 저장하는 구조체 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Sample2DArrayTexture : MonoBehaviour { public Texture2D texture2D_1; public Texture2D texture2D_2; public Texture2D texture2D_3; public Texture2D texture2D_4; public Texture2DArr..

URP 2D Sprite Light적용과 Noraml Map

URP는. 패키지 매니저에서 설치 하시고! 2D 라이트 2D 라이트가 비활성화 되어 있다면 랜더파이프라인이 2D로 되어 있지 않아서입니다. 아래는 활성화 되었을때. 2D 파이프라인 생성 2D 라이트를 활성화 하려면 2D Renderer 로 셋팅 해주어야 합니다. 원하는 폴더에서 오른쪽 마우스를 눌러서 아래와 같이 2D Renderer 을 생성. 요런 파일들이 2개 생성된다. 이걸 여기에 끼워 넣어야 합니다. 둘중에 한개만 들어가니 걱정말고 되는걸 넣으면 됨. 혹시 Quality 에 Render Pipeline Asset 에 먼가가 있다면 삭제. 에디터에서는 Quality 에 파이프라인이 있다면 Graphics 를 무시하고 Quality에 있는 파이프 라인을 작동시키더군요. 그럼 이제 2D Light 는 ..

srp 내장 Bloom 코드들.

void SetupBloom(CommandBuffer cmd, int source, Material uberMaterial) { // 2로 나눈다 int tw = m_Descriptor.width >> 1; int th = m_Descriptor.height >> 1; // 반복 횟수 정하기 int maxSize = Mathf.Max(tw, th); int iterations = Mathf.FloorToInt(Mathf.Log(maxSize, 2f) - 1); iterations -= m_Bloom.skipIterations.value; int mipCount = Mathf.Clamp(iterations, 1, k_MaxPyramidSize); // 사전 필터링 매개변수 float clamp = m_Bl..