728x90

프로그래밍 138

연결리스트_단일방향 연결리스트 구현

C를 통해 구현을 할 예정이다. 연결리스트의 특성에 맞게, 노드를 동적으로 생성하고, 그 노드들을 연결시켜주면서 연결리스트는 완성이 된다. C에서는 malloc함수와 Free함수를 활용하여 메모리에 동적할당한다. 일단 노드를 struct를 이용하여 구성한다. typedef struct _node { int data;// 데이터를 담을 공간 (int형) struct _node * next; // 다음 노드(구조체)를 가리킬 next라는 이름의 포인터이다. } Node; 이렇게 구성된 노드를 계속해서 이어주는 자료구조라고 보면 된다. 필요할때마다 Node를 하나씩 동적할당하여 이들을 연결하는 것이다. 동적 할당하는 코드는 아래와 같다. newNode = (Node*)malloc(sizeof(Node)); 역..

CPU 스케쥴링 개념

* 혼자공부하는 컴퓨터구조 운영체제를 공부하며 정리하였습니다. CPU 스케줄링이란 - 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는것, 컴퓨터 전체 성능과도 직결되는 문제이다. 공정한 스케줄링을 위하여 - 단순히 들어온 순서대로 처리를 하는 방식은 좋은 방식이 아니다. - 빨리 처리해야되는 프로세스도 있는 반면 비교적 CPU를 적게 써도 되는 프로세스도 있다. - 입출력 작업이 많은 프로세스의 우선순위는 CPU 작업이 많은 프로세스의 우선순위보다 높다. (입출력 작업이 많은 프로세스는 CPU를 안쓰는 대기시간이 더 많기 때문이다.) 프로세스 우선순위 - 상황에 맞게, 프로세스의 중요도에 맞게 운영체제가 부여하는것이다. - PCB에 저장이 된다. 스케줄링 큐 - 운영체제 입장에서는 모든..

스레드 알아보기

* 혼자공부하는 컴퓨터구조 운영체제를 공부하며 정리한 내용입니다. 실무에서 스레드를 고려하며 코딩하는 경우가 아주 많다. Thread는 프로세스를 구성하는 실행 흐름의 단위이다. 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. (한 프로세스를 여러 개의 스레드로 동시에 실행할 수 있다.) 실행 흐름이 여러개인 프로세스를 멀티 스레드 프로세스라고 한다. -> 프로세스를 이루는 여러 명령어 동시 실행 가능 스레드는 무엇으로 구성되어 있길래 나누어서 실행할 수 있을까 스레드의 구성요소 - 하나의 스레드마다 각기 다른 스레드 ID - 프로그램 카운터를 비롯한 레지스터 값 - 스택 중요요소 - 프로세스를 이루는 스레드들은 실행에 필요한 최소한의 정보를 갖고있는데 - 하지만 프로세스를 이루는 스레드들은 프로..

2022 LTS Component_컴포넌트 추가 변경

MeshRenderer에서 Motion Vectors를 선택할 수 있는 항목이 추가됨. Motion Vector는 HDRP에서 사용되던 속성임. 한 프레임에서 다음 프레임으로 게임객체가 이동할때 (Vertex가 이동할때) 픽셀단위로 계산을 해주는 쉐이더 이것을 오브젝트 단에서 여러가지 방식으로 변경이 가능해졌다. 2D Sprite Shape Renderer Sort Point의 중심을 선택할 수 있도록 변경 Line Renderer MaskInterection이 설정 가능해졌다. 원하는 영역에서만 이펙트 랜더러가 보일 수 있도록 설정할 수 있다. LineRenderer , TrailRenderer 둘다 가능 Lens Flare가 초보자들도 손쉽게 이용이 가능하도록 변경되었다. Video Player에서 ..

카메라와 컬링 이해

컬링의 기본 컨셉 보이지 않는 것은 그리지 말자 MVP Transformation Frustum Culling Spatial Partition Occlusion Culling Culling Layer Multi Camera Cinemachine vs Camera 게임을 개발하며 어떤식으로 카메라가 랜더되는지 설명한다고 한다. MVP Transformation (Vertex Transformation) 쉐이더 쪽 이야기 카메라에 오브젝트가 보여주기 위해서 오브젝트는 매 프레임 그릴때마다 변환을 거치게 된다. 수학적인 얘기가 끼어들수밖에 없으나 개념적인 얘기만 들어보자 쉐이더를 거칠때 꼭 알아야 할 내용인데 예습하는 느낌으로 들어보자. 카메라도 가만히 있고 오브젝트도 가만히 있지만 내부적으로는 계속 변환이 ..

Unity 2022 LTS 하이라이트 기능

1. Brief history of DOTS (데이터 지향 기술 스택) -> DOTS가 무엇인지 알아봐야 이해할 수 있을것으로 생각됨 ECS for Unity 2022, 정식버전? -> 이것도 알아봐야 할것같음 토네이도 시뮬레이션을 보여주고 있다. 객체지향에 익숙한 사람들은 데이터 지향에 익숙하지 않을것이라고 얘기한다. 2. URP (Universal Render Pipeline) Forward +. rendering path -> 성능이 취약한 플랫폼에서 동적라이트를 다양하게 사용가능 LOD crossfade -> LOD를 이용하게되면 메쉬가 바뀌게 되며 시각적인 팝핀형상이 발생되는데, 그게 부드럽게 변환된다. Decal -> 데칼이 맺혀야 할 곳에만 맺히되록 한다. Temporal 안티엘리어싱 -> ..

[유니티 Tip] Transform 트랜스폼

씬을 봤을때 우리가 눈으로 보이고 코드를 짜는 C#공간이 있고 그 아래에 C++로 만들어진 엔진 공간이 있고 콜라이더와같은 Physics 물리 공간이 있다고 한다. (2D용, 3D용 따로 있다고 한다.) transform.position을 하면 C#에서 먼저 움직이고 C++과 Physics에 영향을 주고 Animator 는 C++에서 rigidbody.AddForce 는 Physics에서 먼저 움직이고 세가지 공간이 모두 싱크를 맞추면서 움직인다고 보면 된다고 한다. 트랜스폼 스케일, 로케이션이 따로 있어 보이지만 엔진 내부에서 보면 매트릭스라는 4x4 행렬로 표현이 된다고 한다. 서로 다 영향을 미치는 존재라고 보면 된다고 한다. 수포자를 위한 게임수학 #17 검색하면 좋다고 함. 최적화 팁 위의 Up..

프로세스 상태, 계층 구조, 생성 기법

프로세스 상태 1. 생성 상태 - 이제 막 메모리에 적재되어 PCB를 할당 받은 상태 2. 준비 상태 - 당장이라도 CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니기 때문에 기다리는 상태이다. - 자신의 차례가 오면 실행 상태로 변환된다. (디스패치) 3. 실행 상태 - CPU를 할당 받아 실행중인 상태이다. - 할당된 시간 모두 사용 시(타이머 인터럽트 발생 시) 준비상태로 변환된다. - 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때(입출력 완료 인터럽트 발생시)까지 대기상태로 변환된다. 4. 대기 상태 - 프로세스가 실행 도중 입출력장치를 사용하는 경우 - 입출력 작업은 CPU에 비해 느리기 때문에 대기상태로 기다린다. 5. 종료 상태 - 프로세스가 종료된 상태이다. - PCB, 프..

프로세스 개요

프로그램은 실행되기 전까지는 단순히 보조기억장치에 저장되어있는 데이터 덩어리일 뿐이지만 이 보조기억장치에 저장된 프로그램을 실행하여 메모리에 적재하는 순간 프로세스가 된다. 큰 종류 2가지 1. Foreground process - 사용자가 볼 수 있는 공간에서 실행되는 프로세스 - 일반적인 웹브라우저, 메모장, 워드프로세스, 게임 등 2. Background process - 사용자가 볼 수 없는 공간에서 실행되는 프로세스 - 직접 상호작용은 가능한 백그라운드 프로세스 (데몬, 서비스) - 상호작용은 하지 않고 그저 정해진 일만 수행하는 프로세스 프로세스 제어 블록 1) 모든 프로세스는 실행을 위해 CPU가 필요하다. 그러나 CPU자원은 한정 되어있다. 2) 따라서 프로세스들은 돌아가며 한정된 시간 만..

내가 보고싶은 Unity 코리아 영상

유니티짱과 함께하는 시네머신 튜토리얼! https://www.youtube.com/watch?v=0uDROvxOQ0w Unity 2017.2부터 탑재된 타일맵 기능 소개 https://www.youtube.com/watch?v=G4whuUkJvQk 모바일 환경에서의 포스트 프로세싱 퍼포먼스 가이드 https://www.youtube.com/watch?v=nNWRhsOAdB8 누구나 쉽게 하는 유니티 모바일 빌드 자동화 https://www.youtube.com/watch?v=LU7CMWlJOR4 /이득우 - 수식없이 게임 수학 이해하기 https://www.youtube.com/watch?v=nY6cZOY3VOs 이승환 공준식 - 모바일 게임 최적화 테크닉 - Vulkan과 Unity Adaptive P..

728x90