일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 메모리 누수
- 프로그래밍 기초
- URP로 변경
- Toon Shader
- URP
- 3d
- ColorGradingLutPass
- Windows Build
- 개인 바이트
- 작업 집합
- 게임 수학
- Three(Two) Tone Shading
- AppSW
- Cell Shader
- 가상 바이트
- C언어
- Cartoon Rendering
- ASW(Application SpaceWarp)
- OculusMotionVectorPass
- VR
- Rim Light
- 벡터
- Specular
- working set
- Virtual Byte
- Cell Look
- Private Bytes
- Today
- Total
목록Unity (90)
WinCNT
발생한 이슈 아트 팀에서 Normal Map를 적용하면 다음과 같이 격자 형태가 출력된다는 제보가 있었다 이슈 상세 특정 노멀 맵에서만 문제가 발생하고 있었다 또한 Unity의 Lit 머테리얼에서도 같은 이슈가 발생하고 있었기 때문에 셰이더 등의 문제도 아닌 것으로 보였다 텍스처의 퀄리티나 압축 설정 등을 변경해봤으나 아무런 변화가 없었다는 얘기도 들었다 발생 원인 원인은 노멀 맵 텍스처의 설정이 맞긴 했다 정확히는 압축 포맷(Compression)이 퀄리티가 낮은 쪽으로 설정되어 있었다 아트 팀에서 설정을 바꾼게 안 통했던 이유는… Android 쪽 설정으로 Override되어 있었기 때문이었다 해결법 안드로이드 쪽 Format를 바꾸거나, Override For Android 체크를 해제하고 Defa..
서론 일종의 Baking Tool과 같은 스트립트를 만들고 있다 물론 방법은 1도 몰랐기 때문에 조사해가면서 진행 중인데, 알게 된 내용 하나씩 정리해보려고 한다 우선은 Texture를 PNG파일로 저장에 대해서다! Texture를 PNG파일로 저장 뭐가 되었든 최종적으로는 Texture를 PNG파일로 저장하는 마무리가 필요할 것이다 다행히도 이 부분은 인터넷에 레퍼런스가 많았다 핵심 키워드는 Graphics.Blit와 Texture2D의 ReadPixels()과 EncodeToPNG()인 것 같다 실험삼아 만들어 본 함수는 다음과 같다 private void SaveBakeResultToTexture() { RenderTexture buffer = new RenderTexture( textureSize..
버텍스 컬러에 별도의 정보를 스크립트를 미리 Bake하려는 작업을 하게 되었다 우선 스크립트에서 버텍스 컬러를 변경하는 방법을 찾아봤는데 실제로 사용했던 방법을 간단히 정리해보고자 한자 Mesh.SetColors() 결론부터 말하자면 변경하려는 Mesh의 SetColors()이란 함수를 사용하면 된다 SetColors()의 파라미터는 각 버텍스에 대해 지정할 색의 배열이다 (즉, 색의 배열의 크기는 Mesh의 버텍스 개수와 같아야 한다) 참고로 유니티에서 버텍스 컬러의 정보는 MeshFilter의 sharedMesh에 있다 예를 들면 다음과 같다 // GameObject의 Mesh에서 sharedMesh를 취득 Mesh mesh = GetComponent().sharedMesh; // 색 배열 Color..
발생한 이슈 Physics.queriesHitBackfaces를 true로 설정했음에도 Raycast가 Colldier(특히 MeshCollider)의 BackFace를 감지 못 하는 이슈가 발생했다 이슈 상세 이슈는 버텍스마다 특정 방향으로 Ray를 날려서 충돌하는 오브젝트가 있으면 그 거리를 버텍스 컬러에 저장하는 스크립트를 만드는 도중 발견되었다 아래의 이미지는 그 스크립트의 결과물이다(큐브는 옆으로 살짝 치움) 예상대로라면 오브젝트의 내부에도 흰색이 나와야 하는데 안 나오고 있다 Physics.queriesHitBackfaces = true; bool isCollision = Physics.Raycast(targetVertex, forward, out RaycastHit raycastHit, ma..
서론 OVR Metrics Tool에 대해서는 Application SpaceWarp(AppSW)라는 오큘러스의 신기술(발표된지는 좀 지났지만)에 대해서 조사하던 도중 알게 되었다 전에 VR기기에서의 퍼모먼스 테스트에 대해서 ‘혹시 VR기기 상단에 그래프나 수치 같은 거 띄워서 하는 거 아님?ㅋㅋ’이라고 생각한 적이 있었다 그런데 Application SpaceWarp 도큐멘트를 보다보니, “퍼모먼스의 스테이터스는 OVR Metrics Tool로도 볼 수 있습니다”라면서… 당장 도입해봤다 OVR Metrics Tool의 도입 과정 OVR 매트릭스 툴은 오큘러스 모바일 디바이스에 관한 다양한 퍼포먼스 수치들을 실행 중인 앱 화면 상에 표시해주는 툴이다 이번에는 무지성으로 도입 해봤는데 다행히 잘 되었다 일..
RenderDoc for Oculus 도입 서론 저번에 이어서 계속해서 개발 환경을 구축하고 있다 이번의 목표는 RenderDoc for Oculus를 도입하는 것! 유니티 프로파일러의 설정과 동시에 진행했었는데 마찬가지로 좀 많이 삽질하다가 후반에 도움을 받아서 해결했다 RenderDoc for Oculus의 다운로드 일단 다음의 사이트에서 RenderDoc for Oculus를 다운로드 했다 GPUプロファイリングにRenderDoc for Oculusを使用する: Unity | Oculus開発者 GPUプロファイリングにRenderDoc for Oculusを使用する: Unity | Oculus開発者 developer.oculus.com 인스톨 파일이 있길래 설치해줬다 RenderDoc for Oculus 어..
서론 저번에 이어서 계속해서 개발 환경을 구축하고 있다 이번의 목표는 Oculus에서 게임을 실행하면 Unity의 프로파일러가 작동하게 하는 것! 마찬가지로 처음에는 알려주는 사람은 없어서(…) 좀 많이 삽질하다가 후반에 도움을 받아서 해결했다 다만 되돌아보니 딱히 어려운 것이 없는 작업이었다 대부분의 삽질이란게 이런 법이겠지 개발 모드로 빌드하기 삽질의 원흉1 애초에 유니티를 거의 써본 적 없는 필자라서 이런 부분의 지식이 없었다 개발 중인 프로젝트를 억지로 빌드해서 삽질하기도 했는데 그건 생략하자 물론 필자만 몰랐을 뿐, 유니티로 모바일 게임 개발한 사람이라면 대부분 알고 있을 내용이겠지만… 아무튼 Unity의 공식 문서를 보면서 설정해보자 Profiling your application Unity ..
급히 유니티의 컴포넌트를 하나 만들게 되었다 필요할 때 실행하는 컴포넌트였기 때문에 인스펙터에 버튼을 추가하고 싶었다 그런데 유니티 Button이라고 검색하니 버튼 컴포넌트에 대한 내용만 나와서… 인스펙터에 버튼 표시하기로 검색하니 적당한 내용이 나오길래 실험삼아 구현해보고 대략적인 소스 코드를 정리해두려고 한다 Unity Inspector에 버튼 추가하기 결론부터 말하자면 각각 MonoBehaviour와 Editor를 계승한 스크립트가 필요했다 실제로 실행할 처리를 구현한 스크립트는 다음과 같다 using UnityEngine; public class Test : MonoBehaviour { public void OnClikedCustomButton() { Debug.Log("Click"); } } 컴..
서론 본격적인 개발에 참여하기 앞서 개발 환경을 구축하기로 했다 우선은 Oculus용 빌드를 만들어 보기로 했다 아쉽게도 알려주는 사람은 없었기 때문에(…) 혼자 해보면서 깨달았던 점을 정리하고자 한다 회사에서 뭔가 알려주는 사람이 없는 느낌이 들어... Android Build Support 모듈 설치 오큘러스 퀘스트는 안드로이드 기반이므로 Android Build Support 모듈이 필요하고 한다 그래서 유니티 허브에서 해당 버전의 모듈을 설치해줬다 설치가 끝났으면 프로젝트를 껐다 켜고 Project Settings에서 Oculus에 체크를 하자 파일 → 빌드 설정에 안드로이드 빌드 설정이 추가된 걸 확인했으면 Switch Platform를 눌러준다 Switch Platform가 끝났으면 플레이어 ..
발생한 이슈 간단한 포스트 프로세싱을 만들어서 확인보고자 OnRenderImage()이란 API를 이용해서 스크립트를 만들었는데 작동되지 않았다 이슈 상세 쉐이더나 머티리얼 쪽은 문제가 없는 것 같다… 발생 원인 사실 원인은 간단했는데 URP에서는 OnRenderImage()를 사용할 수 없었기 때문이었다 해결법 처음에는 ‘그럼 URP 문서를 찾으면 나오겠지~’라고 간단히 생각했었다… 그런데 놀랍게도 URP에서의 커스텀 포스트 프로세싱은 추가된지 얼마 안 된 것 같다 URP 14(Unity 2022.2)의 새로운 기능 소개에서 찾아볼 수 있다 What's new in URP 14 (Unity 2022.2) What's new in URP 14 (Unity 2022.2) | Universal RP | 14..