분류 전체보기 92

웹캠을 이용한 RTSP 서비스 구축하기(윈도우즈)

1. 개요    RTSP(Real-Time Streaming Protocol)는 실시간 스트리밍 데이터의 제어를 위해 설계된 네트워크 프로토콜입니다. 주로 미디어 서버와 클라이언트 간의 통신에서 사용되며  IP 카메라, VOD(Video on Demand), 라이브 스트리밍에 사용된다. RTSP(Real-Time Streaming Protocol)와 유사한 RTMP(Real-Time Messaging Protocol)도 또한  스트리밍 미디어를 전송하기 위한 프로토콜입니다.  RTMP는 실시간 라이브 방송, Flash 미디어 서버 기반 스트리밍에 사용된다. RTMP는  표준이 아니며 Flash 기술의 쇠퇴로 사용 감소 중이다. 그런나  RTSP는 여전히 IP 카메라와 보안 시스템에서 중요한 프로토콜로 남..

카테고리 없음 2024.12.29

Render Farm (Deadline) 구축하기

1. 개요Render Farm(렌더팜)은 여러 대의 컴퓨터를 네트워크로 연결하여 대규모 렌더링 작업을 병렬로 처리하는 시스템입니다.주로 영화, 애니메이션, VFX, 건축 시각화, 3D 모델링 등과 같은 분야에서 사용됩니다. 렌더팜은 고성능의 렌더링을 효율적으로 수행하여 렌더링 시간을 단축하고 생산성을 극대화하는 데 중요한 역할을 합니다. AWS에서 무료로 제공하는 Deadline을 이용하여 렌더팜을 구축하여본다. 로컬 네트워크에 여러대의 컴퓨터가 설치되어 있는 학교의 실습실 환경은 렌더팜을 설치하기 좋은 환경이다. 실습실의 모든 컴퓨터의 절전 기능을 해제하고 컴퓨터의 PC 이름도  단순하게 Node01, Node02 이런식으로 관리하는 것이 편리하다.   2. Render Farm의 구성요소    (1)..

카테고리 없음 2024.12.21

Dyson V14 Trigger Button 수리

1. 개요  미국 여행 중에 구입한 다이슨 청소기의 스위치 부분이 고장이 나서 AS를 받으려고 하였으나  국내 구입한 것이 아니라 안된다고 한다. 할 수 없이 분해해서 수리해 보기로 하였다.  이 글은  다음에 또 수리할 기회가 생길 것 같아서 기억이 사라지기 전에 기록으로 남긴다.  사실 세번째 분해인데 매번 생각이 안난다.  2. 분해하기  가전 제품을 수리할 때 가장 어려운 부분은 어떻게 분해하느냐 인것 같다? 경험이 없는 제품은 분해하는데 시간을  많이 소요한다. 그러나 요즘에는 다행히 유튜브 동영상이 많이 있다.   다이슨 청소기의 동영상을 검색하여 찾아보았다. https://www.youtube.com/watch?v=WAByAA7X9_k   3. 스위치 문제점 발견    분해를 하고 보니 애초..

카테고리 없음 2024.10.01

Oculus Quest2 Factory Reset방법

오큘러스를 Meta Quest 앱에서 초기화하기Meta Quest™ 앱을 엽니다.'기기'를 탭합니다.오큘러스 퀘스트를 선택합니다.'고급 설정' > '공장 초기화' > '초기화'를 탭합니다.오큘러스 헤드셋에서  초기화하기전원 버튼과 볼륨 다운 버튼을 오큘러스가 켜질 때까지 동시에 누르고 있습니다.볼륨 버튼을 사용하여 '공장 초기화' > '예, 삭제하고 공장 초기화'를 선택합니다.

카테고리 없음 2024.09.27

자주 사용하는 ADB 명령어

1. 개요    자주 사용하는 adb 명령어를 정리하여 본다.  ADB는 Android Debug Bridge의 약자로, Android 장치와 PC 간의 통신을 가능하게 하는 명령줄 도구이다. ADB는 Android 개발자에게 유용한 도구로, 여러 가지 작업을 수행할 수 있다.  PC에 장비를 연결(USB또는 WiFi)하고 장비에는 USB-Debugging 허용 등의 액션을 하여야 한다.  Oculus에 apk를 설치한다면ODH(Meta Quest Developer Hub)를 사용하는 것 보다 ADB를 사용하는 것이 더 안정적으로 이라고 생각한다.  2. PC에 설치된 안드로이드 SDK 위치를 알아낸다.  안드로이드 스튜디오가 설치 되어 있다면  File>Settings의 창에서 아래와 같이 알아낼수 있..

