일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- working set
- URP
- 개인 바이트
- Cell Shader
- VR
- URP로 변경
- Three(Two) Tone Shading
- ASW(Application SpaceWarp)
- 메모리 누수
- OculusMotionVectorPass
- 작업 집합
- C언어
- Private Bytes
- AppSW
- 가상 바이트
- 프로그래밍 기초
- Virtual Byte
- ColorGradingLutPass
- Toon Shader
- Cell Look
- 벡터
- 게임 수학
- Rim Light
- Cartoon Rendering
- Specular
- Windows Build
- 3d
- Today
- Total
목록Unity (90)
WinCNT
서론 퍼포먼스 체크한 것을 Slack으로 보내서 저장하는 일에 착수했다 아무것도 모르는 필자에게 사수가 “해줘”를 시전했지만, 레퍼런스가 없으면 너무 빡센 일이 될 게 분명해서 꼬치꼬치 캐물으니 다른 프로젝트에서 비슷한 처리를 하는 파일을 소개시켜줬다 왜 처음부터 알려주지 않는거지? Slack에서 토큰 취득하기 우선은 Slack API에서 APP을 만들고 토큰을 받아야 한다는 것 같다 https://api.slack.com/apps Slack API: Applications | Slack Your Apps Don't see an app you're looking for? Sign in to another workspace. api.slack.com 일단 기능은 봇을 선택 OAuth & Permission..
발생한 이슈 최적화 작업을 맡은 프로젝트에서, VR의 어플리케이션 설정이 적용되지 않는 이슈가 발생했다 결론부터 말하자면 원인은 어이 없을 정도로 매우 단순했다 하지만 자계(…)의 의미를 담아 글을 남기고자 한다 이슈 상세 성능 테스트를 위해 프레임을 72에서 120으로 바꾸려고 했는데, 잘 되지 않았다 원인이 보이지 않아서 다양한 가설을 세워서 검증해봤다 가설 1 : 설정 방법이 틀렸나? 이를 검증하기 위해 새로운 프로젝트를 만들어서 간단한 VR씬으로 검증해봤다 void Start() { #if ENABLE_VR && !UNITY_EDITOR // VRC Refresh Rate // OVRPlugin.systemDisplayFrequency = 72; // OVRPlugin.systemDisplayFr..
서론 어느 VR 게임의 프로젝트를 최적화 작업을 하던 도중, UI가 무겁다는 사실을 알게 되었다 (무거운 이유는 기회가 있다면 따로 작성하려고 한다) 하지만 문제는 필자 자신이 아직 유니티의 UI에 대해서 잘 모른다는 것! …사실 UI 자체를 잘 모른다는 느낌도 든다 아무튼 최적화 작업을 위해 우선 유니티의 UI 시스템에 대해 공부하기로 했다 참고로 Unity에는 UI 툴킷, Unity UI 패키지(uGUI), IMGUI라는 3개의 UI 시스템이 있다고 한다 사용자 인터페이스(UI) 생성 - Unity 매뉴얼 사용자 인터페이스(UI) 생성 - Unity 매뉴얼 Unity는 Unity 에디터에서 제작된 애플리케이션과 Unity 에디터를 위한 사용자 인터페이스(UI)를 생성하는 데 사용되는 다음의 세 가지 ..
발생한 이슈 SRP Batcher가 작동하지 않아서 모든 오브젝트를 하나씩 그리고 있는 상황이 발생했다 이슈 상세 직접적인 원인 자체는 단순했다 라이트 맵 구현을 위해 셰이더에 Meta Pass를 추가했는데 그로 인해 CBuffer에 문제가 생겨서 SRP Batcher의 호환성이 깨져버린 것이었다 발생 원인 #include"UnityStandardMeta.cginc" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl" //#include "Packages/com..
서론 유니티에서 UI나 Sprite Renderer 등을 새로 만들면 디폴트의 머티리얼(셰이더)가 설정된다 그건 매우 고마운데 아쉽게도 그 소스 코드는 바로 볼 수 없게 되어 있었다 그래서 방법이 없나 찾다가 알게 된 내용을 정리하고자 한다 디폴트 셰이더의 코드는 바로 볼 수 없다 애초에 필자가 왜 디폴트 셰이더의 코드가 궁금했냐고 하면 어김 없이 SRP Batcher 때문이었다 SpriteRenderer를 추가했는데 SRP Batcher가 작동하지 않는다는 걸 알게 되었다 그래서 설정된 머티리얼과 셰이더를 확인해보니 다음과 같았다 아니나 다를까 SRP Batcher가 not compatible이었다 그래서 평소처럼 원인을 찾기 위해 마우스 우클릭 → edit shader를 눌렀으나… 평소랑 다르게 소스..
서론 URP에서는 기존의 방식으로 Overdraw를 확인할 수 없길래 다른 방법이 있나 찾아봤던 내용을 정리하고자 한다 Overdraw Overdraw란 화면의 한 픽셀에 두 번 이상 그리는 것을 의미한다 사실 좀 더 다양한 정의가 있는데 아래의 참고 사이트로 대체한다 Overdraw Problem On Opaque Object Overdraw Problem On Opaque Object I want to ask more specifically about overdraw. Lets say you have a fairly simple character mesh, with a typical singe pass opaque shader which has... forum.unity.com 일반적으로 Overdr..
발생한 이슈 처음 VR기기(Oculus Quest 2)로 간단한 테스트용 씬을 만들었을 때 발생한 이슈를 정리해봤다 딱히 무거운 처리가 없는데도 불구하고 VR기기에서 실행해보면 GPU Utilization(GPU U)가 95 언저리에, FPS도 상당히 떨어진 상태였다 이슈 상세 프레임 디버그를 살펴보면 FinalBlit 이전까지는 GPU 사용량이 정상적이지만, FinalBlit에서 갑자기 90퍼 이상으로 급증했다 FinalBlit 이전 FinalBlit 단계 발생 원인 Oculus XR Plugin의 OptimizeBufferDiscards라는 설정이 있는데 이 설정에 체크를 안 한 것이 원인인 것 같다 왜 체크를 안 해서 해당 이슈가 발생했는지까지는 아직 조사하지 않았다 참고로 해당 설정에 대한 설명은..
서론 현재 수정 작업을 맡은 셰이더가 있는데, Emissive를 추가하려고 보니 Emissive Color 프로퍼티가 없었다 사수에게 확인해보니 이 셰이더는 Emissive는 HDR 텍스처로 컨트롤할 방침이라는 얘기를 들었다 그럼 뭐다? 구현은 내가 찾아서 해야 한다는 거지… HDR Texture 테스트용 HDR Texture는 아트 팀장님이 포토샵으로 만들어주셨다 포토샵의 컬러 피커로 Cyan색에 강도를 추가한 단색 텍스처이다 사실 아트 팀장님께 부탁하기 전에 혼자서 Photopea에서 만들어 보려고 했지만, HDR 관련 항목을 찾지 못해 실패했다 이게 될지 안 될지는 해봐야 안다… DecodeHDR 함수와 _HDR HDR 파일을 임포트 해서 텍스처로 사용하면! 놀랍게도 아무 일도 일어나지 않는다… 이..
서론 라이트 맵을 커스텀 셰이더에서 사용하는 것은 레퍼런스도 많고 Unity의 함수를 편하게 가져다 사용할 수도 있기에 이전에 삽질했던 것에 비해서 어렵지 않았다 물론 깊이 파면 어렵겠지만 이미 내 HP는 0이기 때문에 파지 않으려고 한다… 라이트 맵의 텍스처 채널 라이트 맵을 구우면 각각의 게임 오브젝트에 알맞은 라이트 맵이 할당된다 할당되는 UV의 채널은 UV1이며, Mesh 클래스의 프로퍼티로는 uv2인데(즉 Mesh.uv2), 아무튼 TEXCOORD1에 할당된다고만 알고 있으면 될 것 같다 Unity - Manual: Generating lightmap UVs Unity - Manual: Generating lightmap UVs Lightmap UVs introduction Generating ..
발생한 이슈 ※ 이전에 작성한 글과 겹치는 부분이 많지만 발생한 이슈를 좀 더 남기고 싶어서 따로 정리함 라이트 맵을 Bake하는 Asset(Bakery)를 현 프로젝트에 적용하던 중, 라이트 맵의 결과에 위화감이 있다는 사실을 깨달았다 이슈 상세 라이트 맵 자체는 제대로 만들어지고 있는 것 같았다 또한 임시로 새로 만 프로젝트에서 비슷한 씬을 만들어서 실험해봤는데 비슷한 라이트 맵이 만들어졌으며, 적용 자체도 문제가 없는 듯 했다 발생 원인 원인을 찾기 위해 온갖 삽질하였으나 좀처럼 찾지 못 해 좌절하던 무렵… 우연히 라이트맵 텍스처의 텍스처 타입이나 설정이 이상하다는 걸 알게 되었다 이 설정을 살짝 조절해보니 그나마 정상적으로 표현되었다 발생 원인 상세 당연히 왜 이러한 현상이 일어나는냐에 대해서도 ..