251104

2025. 11. 4. 15:47·📖TIL

namespace ConsoleApp3
{
    // 람다식 , => , 익명함수 가독성 , 간결하게 하려고 , 인스턴스 함수
    
    // (입력값) => {함수의 동작}
    // => "이 매개변수 가지고 이런 동작을 하겠다" 는 의미
    // {함수의 동작}: 실행할 코드
    internal class Program
    {
        int GetNumber()
        {
            return 42;
        }
        // ()=>42

        void PrintNum(int x)
        {
            Console.WriteLine(x);
        }
        // x => Console.WriteLine(x);

        // 델리게이트 클로저 캡쳐
        // "머리로는 알겠는데 제대로 이해한게 맞는지 모르겠다"

        // 델리게이트 캡쳐
        // 람다식이나 , 익명함수에서 외부 범위에서 선언된 변수(지역변수 , 필드)를 사용하는 것
        // 외부에 있는 변수를 끌어다쓰면 중괄호가 끝나도 기억하고 있음

        // 클로저
        // 캡처된 변수와 해당 변수를 사용하는 함수를 묶어서 저장하는 방식
        // 클로저 덕분에 , 함수가 외부 범위의 변수를
        // "생명 주기와 관계 없이 계속 사용할 수 있게" 만든다


        static void Main(string[] args)
        {
            int val = 42; // 그냥 함수 밖의 외부 변수 (지역 변수)

            Func<int> getVal; // int를 반환하는 함수를 담을 수 있음
            getVal = () => val; // 이 한줄에선 val이 정의되어 있지 않다
            Console.WriteLine(getVal());
        }
    }
}
public class DelTest : MonoBehaviour
{
    int counter;
    int Increment()
    {
        return counter++;
    }

    Func<int> Closure()
    {
        int counter = 0;
        return () => ++counter;
    }
namespace DelegateExt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<Action> actions = new List<Action>();

            for(int i = 0; i < 10; i++)
            {
                actions.Add(() => Console.WriteLine(i));
            }
           
            foreach (var action in actions)
            {
                action();
            }
        }
    }
}

 

▼ 결과값

for(int i = 0; i < 10; i++)
{
    actions.Add(() => Console.WriteLine(i));
    // 얘는 지금 i에 들어있는 0을 기억하는 것이 아님
    // 얘는 i 를 출력한다라는 개념을 통째로 기억한다
}

 

URP

  • 입력조립 : Vertex 의 정보를 받아 좌표를 어떻게 그릴지 확인
  • 정점셰이더 : 로컬 스페이스의 좌표를 공간 스페이스에 위치하도록 좌표계를 변환
  • 레스터라이저 : 화면에 출력할 픽셀을 구성
  • 픽셀셰이더 : 기본 도형의 픽셀에 조명 , 그림자 , 텍스쳐 등을 입히는 단계
  • 출력 병합

 

클라이언트 프로그래머

 

그래픽 , 쉐이더 주로 다루는 사람 : 태크니컬 아티스트 TA

Vertex : 물체의 가장 기본이 되는 점 ( 좌표 x , y , z)

모든 3D 모델은 여러 버텍스로 이루어져 있다

 

폴리곤 : 물체를 이루는 최소 면 단위

가장 안정적이고 연산 단순화를 위해 삼각 혹은 사각 사용

 

메시 : 폴리곤 무리가 모여서 만들어지는 하나의 물체 덩어리

우리가 흔히 알고 있는 형태를 가진 오브젝트에 다 존재한다

텍스처 : 어떤 모델의 표면에 대한 이미지 정보

 

메터리얼 : 물체의 표면 정보를 종합적으로 가지는 속성

표면색상 , 질감 , 빛 반사율 , 투명도

 

쉐이더 : 컴퓨터 그래픽에서 최종적으로 화면에 출력하는 픽셀의 색정보를 지정해 주는 함수

 

컬링 : 보지이 않을 부분을 추려내기

 

3D 모델 → 메터리얼 → 쉐이더 → 랜더링

씬 뷰를 통해 구성한 모델링들을 2D 모니터로 옮긴다

이걸 랜더링 파이프라인이라고 한다

 

public class LayerCtrl : MonoBehaviour
{
    Camera cam;
    int layerMask;

    void Start()
    {
        cam = Camera.main; // 메인카메라 가져와서 담는 법
        layerMask = 7; 
        // 0000 0111
        // 0000 0000
        // 8756 4321

        cam.cullingMask = layerMask;
    }
}

