ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 24년 7월 18일 TIL
    공부 기록 2024. 7. 18. 12:15

    최적화 기법

     

    POT 텍스처

    아틀라스

    유니티 프로파일러 

    배치( Batch)

    SetPassCall

     

     

    유니티의 최적화 기법 

    배칭, 텍스처아틀라스, 오브젝트풀링, LOD(거리에 따라 디테일 수준 결정), 컬링(카메라에 보이지 않는 것 렌더링 X)

    압축 및 텍스처 포멧 

     

    텍스처 포멧 

     

    • DXT1/5 (S3TC): 주로 PC와 콘솔에서 사용되며, 압축률이 높아 메모리 사용량을 줄입니다.
    • ETC1/2: 모바일 플랫폼에서 많이 사용되는 압축 포맷입니다.
    • PVRTC: iOS 장치에서 사용되는 포맷으로, 높은 압축률과 품질을 제공합니다.
    • ASTC: 최신 모바일 장치에서 사용되며, 유연한 압축률과 높은 품질을 제공합니다.

     

    드로우 콜 최적화 

    배칭, 텍스처 아틀라스, 인스턴싱, 

    배칭 : 동일한 머터리얼 사용시 오브젝트를 그룹화 한 후에 한 번에 렌ㄷ더링, 

    텍스처 아틀라스 : 여러 텍스처를 하나로 결합하여 드로우콜 수 줄임

    인스턴싱 : 동일한 메쉬를 여러 번 그릴 때 한 번의 드로우콜로 처리 할 수 있도록 함.

     

    최적화 기법들 뭐뭐 있는지 정리하기.

     

     

     

     

    1.
    Tree란 계층적 데이터를 나타내기 위한 자료 구조입니다. 각 노드는 부모와 자식관계를 가지며, 루트 노드로부터 시작하여 하위 노드로 확장 됩니다. 트리는 순환이 없는 그래프의 형태,

    Tree의 종류에는 여러가지가 있습니다.
    대표적으로 이진트리, 이진 탐색 트리, AVL 트리, 레드 - 블랙 트리, B-.트리, 트라이, 힙이 있습니다. 
    이진트리: 각노드가 최대 두 개의 자식을 가지는 트리
    이진탐색트리 : 이진 트리의 일종으로 왼 쪽 자식 노드는 부모 노드보다 작고, 오른 쪽 자식 노드는 부모 노드보다 큼
    AVL 트리 : 이진 탐색 트리의 일종으로, 각 노드의 균형을 유지하여 탐색 시간을 최적화
    레드 - 블랙 트리 : 균형을 유지하는 이진 탐색 트리로써 삽입과 삭제 시 균형을 유지하는 규칙이 있음
    B - 트리 :  데이터베이스와 파일 시스템에서 많이 사용 하는 균형 트리, 다수의 자식을 가질 수 있음.
    트라이 : 문자열 탐색을 위한 트리 각 노드가 문자열의 문자를 나타냄.
    힙 : 우선 순위 큐를 구현 하는 트리로 최대 힙과 최소 힙으로 나뉨. 

    2.
    DFS는 한 방향으로 끝까지 탐색 한 후에 다시 돌아와 다른 방향을 탐색하는 방식입니다. 
    BFS는 현재 노드의 모든 자식을 방문한 후에 다음 깊이로 이동하는 방식입니다. 
    그래서 DFS로 방문을 하게 될경우 순서는 1 -2 -3 - 6 - 9 - 7 -4 - 8 -5 가 됩니다. 
    그리고 BFS로 방문을 할 경우에는 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 -9 가 됩니다.

    3.DFS는 한 방향으로 끝까지 맵을 탐색 한 후에 다른 방향을 탐색 합니다. BFS는 현재 위치에서 모든 방향을 방문 한 후에 다음 깊이로 가서 거기서 모든 방향을 탐색 합니다. 
    그래서 지금과 같은 미니맵 형식에서는 DFS가 더 적절 할 것 같습니다. 
    보통 현재 위치로부터 보스방까지 가는 경우는 처음과 끝인 경우인데 끝을 찾을 경우에는 DFS가 더 적절할 것 같습니다. 
    하지만 사진상에서는 보스방이 바로 옆에 있습니다. 이 경우에는 BFS을 사용 하는 것이 훨씬 빠릅니다. 

     

     

    • 전위 순회(Preorder Traversal): 루트 노드를 먼저 방문하고, 왼쪽 자식을 순회한 다음, 오른쪽 자식을 순회합니다.
      • 순서: Root → Left → Right
    • 중위 순회(Inorder Traversal): 왼쪽 자식을 먼저 순회하고, 루트 노드를 방문한 다음, 오른쪽 자식을 순회합니다.
      • 순서: Left → Root → Right
    • 후위 순회(Postorder Traversal): 왼쪽 자식을 먼저 순회하고, 오른쪽 자식을 순회한 다음, 루트 노드를 방문합니다.
      • 순서: Left → Right → Root
    • 레벨 순회(Level Order Traversal): 트리의 각 레벨을 차례대로 순회합니다. BFS와 같은 방식으로 구현됩니다.
      • 순서: 각 레벨을 좌에서 우로

     

    나중에 자료구조 공부하기. 

    트리를 사용해서 이 기능을 이렇게 구현 해봤다 이런 식으로 정리 하기. 

     

    DFS - 출구 탐색

    BFS - 최단경로 탐색

     

    트리 자료구조. 사용방법 알고리즘

     

     

    행동 트리에 대해 설명 .

    행동 트리(Behaviour Tree)는 인공지능(AI) 시스템에서 사용되는 트리 구조의 모델로, 캐릭터나 객체의 행동을 결정하는 데 사용됩니다. 행동 트리는 간단한 행동들을 조합하여 복잡한 행동을 생성할 수 있도록 합니다.

    주요 구성 요소:

    • 루트(Root): 트리의 시작점입니다.
    • 노드(Node): 각각의 행동이나 조건을 나타냅니다. 일반적으로 세 가지 유형의 노드가 있습니다:
      • 액션 노드(Action Node): 특정 행동을 수행합니다.
      • 조건 노드(Condition Node): 특정 조건을 평가합니다.
      • 제어 노드(Control Node): 하위 노드의 실행 순서를 제어합니다. 예를 들어, 선택자(Selector)와 순차자(Sequence)가 있습니다.

    주요 제어 노드:

    • 선택자(Selector): 자식 노드들을 순차적으로 실행하며, 첫 번째 성공하는 노드에서 멈춥니다.
    • 순차자(Sequence): 자식 노드들을 순차적으로 실행하며, 모든 자식 노드가 성공해야 전체가 성공으로 간주됩니다.

    사용 사례:

    • 게임 AI: NPC(Non-Player Character)의 행동을 결정하는 데 널리 사용됩니다. 예를 들어, 경계, 순찰, 공격 등의 행동을 제어합니다.
    • 로봇 공학: 로봇의 행동 계획을 구성하는 데 사용됩니다.

    행동 트리는 직관적이고 모듈화된 방식으로 복잡한 행동을 설계할 수 있어, 게임 개발과 로봇 공학에서 많이 활용됩니다.

    //

     

    나중에 정리하기.

     

     

     

    JSON 방법

    https://geojun.tistory.com/65

     

    유니티 - 게임 데이터 JSON으로 저장하기

    유니티로 게임 제작 시 각종 데이터 정보를 Json으로 저장하는 방법에 대해 알아보겠습니다.Json 저장은 유니티에서 기본 제공하는 JsonUtility을 사용 했습니다. 저장할 데이터 목록은 public List test

    geojun.tistory.com

     

    '공부 기록' 카테고리의 다른 글

    24년 7월 24일 TIL  (0) 2024.07.24
    24년 7월 19일 TIL  (0) 2024.07.19
    24년 7월 17일 TIL  (0) 2024.07.17
    24년 7월 16일 TIL  (0) 2024.07.16
    24년 7월 15일 TIL  (0) 2024.07.15
Designed by Tistory.