카테고리 없음 2024.08.23

일반 유니티 3D 프로젝트를 Oculus App으로 만들기

1. 개요   유니티 프로젝트를 생성할 때 VR콘텐츠 템플리트를 제공한다. 오큘러스에서 사용할 예정이라면 처음 부터 제공하는 템플리트를 이용하여 프로젝트를 만들면 된다. 그러나 일반 유니티 프로젝트로 이미 만든 것을 VR용으로 만들어 오큘러스에서 사용해 보기로 하자.  2023.2.18f1버전에서 작업하였다. 버전마다 좀 차이가 있다.  2. XR Plug-in Management    Edit > Project Settings에서  XR Plug-in Management를 선택하고 oculus를 체크한다. oculus는 안드로이드 장비로   안드로이드 설정에 체크하고 상세설정에서 Quest 2, Quest Pro, Quest Pro 모두를 체크한다. 3.  OVR Plugin 설치   Windows>P..

카테고리 없음 2024.08.13

UNITY에서 실행 중에 3D Model파일 로드하기

1. 개요    프로그램이 실행 중에 서버로 부터 3D 모델을 읽고 이를 보여주도록 한다.  2.  GLB/GLTF 로드하기       필요한 라이브러리 파일을 설정한다.      [참고]   https://docs.unity3d.com/Packages/com.unity.cloud.gltfast@6.6/manual/installation.html     go to Windows > Package Manager.      select the Add (+) button.  Add PAckage from git URL       ==>      com.unity.cloud.gltfast  using UnityEngine;using UnityEngine.Networking;using System.Collecti..

카테고리 없음 2024.06.23

Unity에서 다이나믹하게 SkyBox 변경하기

1. 개요     프로그램 실행 중에   Sky Box를 변경한다.  2. 수작업으로 변경하는 방법     프로젝트 Asset 폴더에  360도 파노라마 사진을 준비한다.      마우스 우측버튼으로 Create> Material을 생성하고, 적절한 이름을 부여한다.(예: PanoramaSkybox).      생성한 Material을 선택하고, Inspector 창에서 Shader를 Skybox > Panoramic으로 변경합니다. Main Texture 슬롯에 파노라마 이미지를 드래그 앤 드롭한다.     이제 생성한 Skybox Material을 현재 Scene에 적용합니다.    Window > Rendering > Lighting을 선택하여 Lighting 창을 엽니다.    Environmen..

카테고리 없음 2024.06.23

Unity 비동기 소켓 프로그래밍

1. 개요    SocketIOClient를 사용하여  유니티 에디터에서 비동기 소켓 프로그램을 작성하고 테스트 하여본다.     [참고] 안드로이드 플랫폼에서는  동작이 안되는 것 같다.  맨 아래 후기 참조.2. 유니티에 nuget 패키지 관리자  설치하기      Window 메뉴>Packet Manager     좌측 상단 + 클릭하고 'Add package from git URL 선택     https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity     입력하고 Add를 클릭하면 설치가 진행되고 설치가 완료되면 유니티 에디터에  NuGet 메뉴탭이 추가됩니다. 3. nuget을 이용하여 SocketIOClient 설치하기 ..

카테고리 없음 2024.06.14

RRT* 알고리즘을 이용한 경로 계산

1. 개요 맵-이미지 파일을 갈수 영역(free)을 255(백색), 갈 수 없는 영역(obstacle)을 0(검은색)으로 표현하고, 초기 위치와 목표위치를 설정하고, RRT* 알고리즘을 이용하여 장애물의 피하면서 갈 수 있는 최단 코스를 계산한다. 2. 파이썬 코드 # RRT STAR 알고리즘 import cv2 import numpy as np import random import heapq import os # image value 255: free area # image value 0: obstacle area class Node: """ RRT* 노드를 정의하는 클래스 """ def __init__(self, point): self.point = point self.parent = None sel..

카테고리 없음 2024.01.24