일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- VR
- Cartoon Rendering
- URP로 변경
- working set
- Specular
- 개인 바이트
- Rim Light
- 작업 집합
- Cell Look
- 프로그래밍 기초
- Windows Build
- Toon Shader
- Virtual Byte
- URP
- AppSW
- 3d
- 게임 수학
- ColorGradingLutPass
- 벡터
- ASW(Application SpaceWarp)
- C언어
- Cell Shader
- Three(Two) Tone Shading
- Private Bytes
- 메모리 누수
- 가상 바이트
- OculusMotionVectorPass
- Today
- Total
목록Unity (90)
WinCNT
서론 유니티에는 비동기 처리를 위한 몇 가지 기법들이 존재한다(멀티 스레드인지는 차치하고) 대표적인 것이 바로 Coroutine, Task, UniTask이다 정말 단순하게 설명하자면 Coroutine는 유니티에서 제공하는 비동기 처리 기법이고, Task는 C#(5.0 이상)에서 제공하는 비동기 처리 기법이다 UniTask는 Task를 Unity에서 효율적으로 사용할 수 있게 Cysharp(Cygames의 자회사)에서 만든 라이브러리라고 보면 될 것 같다 이번에는 UniTask를 설치하고 간단히 사용해본 내용을 정리해보고자 한다 근데 굳이 UniTask를 써야 함? 결론부터 말하자면 굳이 UniTask를 쓰는 게 낫다 필자도 이번에 조사하면서 알게 되었는데 여러 메리트가 있었다 우선 UniTask는 코루..
서론 유니티를 2021.3에서 2022.3으로 버전하던 도중, 버전 업 가이드에 Navigation and Pathfinding이 바뀌었다는 문구가 있었다 Navigation and Pathfinding is moving from the Unity core to the AI Navigation package 조금 조사해보니 예전부터 사용된 빌트 인 네이게이션 시스템도 있는 것 같고, Unity 2022.2 이전이지만 실험적 패캐지로써 사용하는 경우도 있는 것 같았다 (심지어 따로 깃허브에서 소스를 받아서 쓰는 경우도 있었음) 필자의 경우 Unity를 버전 업하니 com.unity.ai.navigation가 1.0.0-exp.4에서 1.1.4로 변경되었다 문제는 그로 인해 사용법과 인터페이스도 좀 바뀐 것..
서론 Unity 카테고리에 작성할 건 아닌 것 같지만 최종적으로는 Unity와 같이 쓸 예정이니 일단 여기에 정리해본다 PowerShell 스크립트가 있으니 금방할 수 있을 줄 알았는데 역시나 많은 삽질이 있었다(…) 이번에 작성한 Github Actions의 기본 구조 Github Actions에 대한 자세한 설명은 훨씬 좋은 글이 많으니 사용한 부분에 대해서만 간략하게 정리해 가려고 한다 job과 step의 이름은 Action의 Summary 표시되니 잘 설정하는 게 좋다 참고로 필자의 경우 runs-on: [ self-hosted ]에서 설정된 빌드 머신은 Windows 운영 체제이다 (GitHub Actions 작성 전에 PowerShell이나 CMD로 테스트한 이유) # Github Action..
서론 신 기능이라기에는 좀 시간이 지났지만, 오큘러스에는 Application SpaceWarp (줄여서 AppSW, 혹은 ASW)라는 프레임 보간 기능이 있다 이 기능을 사용하면 VR기기가 32fps를 무려 72fps로 보간해서 출력해준다!! 이 기능을 사용하기 위해서는 쉐이더에 모션 벡터 패스가 있어여 하며, MotionVectors 패스의 아웃풋이 이상하면 AppSW의 프레임 보간도 이상하게 된다 그래서 디버깅을 위해 VR 기기에서 MotionVectors 패스의 아웃풋을 간단하게 확인하는 디버그 모드를 제공하는데, 예전에 한 번 쓴 적이 있었지만 따로 정리해두지 않아서 아쉽게도 까먹었다 …가 이번에 다시 알게 되서 제대로 정리해둘까 한다 주의점 VR 기기에서 MotionVectors 패스의 아웃풋..
서론 우여곡절이 있었으나 아무튼 라이트 맵를 Bake하는 에셋(Bakery)은 도입할 수 있었다 https://wincnt-shim.tistory.com/357 유니티의 Bakery(라이트 맵 생성 에셋) 적용기 서론 Bakery라는 에셋을 적용하면서 삽질했던 것을 정리해봤다 참고로 Bakery는 라이트 맵을 생성해주는 에셋이며 아래의 페이지에서 구입할 수 있다 Bakery - GPU Lightmapper Bakery - GPU Lightmapper | 레벨 wincnt-shim.tistory.com 하지만! 여기서 끝이 아니다!! 라이트 맵의 확인을 위해 Unity의 Lit 셰이더(사실 조금 다름)로 확인했지만 프로젝트에서 실제로 사용할 셰이더는 다른 셰이더이기 때문! 즉, 커스텀 셰이더의 머티리얼을 ..
서론 이번에는 Unity에서 커스텀 ShaderGUI를 구현해보기로 했다 ShaderGUI란 특정 셰이더의 머티리얼에 대한 Inspector의 UI를 제작할 수 있게 해주는 클래스라고 생각하면 될 것 같다 이 글에 구현하면서 알게 된 내용을 정리하고자 한다 커스텀 셰이더 GUI를 구현하면 좋은 점? 어디까지나 개인적 의견이지만… 역시 최고의 장점은 머티리얼의 프로터티를 보기 좋게 정리할 수 있다는 점이라고 본다 위는 URP의 디폴트 Lit 셰이더인데 토글, 체크 박스, 셀렉트 박스 등으로 깔끔하게 정리된 것을 볼 수 있다 두번째로는 커스텀 GUI를 통해서 셰이더의 키워드를 설정할 수 있게 된다는 점이다 즉 셰이더에서 #pragma multi_compile과 #pragma shader_feature 등에 ..
서론 CMD(Command Prompt)의 bat파일을 완성해서 달성감에 젖어있을 때, 회사의 빌드 머신은 PowerShell 위주로 돌아간다는 것을 알게 되었다 조금 살펴보니 bat파일의 내용을 못 쓸 것은 아니었지만, 다른 Github Actions 설정들은 전부 PowerShell로 되어 있었기에 이에 맞추기로 하였다 즉, 이번 글은 CMD의 bat파일을 PowerShell로 바꾸면서 발생한 삽집들을 정리한 글이다 하지만 사실 명령어 대부분은 호환됩니다 소제목 그대로 CMD의 명령어는 대부분 호완이 되기 때문에 그대로 사용해도 상관 없다고 한다 역시 Microsoft야! 예를 들어 PowerShell 스크립트에서 Write-Output 대신에 CMD의 echo를 써도 정작 작동하고, Set-Loca..
서론 이번 작업은 Github Actions을 통한 테스트 자동화의 사전 준비라는 느낌이다 물론 테스트 자동화라고 해도 딱히 거창한 것은 아니고, 이번에 할 것은 특히 더 그렇다 아무튼 이번에는 CMD(Command Prompt), 정확히는 bat파일로 오큘러스2의 VR기기를 여러 모로 조작하는 것이 목표일 뿐! 그를 위해서는 ADB(Android Device Bridge)를 사용할 필요가 있다는 것을 알게 되었고, 조사와 시행착오를 통해 알게 된 내용을 정리하고자 한다 adb.exe가 있는 폴더로 이동하자! adb.exe는 자주 사용할 것이기 때문에 아예 처음부터 adb.exe가 있는 폴더로 이동하기로 했다 (물론 환경 변수 등을 설정했다면 딱히 필요 없겠지만) 다음은 예제이다 @echo off @RE..
서론 SpriteRenderer인 오브젝트는 SRP Batcher가 작동하지 않기에 잠깐 조사했던 내용을 정리해봤다 이번에는 결론이 명확하기에 간략하게 정리하려고 한다 Objects have different MaterialPropertyBlocks set 프레임 디버그에서 확인해보면 SpriteRenderer인 오브젝트는 “Objects have different MaterialPropertyBlocks set”라는 문구가 뜨면서 SRP Batcher가 작동하지 않는 것을 볼 수 있다 MaterialPropertyBlock이란? MaterialPropertyBlock은 머티리얼은 같지만 프로퍼티가 약간 다른 오브젝트(예를 들어 색상만 다른 경우 등)를 그릴 경우 사용하는 API이다 Unity - Scr..
발생한 이슈 툴바에 메뉴를 추가해서 장면 전환과 재생(과 그 외 기타 등등)을 하는 기능을 만들던 중에 발생한 이슈이다 장면 전환과 재생을 따로 실행하는 건 간단하고 문제도 없었다 그런데 장면 전환과 재생을 스크립에서 동시에 실행할 경우, Lighting(조명) 처리가 제대로 작동하지 않았다 사실 이 부분은 조금 애매한 데, Scene Load 등으로 장면 전환을 해도 바로 바뀌는 것은 아니므로, 해당 이슈는 플레이 모드 중에 장면을 전환해도 일어날 것으로 예상된다 (비슷한 이슈들이 대부분 그런 경우였음) 이슈 상세 다음과 같이 Directional Light가 없는 씬이 있다(기본 Lit 머티리얼) 그 씬을 열고 플레이하는 메뉴도 있다 [MenuItem("Test/Open Scene")] public ..