본문 바로가기

Unity21

[Shader] Compute shader 개념과 예제 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Compute Shader란?컴퓨트 셰이더는 일반 렌더링 파이프라인과 별도로 그래픽 카드에서 실행되는 프로그램이다. GPU의 계산 능력을 활용해 물리 시뮬레이션, 복잡한 수학 등을 비교적 빠르게 처리하기 때문에 렌더링 효율성과 최적화 문제를 해결하는데 용이하다. 나의 경우에는 이전에 만들었던 Boids의 최적화 문제를 해결해보고자 Compute Shader를 공부하기로 했다. 요약하자면 -> - GPGPU(Gneral-Purpose computing on GPU)를 이용한 대규모 병렬처리 쉐이더- 병렬처리가 가능하기 때문에 동시에 수많은 객체를 처리해야할 때 사용한다! Compute Shader 기본 구조 URP.. 2025. 8. 25.
[C#] 스레드(Thread)의 기본 개념 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Thread의 개념과 관련 용어 Thread의 개념을 알기 위해서는 운영체제와 프로세스의 의미에 대해서 먼저 알아야한다. 운영체제윈도우, 리눅스 등 사용자의 하드웨어와 시스템 리소스를 제어하고 프로그램에 대한 일반적인 서비스를 지원하는 시스템 소프트웨어다. 프로세스 프로세스는 운영체제 안에서 실행되는 프로그램이다. 프로세스들은 서로 독립된 객체이기 때문에 각각 메모리를 할당받고 서로에게 접근할 수 없다. 서로의 상태 정보를 받기 위해서는 별도의 커뮤니케이션 필요하다. 이러한 프로세스는 반드시 하나 이상의 스레드로 구성되어있다. 스레드프로세스 내부에서 실행되는 작은 작업 단위이다. 위에서 말했듯이 프로세스는 반드.. 2025. 8. 19.
[C#] Boids 군집 알고리즘 공부 : 구현 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. [C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는hungrykang.tistory.com -Cohension(응집) -Alignoment(정렬) Separation(분리) 규칙 기반으로 Boids를 구현해본다.준비 나의 경우에는 1. 객체 1000개 2. VR(Quest 3)에서 돌아갈 것을 고려 3. 특정 오브젝트 위치로 도달해야함 (= Target Object Position 존재) 등을 조건으로 진행.. 2025. 8. 18.
[Math] 삼각함수로 만들기 #2 진자 운동 feat. Quarternion 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 만들어 볼 것 그네는 결국 진자 운동과 비슷하다. 힘이 가해지면 특정 범위를 오가는 특성때문인데, 이는 sin(), cos()으로 구현가능하다. 그런데 제목을 보면 Quarternion이 언급된다. 진자 운동은 단순한 좌우 회전처럼 보이지만 3D 객체일 경우 Rotation을 다루게 되므로 회전의 영역에 해당된다. 앞서 공부했듯이 짐벌락 문제 등을 방지하고 자연스러운 회전을 위해서 Quarternion이 고안되었다. 무엇보다도 transform.rotation이 Quaternion 형식이다. 따라서 삼각함수로는 벡터 값을, 쿼터니언으로는 회전 값을 만든다고 생각하면 된다. Quaternion 관련 함수 Q.. 2025. 8. 7.
[C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는 기본적으로 Separation(분리)-Alignoment(정렬)-Cohension(응집) 단계로 나눠진다. 1. Separation (무리를 피하는 방향으로 이동) 자신 주변의 객체들이 붐비는 것을 피하기 위해 주변 객체들에게 벗어나는 규칙 2. Alignoment (무리의 진행 방향으로 이동) 주변 객체들의 평균 방향으로 이동하는 규칙. 3. Cohesion (무리의 중심 방향으로 이동)모든 객체 사이의 평균점을 찾고 평균점을 향해 이동하는 규칙 이 규칙들이 동시에 고려되면서, 동료들과 비슷한 방향으로.. 2025. 8. 6.
[VR] Meta XR SDK Building Block 기반 멀티 만들어보기 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Meta XR SDKMeta XR SDK의 가장 좋은 점은 빌딩블록 덕분에 VR Interaction 구현이 쉬워진다는 점이다. 설치 및 빌딩 블록 사용Meta XR All-in-One SDK를 다운받은뒤, Meta- Tool에서 Building Block을 선택해서 사용할 수 있다. 이전에 Grab, Passthrough, Ray등을 사용해본 바가 있는데 오늘은 빌딩 블록을 사용해서 멀티플레이를 만들어보려고 한다. Colocation이란?코로케이션은 데이터 센터에서 기업이 자신의 서버와 기타 IT 장비를 설치, 운영할 수 있도록 공간, 전력, 냉각, 그리고 네트워크 연결을 제공하는 서비스를 의미하는데 Meta.. 2025. 8. 4.
[Normcore] Normcore와 VR Multi 테스트 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. VR 프로젝트에 적합한 멀티 플레이 SDK가 어떤건지 테스트해보고 있는 중이다. 사용 기기는 Meta Quest3이다.Normcore란? Normal에서 만든 멀티 플레이 SDK로, 다른 멀티플레이 SDK에 비해서 VR 친화성이 높은 것이 특징이다.또한 RPC 방식으로 동기화하지 않고 데이터베이스에 모든 상태를 저장하는 방식을 사용한다. 이 방식이 어떻게 가능한지 의아했는데 Normcore 에서는 Room 단위로 세션을 관리하고 실시간 데이터만 저장해두고, 마지막 인원이 퇴장하는 동시에 Room 상태를 삭제하며 모든 데이터를 삭제하는 방식으로 굴러간다. 사실 제일 궁금했던 점은 몇 명까지 지원이 되냐는 것.. 2025. 8. 3.
[Math] 삼각함수로 만들기 #1 FOV 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 게임과 관련된 수학 이론을 공부하면서 '그래서 이걸 어떻게 게임 엔진 내에서 사용할 수 있는가?' 라는 의문이 생겨 예제를 작성하면서 공부를 진행하기로 했다. 삼각함수로 구현하기 삼각함수는 대체로 반복 운동을 구현하는데 유용하다. 1과 -1 사이를 운동하는 특성상 물결, 그네 등 특정 구간을 반복적으로 이동하는 현상을 구현할수도 있고, 삼각함수를 통해 방향벡터를 구하여 투사체 효과 등을 만들수도 있다. 유니티 내장 삼각함수 : Mathf.Sin(), Math.Cos() 유니티에서는 Mathf 구조체에 삼각함수가 포함되어있다. Sin()은 높이를, Cos()는 밑변을 나타내는 함수이다. 참고로 유니티에서는 정규.. 2025. 7. 24.
[Unity] 내장 함수 정리 : Vector3 & Mathf 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 매번 구글링하기도 귀찮아서 Vector 관련 함수를 정리해봤다. 찾아보지 않아도 될 정도로 익숙해지면 더 좋고! Vector Function 이름의미Vector3.zeroVector3(0,0,0)Vector3.oneVector3(1,1,1)Vector3.downVector3(0,-1,0)Vector3.rightVector3(1,0,0)Vector3.leftVector3(-1,0,0)Vector3.forwardVector3(0,0,1)Vector3.backVector3(0,0,-1)Vector3.nomalizedVector3의 magnitude를 1로 만들어 반환 (정규화)Vector3.sqrMagnitudeVec.. 2025. 7. 23.