환영합니다 🤗
-
NUnit 단위 테스트 속성
[TestFixture] : 테스트용 클래스에 붙임 [SetUp] : 각 테스트 함수 실행 전에 호출됨. 테스트 한개당 한번(ex. 초기화 작업) [Test] 테스트 함수 정의(독립적인 단위 테스트) [TearDown] : 각 테스트 함수 실행 뒤 수행(ex. 리소스 해제, 메모리 정리) [OneTimeSetUp] : 모든 테스트 실행 전에 한번만 실행(ex. 공통 초기화 작업) [OneTimeTearDown] : 모든 테스트 함수 실행이 끝난 후, 한번만 실행(ex. 공통 정리 작업) [Ignore] : 해당 테스트 함수 무시[Ignore("테스트를 임시로 비활성화합니다.")][TestCase] : 테스트함수 매개변수 사용[TestCase(1, 2, 3)][TestCase(-1, -2, -3)]publ..
2025.01.21
-
[Nvidia Omniverse] Prim 다루기(생성 및 경로 탐색 등)
from pxr import Usd, Sdf, UsdGeom, Gf#xform 정의xform = UsdGeom.Xform.Define(self.stage, Sdf.Path("/World"))#새로운 path 정의test_path = xform.GetPath().AppendPath("Test")#cube 정의cube = UsdGeom.Cube.Define(self.stage, test_path)#prim 가져오기cube_prim = cube.GetPrim()#path 이용 prim 가져오기cube_prim = self.stage.GetPrimAtPath(test_path)#cube xform 속선 정의cube_xform = UsdGeom.Xformable(cube_prim)# 기존의 TranslateOp가..
2025.01.02
-
[NVIDIA Omniverse] viewport 생성 후 카메라 할당
스크립트viewport = omni.kit.viewport.utility.create_viewport_window("test_viewPort") # 뷰포트에 카메라 설정camera_path = "/World/Camera" #원하는 카메라 경로 입력viewport.viewport_api.camera_path = camera_path실행결과
2024.12.19
-
[NVIDIA Omniverse] 오브젝트 생성 스크립트
소스코드# 스테이지 가져오기stage = omni.usd.get_context().get_stage()#오브젝트 생성 obj_path = f'/World/Object' # stage 기준 path입력obj = stage.GetPrimAtPath(obj_path) if not obj.IsValid(): obj = UsdGeom.Sphere.Define(stage, obj_path) # 구체 오브젝트 생성 obj_xform = UsdGeom.Xformable(stage.GetPrimAtPath(obj_path)) obj_xform.AddTranslateOp().Set((0, 0, 0)) # 모든 오브젝트를 원점에 위치Prim(Object)를 새로 생성할 경우, Transform 의 ..
2024.12.19
-
IFC mesh pyvista 시각화
IFC mesh 모습을 pyvista로 시각화하는 코드는 다음과 같다.import pyvista as pvimport ifcopenshellimport ifcopenshell.geomself.pyvista = pv.Plotter() # 캔버스 정의 self.pyvista.add_axes(line_width=5, labels_off=False) #좌표계 보이게# IFC geometry 설정settings = ifcopenshell.geom.settings()settings.set(settings.USE_WORLD_COORDS, True)shape = ifcopenshell.geom.create_shape(settings, element)mesh = shape.geometryverts = mesh.verts..
2024.09.25
-
[Unity] AR Foundation Depth 거리 값 가져오기 (ARCore)
ARCore에서 Depth API를 통해 Depth Map을 가져올 수 있는 API가 있다.이를 이용하여, 내가 원하는 특정 스크린 좌표의 Depth값을 m 단위로 변환하여 값을 알아보도록 하자.1. AR Occlustion Manager를 통해 Depth map을 받아온다.2. OcclusionManager.TryAcquireEnvironmentDepthCpuImage를 통해 XRCpuImage를 가져온다.3. XRCpuImage.Plane의 데이터(NativeArray Type)에서 내가 터치한 곳의 픽셀의 데이터 값(4개의 byte)을 얻는다.4. 해당 byte값 4개를 가지고, XRCpuImage.format에 따라 거리 값을 가져온다.(convertPixelDataToDistanceInMeter..
2024.05.07
-
Error building Player : Shader error in '~~~' : Couldn't open include file '~~~'
Error building Player : Shader error in '~~~' : Couldn't open include file '~~~' 와 같은 에러가 생겼을 시 해결법 : Library폴더를 삭제하고 재실행 시킨다. - shader 수정 중에 갑자기 이런 에러가 생기면서, 빌드가 불가능한 상태가 되었다. Shader 코드 자체에는 문제가 없었다. 코드 상 문제가 없다고 확신하는데, 에러가 생길 때는 Library폴더에서 무언가가 꼬였을 가능성이 높다. 이런 케이스는 종종 Library폴더 삭제 후 Reimport 시킬 필요가 있다.
2024.03.11
-
stable diffusion SDXL-Turbo 사용하기
https://github.com/Stability-AI/generative-models GitHub - Stability-AI/generative-models: Generative Models by Stability AI Generative Models by Stability AI. Contribute to Stability-AI/generative-models development by creating an account on GitHub. github.com 일단 위 깃허브 repository를 clone해주고, Readme에 있는 설명대로 따라하면 된다. 1. Follow the installation instructions or update the existing environment with ..
2024.03.06
-
[Unity3D] 유니티에 ply파일 불러오기
오늘은 유니티에서 ply확장자 파일을 불러올 수 있는 방법에 대해 알아보려고 합니다. 바로 Unity Gaussian Splatting이라고 하는데요. 어떤 분께서 친히 오픈소스로 올려주신 것을 발견해서 공유합니다. https://github.com/aras-p/UnityGaussianSplatting GitHub - aras-p/UnityGaussianSplatting: Toy Gaussian Splatting visualization in Unity Toy Gaussian Splatting visualization in Unity. Contribute to aras-p/UnityGaussianSplatting development by creating an account on GitHub. githu..
2023.12.22
-
[AI] Stable-Diffusion ComfyUI에서 SDXL-Turbo 모델 사용하기
Stable-Diffuion의 대표적인 UI로는 AUTOMATIC1111과 ComfyUI가 있다. 현재(12월 8일) 기준 AUTOMATIC1111에서 SDXL-Turbo 모델은 공식적으로 지원하지 않고 있기 때문에, 본 포스트에서는 ComfyUI에서 SDXL-Turbo를 사용하는 방법을 다루겠다. AUTOMATIC1111에서 SDXL-Turbo 모델은 여러 설정값을 통해 사용할 수 있으나, 성능이 그다지 좋지 않은 것 같다. GTX 3060 기준으로 512x512 이미지를 생성하는데 15초 정도가 걸린다. ComfyUI는 1초면 생성이 가능해서 거의 실시간 이미지 생성이 가능하다. 1. ComfyUI 설치하기 (참고 사이트) https://github.com/comfyanonymous/ComfyUI#w..
2023.12.08
-
[Unity] Texture 해상도 Resize 및 읽기쓰기 권한 활성화
Texture2D originalTexture = 원하는이미지.sprite.texture; //해상도 1/4로 줄이기(가로 반절, 세로 반절) int newWidth = originalTexture.width / 2; int newHeight = originalTexture.height / 2; //해상도 변경할 텍스쳐 생성 Texture2D resizedTexture = new Texture2D(newWidth, newHeight); //originalTexture resizedTexture로 convert Graphics.ConvertTexture(originalTexture, resizedTexture); //resizedTexture의 읽기 및 쓰기 권한 활성화 resizedTexture.Appl..
2023.11.14
-
[Unity] 부모 자식 간의 OnEnable/OnDisable 관계
위 이미지 같은 부모자식 관계가 있다고 해보겠다. GameObject가 꺼지면 child1, child2의 OnDisable함수가 발동하고, GameObject가 다시 켜지면 child1, child2의 OnEnable함수가 발동한다. 하지만 GameObject가 꺼져있는 상태에서, child1과 child2는 켜져있다고 가정해보자. 그리고 child1과 child2는 Image 컴포넌트를 가지고 있다. 그럼 다음과 같이 child1.activeSelf와 child1.GetComponenet().enabled을 검사하면 값이 어떻게 나올까? 실행시켜보면 모두 true가 나오는걸 확인할 수 있다. 이로 인해, 부모가 OnEnable/OnDisable할 때, 모든 자식의 OnEnable/OnDisable함수..
2023.08.10
-
[Unity] Unity Android 앱 설정창 띄우기
public void ClickSettingButton() { StartCoroutine(OpenAppSetting()); } private IEnumerator OpenAppSetting() { try { using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (AndroidJavaObject currentActivityObject = unityClass.GetStatic("currentActivity")) { string packageName = currentActivityObject.Call("getPackageName"); using (var uriClass = new AndroidJavaClass(..
2023.08.09
-
Unity에서 Android 토스트(Toast) 메세지 사용하기
유니티에서 안드로이드 네이티브 코드를 사용하여 토스트 메세지를 구현하는 코드이다. using UnityEngine.Android; public void ClickToastButton() { ShowToast("토스트 메세지"); } //토스트 메세지 public void ShowToast(string text) { AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject curActivity = unityPlayer.GetStatic("currentActivity"); curActivity.Call("runOnUiThread", new AndroidJavaRunnable(()..
2023.08.09
-
M2MQTT for Unity 비동기 통신(Async-Await)
https://github.com/Eunji-new/M2MqttUnity GitHub - Eunji-new/M2MqttUnity: M2MQTT for Unity_비동기 소켓통신으로 변경_미연결 시, 자동 재연결 M2MQTT for Unity_비동기 소켓통신으로 변경_미연결 시, 자동 재연결. Contribute to Eunji-new/M2MqttUnity development by creating an account on GitHub. github.com 기존 M2MQTT for Unity 오픈소스의 동기프로그래밍 단점을 보완한 버전입니다. 소켓통신을 비동기(BeginConnect)로 변경하였습니다. 이는 비동기 통신으로 소켓 ip 연결 중에 시스템이 정지하지 않고 정상작동합니다. 연결이 끊겼을 경우, ..
2023.05.08
-
[Unity] WebGL 빌드 에러 : BuildFailedException: Incremental Player build failed!
에러의 전문 BuildFailedException: Incremental Player build failed! 더보기 UnityEditor.Modules.BeeBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at :0) UnityEditor.WebGL.WebGlBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/bokken/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs..
2023.04.27
-
[OpenCV For Unity] AR Glass에 OpenCV 기반 Image Tracking 구현
개발 환경 Unity 2020.3.20f1 버전 OpenCV For Unity NReal Light AR Glass(CameraTexture 활용 가능한 AR Glass) OpenCV For Unity에는 WebCam 텍스쳐를 이용하여 특정 이미지를 인식할 수 있는 예제가 존재한다. 이 원리를 이용하여 AR Glass의 카메라를 이용, AR 환경 내에 Image Tracking을 구현해보려고 한다. 우선 NReal을 사용하여 NReal SDK의 NRRGBCamTexture를 WebCamTexture 대신으로 설정하였다. 다른 AR Glass를 이용하더라도 우선 CamTexture를 가져올 수 있는 라이브러리가 있어야 응용이 가능하다. OpenCV for Unity의 WebCam Texture예제에서는 다..
2023.04.03
-
[Unity3D] Async-Await를 이용한 비동기 프로그래밍
예제코드 링크 : https://github.com/Eunji-new/async_TestCode_unity GitHub - Eunji-new/async_TestCode_unity: Unity에서 async-await를 이용한 비동기 프로그래밍 예제 Unity에서 async-await를 이용한 비동기 프로그래밍 예제. Contribute to Eunji-new/async_TestCode_unity development by creating an account on GitHub. github.com 참조 링크(참조 내용을 바탕으로 코드를 제작하였습니다.) : https://kangworld.tistory.com/25 [C#] async await 예제 코드 #2 (+ 동기 비동기의 개념) async awai..
2023.02.14
-
[Unity3D] GameObject와 애니메이션의 관계 + animation event 실행 안되는 이슈
Animation.Play() 해당 게임오브젝트가 비활성화되어있으면 Animation이 실행되지않는다. Animation Play 중 게임오브젝트가 비활성화되면 Animation이 중지된다. 해당 게임오브젝트가 다시 활성화될때 Animation의 나머지 부분이 한번에 실행된다. animator의 keepAnimatorControllerStateOnDisable옵션을 이용하면 비활성화시에도 계속 재생이 가능하다. https://docs.unity3d.com/ScriptReference/Animator-keepAnimatorControllerStateOnDisable.html animator.keepAnimatorControllerStateOnDisable = false; Animation Event 실행 ..
2022.10.28
-
Unity VFX Graph 안드로이드에서 사용 불가 이슈
NReal 글라스에서 이펙트 효과를 연출하기 위해 VFX Graph를 사용하여 테스트. 하지만 vertical line 이슈가 생겼다.(무한한 직선으로 보이는 효과) 이유는 다음과 같다. Graphics API가 OpenGLES이기 때문이다. Vulkan을 메인 Graphics API로 사용한다면 문제가 되지않는다. 일부 Unity 모바일 환경에서는 Vulkan을 지원하지않는 경우가 있기때문에 억지로 Vulkan을 사용할 수도 없다. NReal도 Vulkan API를 지원하지 않기때문에 결론적으로 VFX Graph를 사용할 수 없다. Unity 공식 문서의 VFX Graph 필수 요구사항에도 OpenGLES는 적합하지 않다고 나와있다. https://docs.unity3d.com/Packages/com...
2022.09.19