샘플을 다운받으면 여러가지의 서브 그래프를 다운받을 수 있습니다.이때 주의하실 점은 쉐이더 그래프 버전에 따라 제공되는 샘플의 종류가 다르므로 본인의 쉐이더 그래프의 버전을 확인하시길 바랍니다. Procedural Patterns Procedural Patterns 예제에는 다양한 패턴들의 소개가 나와있습니다. Node Reference Node Reference 예제에는 각 노드에 대한 설명이 나와있습니다.쉐이더 그래프를 처음 다룰 때 참고하시면 매우 좋을 것 같습니다! Feature Examples Feature Examples 예제에는 실제로 사용할수 있는 쉐이더 기법에 대한 설명이 나와있습니다.본인이 만들고자 하는 쉐이더가 있다면 참고하시면 좋을 것 같습니다.
쉐이더 그래프를 이용해서 작업을 하다보면 Black Board에 프로퍼티 값들이 많아져서 본인이 원하는 값을 찾기가 어려워집니다. 아래 예시와 같이 말이죠. 그럴때 사용할 수 있는 게 카테고리 기능입니다.카테고리 기능을 이용해서 비슷한 프로퍼티들 끼리 묶어주면 나중에 해당 값을 찾을 때 더 쉽게 찾을 수 있습니다. 카테고리 만드는 방법은 [+]를 누른 후 Category를 선택하시면 됩니다. 그 후 카테고리를 더블클릭해서 이름을 바꿔줄 수 있습니다.
DisallowMultipleComponent란?[DisallowMultipleComponent] 애트리뷰트를 클래스에 적용하면 해당 클래스의 컴포넌트가 단일 게임 오브젝트에 대해 단 "한 번만" 추가될 수 있도록 제한해줍니다. 예를 들어, 아래와 같이 DisallowMultipleComponent 애트리뷰트를 OnlyOne 클래스에 정의하면, OnlyOne 클래스의 인스턴스는 게임 오브젝트에 한 번만 추가될 수 있습니다.using UnityEngine;[DisallowMultipleComponent]public class OnlyOne : MonoBehaviour { // 클래스 내용} 중복해서 컴포넌트를 게임 오브젝트에 추가하려고 하면 위와 같은 경고창이 나오게 됩니다.
AR Anchor 이란? AR Anchor 컴포넌트는 실제 세계에 객체의 위치를 고정시키는 역할을 합니다. AR Anchor는 성능을 많이 잡아 먹으므로 씬에 많은 앵커가 있으면 FPS가 떨어집니다. AR Anchor는 AR Plane이 없으면 작동하지 않는 것을 주의해야 합니다. AR Anchor Manager 이란? AR Anchor Manager는 특정 공간의 Anchor을 추적하는 역할을 합니다. 고정시킬 객체에 AR Anchor 컴포넌트를 할당해줍니다. 마지막으로 XR Origin 객체에 AR Anchor Manager컴포넌트를 붙여줍니다. 결과
Day Night System 시간을 세팅하자 아침을 몇시로 세팅 할 지, 저녁은 몇 시로 할 것인지, 흐르는 시간의 배율 등을 세팅할 수 있게 도와주는 SO를 만들어보겠습니다. using UnityEngine; [CreateAssetMenu(fileName = "TimeSettings", menuName = "TimeSettings")] public class TimeSettings : ScriptableObject { public float timeMultiplier = 2000; public float startHour = 12; public float sunriseHour = 6; public float sunsetHour = 18; } 시간의 흐름과 낮/밤의 변화를 관리하자 using Syste..
Heatmap Color Mode란? Unity 6(2023.3.0a10) 이상에서 도입된 Heatmap Color Mode는 Shader Graph의 노드들의 GPU 비용을 시각적으로 색을 통해 나타내는 기능입니다. Heatmap Color Mode는 각 노드의 색상이 해당 노드의 '상대적인 성능 비용'을 나타냅니다. 어두운 색상의 노드는 쉐이더의 전체 GPU 성능 비용이 적게 드는 것을 뜻하며, 밝은 색상의 노드는 GPU 계산을 더 많이 하는 것을 뜻합니. Heatmap Color Mode를 사용하면, 각 노드의 GPU 사이클 수를 측정하여 카테고리(위 사진 Name참고)를 할당하고, 이를 기반으로 그래디언트를 사용하여 노드의 색상을 표시합니다. Heatmap Color Mode를 사용하기 위해서는 ..
Instancing이란? Instancing은 주로 '복제' 또는 '반복 생성'의 개념을 뜻합니다. 특정 객체, 데이터, 또는 구조의 여러 인스턴스를 생성하고 관리하는 과정을 포함됩니다. 유니티에서 Instancing이라는 개념은 GPU Instancing과 Instantiate라는 2가지 의미로 사용되곤 합니다. 이 포스팅에서는 GPU Instancing에 대해서만 말해보고자 합니다. GPU Instancing이란? GPU Instancing은 그래픽 처리 단계에서 사용되는 "최적화 기법"입니다. GPU Instancing을 사용하면 '동일한 메시'의 여러 복제본을 한 번에 그리거나 렌더링할 수 있습니다. 좀비 게임을 예로 들어보겠습니다. 좀비 게임을 할 때 좀비가 한 두마리만 생성되는 경우가 있을까요..
GPU Lightmapper란? Bakery Asset은 Unity의 인라이튼(Enlighten)과 프로그레시브(Progressive)의 '대안'으로 설계된 GPU LightMapper입니다. 'RTX 그래픽 카드'를 사용하여 빠르게 Light를 Bake할 수 있습니다. 인라이튼 - Unity 매뉴얼 Unity에서는 베이크된 전역 조명(Baked Global Illumination) 과 미리 계산된 실시간 전역 조명(Precomputed Realtime Global Illumination) 이라는 두 가지 기법으로 전역 조명(GI)과 바운스된 조명을 미리 계산할 수 docs.unity3d.com 참고: 최신 Nvidia GPU(6xx 이상) 및 64비트 Windows(7 이상)가 필요합니다! Render..
Step Node란? Step Node는 입력값 In이 Edge 값보다 크거나 같으면 1을 반환하고, 그렇지 않으면 0을 반환합니다.예를 들어, 특정 임계값을 기준으로 텍스처의 특정 부분을 강조하거나 숨기는 데 사용할 수 있습니다. 위 사진은 Step Node가 사용하는 함수입니다.두 개의 Value를 비교해서 Branch Node를 통해 1 or 0을 반환합니다.이때 기준은 A가 되며 A가 B보다 크거나 같은 경우에만 1, 그 외에는 0입니다. 프로그래머가 한 번에 이해하는 방법=> 입력 값 In(A) > Edge(B) ? 1: 0 대박슨ㅋㅋㅋㅋ
Saturate Node란? "Saturate Node"는 Shader Graph에서 사용되는 노드로, 입력 값을 0과 1 사이로 고정시키는 역할을 합니다. 어떤 값을 받아도 그 값이 0보다 작으면 0으로, 1보다 크면 1로 만드는 역할을 합니다. 입력 값의 범위를 제한하여 처리한다고 생각하시면 됩니다. Clamp Node와 차이는? 🔽 더보기 Clamp Node는 사용자가 지정한 최소값과 최대값 사이로 입력 값을 제한합니다. 예를 들어, 입력 값을 -1과 1 사이로 제한하거나, 10과 100 사이로 제한하는 것이 가능합니다.
Smoothstep Node란? Smooth Step Node는 특정 입력 값이 두 경계(Edge1, Edge2) 값 사이에 있을 때 0과 1 사이의 'Hermite 보간 결과'를 반환합니다. 'Smooth Step Node'는 'Lerp Node'와 비슷하지만 두 가지 차이점이 있습니다. Smooth Step Node를 사용하여 범위 (Edge1, Edge2) 를 지정하고, 0과 1 사이의 반환 값을 돌려 받습니다. Smooth Step Node는 'Linear 보간' 대신 'Hermite 보간'을 사용합니다. 보간이 처음에는 점진적으로 빨라졌다가 끝으로 갈수록 점차 느려집니다. 'Linear 보간'과 'Hermite 보간' 차이는? 🔽 더보기 Linear 보간법은 두 점 사이를 직선으로 연결하여 그 ..
Shader Graph의 Noise Node는 Simple Noise와 Gradient Noise 두 가지 유형이 있습니다. Simple Noise란? Simple Noise는 UV 입력을 기반으로 단순하거나 'Value Noise'를 생성합니다. Value Noise란? 🔽 더보기 Value Noise란 컴퓨터 그래픽에서 절차적(Procedual) Texture 생성에 사용되는 Noise Type입니다.Value Noise는 각 Grid Point에서 무작위 값을 생성하고, 이 값들 사이를 보간하여 Noise를 생성해냅니다. 보간하기에 부드러운 결과를 생성해냅니다. Value Noise는 자연스러운 텍스처, 지형 생성, 클라우드 렌더링 등에 사용될 수 있으나 덜 현실적인 결과를 생성해냅니다. Gradi..
작성된 글은 아래 내용을 정리한 내용입니다. Naming and Code Style Tips for C# Scripting in Unity Pick up best practices for styling your C# code in Unity. These tips can help you and your team create a cleaner, more readable and scalable codebase. unity.com Casing terminology Case Type Description Example Pascal Case 첫 글자와 각 단어의 첫 글자를 대문자로 표기합니다. MyExampleText Camel Case 첫 단어의 첫 글자는 소문자로, 그 이후의 단어의 첫 글자는 대문자로 표기합니..
AR Tracked Image Manager란? ARTrackedImageManager는 trackable manager의 한 유형으로, 2D Image를 추적할 때 사용되는 매니저 입니다. AR Tracked Image Manager는 Real World(실제 현실 공간)에서 감지된 각 Image에 대해 매칭되는 게임 오브젝트를 생성합니다. Tracked Image Prefab은 이미지를 감지했을 때 생성되는 GameObject입니다. 만약 Tracked Image Prefab이 null이면 매니저는 ARTrackedImage 컴포넌트만 있는 빈 GameObject를 생성합니다. 반대로 null이 아니지만 프리팹이 ARTrackedImage 컴포넌트를 가지고 있지 않다면, 매니저는 해당 컴포넌트를 추가..