비트연산을 사용하는 이유

여러 개를 활성화하기 위해서 비트 연산을 사용

헷갈리면 010101 을 숫자로 보지 말고

false true false true false true 로 된 배열이라고 보면 된다.

 

flag : 상태를 표시하거나 구분하기 위한 변수나 비트 값’**을 말한다.
주로 Boolean(참/거짓) 값으로 사용되지만, 비트 연산을 통해 여러 상태를 하나의 정수로 표현하기도 한다. 

 

 

'📖TIL' 카테고리의 다른 글

251109  (0) 2025.11.09
251105  (0) 2025.11.05
어제 작성한 코드 역설계 및 풀이  (0) 2025.10.30
251024 Revision  (0) 2025.10.24
251023-2  (0) 2025.10.23
'📖TIL' 카테고리의 다른 글
  • 251109
  • 251105
  • 어제 작성한 코드 역설계 및 풀이
  • 251024 Revision
DevHoChan
DevHoChan
맨땅에서 시작하는 코딩 도전
  • DevHoChan
    Debugging Life
    DevHoChan
  • 전체
    오늘
    어제
    • 분류 전체보기 (374)
      • 🕹️Game Life (1)
      • 🖥️Computer Science (5)
      • 📖TIL (141)
        • 🔥Projects (16)
        • 💡DevTips (5)
        • 🤔발생한 문제와 해결 (5)
        • 🔮Unity Graphics (5)
        • 🎤Interview (3)
        • ✅CodingTest (9)
      • 🚀Game Release (4)
      • 🧊Unity Basic (58)
        • 📌용어 사전 (1)
        • 에디터&인터페이스 (3)
        • 디버그 (1)
        • 라이프사이클 (4)
        • 게임오브젝트 (4)
        • 프리팹 (1)
        • 오브젝트풀링 (4)
        • 애트리뷰트 (2)
        • 트랜스폼 (4)
        • 물리&충돌 (1)
        • 프레임&델타타임 (4)
        • 코루틴&이벤트 (7)
        • 수학&보정함수 (3)
        • 디자인패턴 (9)
        • UGUI (3)
        • 벡터 ( Vector ) (3)
        • 씬 ( Scene ) (2)
        • 데이터 관리 (2)
      • ⭐C Sharp (99)
        • 📌용어 사전 (1)
        • 📌문법 사전 (6)
        • 메모리 관리 (3)
        • 00. 문법 (17)
        • 01. 변수 (3)
        • 02. 자료형 (2)
        • 03. 연산자 (6)
        • 04. 조건문 (2)
        • 05. 반복문 (2)
        • 06. 배열 (3)
        • 07. 메서드(함수) (7)
        • 08. 열거형 (3)
        • 09. 구조체 (2)
        • 10. 참조 (2)
        • 11. 객체 지향 (11)
        • 12. 델리게이트 (3)
        • 13. 디자인 패턴 (7)
        • 14. LINQ (1)
        • 📂▼자료구조 (2)
        • 15-1. 제네릭 (3)
        • 15-2. 배열 (4)
        • 15-3. 리스트 (2)
        • 15-4. 스택과 큐 (2)
        • 15-5. 딕셔너리 해시테이블 (2)
        • 15-6. 트리와 그래프 (3)
      • 📊Algorithm (16)
        • BigO (2)
        • 정렬 (4)
        • 셔플 (2)
        • 탐색 (6)
        • 최적화 (1)
      • 📝Game Design (16)
      • 🤖​AI Tools (12)
        • AI 리뷰 분석 (6)
        • Player2 (0)
        • 3D 모델링 (1)
        • 2D 스프라이트 (0)
        • 이미지 (2)
        • 사운드 (1)
        • 동영상 (1)
        • 문서 (1)
      • 🌍Network (6)
      • 🌱Github (11)
        • 기본 개념 (7)
        • 명령어 (1)
        • 도구 활용 (1)
      • ⚙️Visual Studio (5)
        • 🔧설치 및 환경설정 (2)
        • ⌨️HotKey (1)
        • 🚨디버깅 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자료형
    객체지향
    기획
    unity
    til
    자료구조
    CodingTest
    디자인패턴
    부트캠프
    csharp
    OOP
    문법
    gamedesign
    게임디자인
    c#
    메모리관리
    algorithm
    GitHub
    유니티
    게임기획
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
DevHoChan
251104
상단으로

티스토리툴바