본문 바로가기

전체 글53

Visual Effect Graph Attributes Attributes 파티클의 색상, 위치, Spawn 시스템이 생성한 파티클 수 등의 시스템의 요소에 연결된 데이터 조각 읽고 쓰기가 가능하며 필요할때만 속성을 저장한다. 쓰기(Write) : Block 사용 ** Update 컨텍스트에서 속성을 쓸때(write) 그 이후의 컨텍스트 (Update 나 Output )에서 속성을 읽을(read)경우에만 시뮬레이션 데이터에 속성이 저장된다. Output 컨텍스트에서 attribute를 쓸 때는 속성을 저장하지 않고 렌더링하는 데만 사용한다. 읽기(Read) : Operator 나 Block 사용 Get Attribute 오퍼레이터 사용하여 데이터를 가져올 수 있다. Set Attribute 블록에서 이전 속성 값에 따라 다른 Composition 모드(Add.. 2022. 2. 25.
Strip Particle System 1. Context Initialize Particle Strip Strip Capacity 스트립 용량 Particle Per Strip Capacity 스트립당 파티클 수 2. Block Increment Strip Index On Start Spawn 컨텍스트의 start 이벤트 트리거될때마다 Strip Index 가 올라간다. stripIndex 는 stop 이벤트가 트리거 되거나 stripIndex 가 Max Strip Count에 도달하면 0을 반환한다. (첫번째 스트립 그룹 인덱스로 돌아감) https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@10.5/manual/Block-IncrementStripInde xOnStart.html#.. 2022. 2. 23.
Unity + OpenCVSharp2 - WebcamTexture 1. OpenCVSharp CvCapture  사용화면이 뒤집혀서 나오는데 원인은 모르겠음 public Material mat; private Texture2D dstTexture; private OpenCVUnity Convert = new OpenCVUnity(); IplImage dst; IplImage capture; private CvCapture cvCapture; CvSize size = new CvSize(640, 480); private void Start() { cvCapture = CvCapture.FromCamera(0); cvCapture.SetCaptureProperty(CaptureProperty.Fram.. 2022. 1. 30.
Unity + OpenCVSharp2 -IplImage를 Texture2D로 변환 1. byte[] 쓰기 byte[] GetRawTextureData() , LoadRawTextureData(byte[] data) public Texture2D srctexture; public Texture2D dstImage; public Material mat; private IplImage src; private CvSize size; private OpenCVMethod Convert; void ConvertImage() { byte[] bytes = srctexture.GetRawTextureData(); size = new CvSize(srctexture.width, srctexture.height); src = IplImage.FromPixelData(size, BitDepth.U8, 4.. 2022. 1. 29.
Task , Parallel, async, await 병렬처리 비동기 처리 차이? 병렬은 작업을 여러개로 나눠 수행하고 하나의 결과로 만드는것 비동기는 각자 작업하고 각자 결과 받기 System.Threading.Task.Task 인스턴스 생성시 Action 대리자(반환형을 갖지 않는 메소드, 익명 메소드, 무명 함수 등)를 넘겨받음 Action someAction = () => { Thread.Sleep(1000); }; Task myTask = new Task(someAction); // 비동기 호출 myTask.Start(); // 비동기 포출이 완료될때 까지 기다림 myTask.Wait(); Task.Run , Task //Task 생성, 실행 한번에 하기 Task.Run(() => { Console.WriteLine("어쩔티비"); }); // 반.. 2022. 1. 10.
Thread ,lock, Monitor 프로세스? 실행파일이 실행되어 메모리에 적재된 인스턴스 스레드? 운영체제가 CPU 에 시간을 할당하는 기본단위 멀티스레드 사용시 장점 - 높은 응답성 - 멀티프로세스 방식에 비해 멀티스레드 방식이 자원 공유가 쉬움. 코드 내 변수를 같이 사용하는것으로 데이터 공유 가능 - 이미 프로세스에 할당된 메모리 자원을 그대로 사용하므로 자원 할당 비용 지불하지 않아도 됨 단점 - 디버깅 - 자식스레드 하나 문제시 전체 프로세스 영향 - 너무 많은 스레드 사용시 작업간 전환이 비용을 많이 소모하므로 성능저하 스레드 상태변화 - Unstarted : 스레드 객체 생성 후 Start() 호출 전 - Running : 스레드 동작중 - Suspended : 스레드 일시 중단. Thread.Suspend()로 상태 돌입,.. 2022. 1. 9.
Unity에서 Firebase쓰기 유니티 셋업https://firebase.google.com/docs/unity/setup Unity 프로젝트에 Firebase 추가  |  Firebase Documentation의견 보내기 Unity 프로젝트에 Firebase 추가 plat_ios plat_android plat_unity Firebase Unity SDK를 활용하여 Unity 게임을 업그레이드 해보세요. Firebase를 Unity 프로젝트에 연결하는 것이 얼마나 간편한지 보여드firebase.google.com 로그 끄기  External Dependancy Manager > Version Handeler > SettingsVerbose Log 체크 해제        구글플레이 연동https://firebase.google.com.. 2022. 1. 6.
플레이스토어 개인정보처리방침 웹 링크 제작 처리방침 생성기 :https://digital.com/privacy-policy-generators/ - https://www.termsfeed.com/?sscid=11k6_13opo : 영어. 무료 호스팅도 된다고함. 구글 사이트 도구 :  url 업로드용https://sites.google.com/new  Google Drive - 모든 파일을 한 곳에서하나의 계정으로 모든 Google 서비스를 Google Drive로 이동하려면 로그인하세요.accounts.google.com 2022. 1. 2.
GPGPU 개념정리 GPU CPU 연산처리방식의 차이가 빡 이해된다. GPGPU 대규모 픽셀데이터 처리를 목적으로 만들어진 GPU를 CPU 처럼 비그래픽 분야에 응용할 수 있도록 프로그래밍하는것을 GPGPU (General Purpose on Ghrapic Processing Units)라고함. CPU 는 코어당성능이 중요한 작업에 알맞음. 큰 캐시 메모리를 사용해서 처리속도가 빠름 GPU 는 코어당 성능은 CPU 보다 낮지만 엄청 많아서 병렬적인 작업에 적함함. GPGPU를 쓰는 소프트웨어 플랫폼 독립 API - CUDA : NVIDA 에서 독자적으로 만든 병렬 컴퓨팅 플랫폼 또는 API - OpenCL : 크로스 플랫폼 병렬 컴퓨팅 API - C++ AMP : GPU 병렬하드웨어 사용하여 C++코드 가속화, Visual.. 2021. 12. 27.
Unity + Realsense 1. 연결 USB 3.0 이상 으로 연결해야한다. 2.0 에 연결할 경우 장치관리자에 보면 기타장치에 뜨고 노란색 에러표시로 드라이브가 설치 안됐다고 뜨는데 이유는 모르겠지만 한번 3.0 이상으로 연결하고 나면 2.0으로 연결해도 realsense viewer 에서 인식이 되긴 한다. https://support.intelrealsense.com/hc/en-us/community/posts/360049330053-Intel-RealSense-LiDAR-Camera-L515-Driver-Problem 근데 유니티에서 쓸때는 3.0만 되는것같다. ExternalException: rs2_pipeline_start_with_config 2. 패키지다운 https://github.com/IntelRealSens.. 2021. 11. 17.
Bezier Curve 이용해서 VR 텔레포트 ray 만들기 1. BezierCurve 1.1 Linear Vector3 CalculateLinearBezier(Vector3 p0, Vector3 p1, float t) { return (1 - t) * p0 + t * p1; } 1.2 Quadratic Vector3 CalculateQuadraticBezier(Vector3 p0, Vector3 p1, Vector3 p2, float t) { return (1 - t) * (1 - t) * p0 + 2 * t * p1 * (1 - t) + t * t * p2; } private void DrawLinearCurve() { for (int i = 1; i < point + 1; i++) { float t = i / (float) point; positions[i .. 2021. 11. 1.
Easing 참고 https://material.io/design/motion/speed.html#easing Material DesignBuild beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.material.iohttps://easings.net/#easeInSine Easing Functions Cheat SheetEasing functions specify the speed of animation to make the movement more natural. Real objects d.. 2021. 10. 22.
Rider VisualStudio keymap 설정 alt + 화살키 로 줄 이동1. ctrl+alt+s  설정창 열기2 . keymap 선택 MainMenue > Code > Foldig 으로 들어가서Move Line Down , Move Line Up 단축키 설정 2021. 10. 20.
Unity Graphics Programing Series https://github.com/IndieVisualLab/UnityGraphicsProgram mingSeries/blob/master/README.md 2021. 8. 14.
Thread Identification System values 스레드 ID란 ? 컴퓨트 쉐이더는 자료구조를 입력받아서 자료구조를 출력하는데, 스레드 ID 는 그런 자료구조들을 다양한 방식으로 indexing (색인을 지정해서 특정 요소에 접근하는 것) 하는데 사용된다. SV_GroupID 각 스레드 그룹에 배정된 ID (group ID) G₁ × G₂ × G₃ 이면 그 범위는 ( 0 , 0 , 0 ) 에서 ( G₁-1, G₂-1,G₃-1) 가 된다. 지역 저장소 메모리를 색인화하는데 사용 SV_GroupThreadID 스래드 그룹 안의 각 스레드에 배정된 ID (group thread ID) 스레드 그룹의 크기가 X × Y × Z 라고 할때 ID 범위는 ( 0 , 0 , 0 ) 에서 ( X-1, Y-1, Z-1) 이 된다. = 한 스레드 그룹 안의 특정 스레드 하나.. 2021. 8. 13.