일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- URP로 변경
- ColorGradingLutPass
- 작업 집합
- Toon Shader
- Cell Shader
- working set
- Cartoon Rendering
- URP
- Specular
- Private Bytes
- 벡터
- 메모리 누수
- Three(Two) Tone Shading
- OculusMotionVectorPass
- 3d
- Rim Light
- 게임 수학
- 가상 바이트
- VR
- C언어
- Windows Build
- Cell Look
- Virtual Byte
- 프로그래밍 기초
- AppSW
- ASW(Application SpaceWarp)
- 개인 바이트
- Today
- Total
목록2024/02 (7)
WinCNT
서론 배경 아티스트 분께서 Skybox에 Fog를 표현하고 싶다고 요청한 적이 있다 배경 오브젝트에는 Fog가 걸리지만 그 뒤의 Skybox에는 Fog가 생기지 않아서 위화감이 생긴다는 이유였다 당시의 필자는 Fog를 그 존재밖에 몰라서 대충 왜 그런지에 대해서 뇌피셜로 얘기하며 대응되는 셰이더를 만들겠다는 말을 남기고 호다닥 그 자리에서 도망쳤었다 다행히 뇌피셜로 떠든 게 대부분 사실이었다 우선은 Fog가 어떻게 적용되는지 알아보자 Default의 스카이박스는 물론이고 내장된 다른 Skybox 셰이더도 유니티에서 바로 볼 순 없다 그렇다고 아예 방법이 없는 것은 아니지! Download Archive Download Archive Download Archive unity.com 예전에도 한 번 작성한 ..
서론 여태까지 필자는 포스트 프로세싱을 위해서는 최소 4개의 버텍스를 가진 쿼드가 있어야 한다는 고정관념에 빠져 살아왔다 하지만 매우 충격적이게도 단 3개의 버텍스, 즉 삼각형으로 풀 스크린의 쿼드를 대신할 수 있다는 것을 알아버리고 말았다 이름하여 Full Screen Triangle!! 이 글은 풀 스크린 트라이앵글에 대해서 알게 된 내용을 정리한 글이다 참고로 Full Screen Triangle이란 단어(유니티의 함수 이름에서 발췌)는 여태까지 알고 있던 Full Screen Quad와 구별하기 위해서 사용하고 있지만, 보통은 둘 다 Full Screen Quad라고 부르는 것 같다 Blit.hlsl 물론 이 방법을 필자가 스스로 생각해낸 건 아니고 아래의 소스 코드에서 사용되고 있었다 com.u..
서론 예산 문제로 아트팀에서 적은 코스트로 몬스터의 다양성을 늘리고 싶다는 과제가 발생했었다 그래서 해결을 위해 셰이더에 팔레트 스왑 기능 추가해봤다 참고로 팔레트 스왑이란 이런 느낌 https://namu.wiki/w/%ED%8C%94%EB%A0%88%ED%8A%B8%20%EC%8A%A4%EC%99%91 팔레트 스왑 Palette Swap 게임 및 애니메이션에서 색 차분 을 컴퓨터로 구현하는 방법. 부족한 메모리를 아끼는 방법이 namu.wiki 당연히 옛날 하드웨어에서 사용하던 진정한 의미의 팔레트 스왑은 아니고 비슷한 효과를 가지는 셰이더을 만들 뿐이다 Blend modes 선정 사실 옛날의 팔레트 스왑도 아니고, 단순히 색을 바꾸기 위해서는 마스크와 셰이더에서의 간단한 계산 추가로 구현할 수 있을..
발생한 이슈 Directional Light가 없는 Scene에서 매우 강한 노란색의 Emission이 발생하는 이슈가 발생했다 미치고 팔짝 뛸 노릇인게 Unity 2021.3.10f1 Pro에서는 해당 이슈가 발생하지 않았는데, Unity 2021.3.10f1 Personal에서는 발생한다는 점이다… 이슈 상세 다음은 해당 이슈의 스크린샷인데, 가운데에 있는 디폴트 Sphere가 엄청나게 노란색을 뿜어내는 것을 볼 수 있다 사실 노란색을 뿜어내는 것 자체는 포스트 프로세싱 때문이지만, 그걸 끄더라도 렌더링이 정상적이지 않다는 것을 볼 수 있다 발생 원인 해당 이슈의 근본적인 원인까지는 사간 관계상 찾지 못 했다 하지만 직접적인 원인과 해결책은 사수의 도움으로 어떻게든 특정할 수 있었다 직접적인 원인은 ..
서론 전에 커스텀 ShaderGUI를 구현하는 법을 작성한 적이 있었다 https://wincnt-shim.tistory.com/371 Unity에서 커스텀 ShaderGUI를 구현해보자! 그 첫번째 서론 이번에는 Unity에서 커스텀 ShaderGUI를 구현해보기로 했다 ShaderGUI란 특정 셰이더의 머티리얼에 대한 Inspector의 UI를 제작할 수 있게 해주는 클래스라고 생각하면 될 것 같다 이 글에 구현하면 wincnt-shim.tistory.com 그 글을 작성한 뒤로 새롭게 알게 된 방법들이 있어서 추가로 정리하고자 한다 그리고 셰이더 키워드를 On/Off하는 방법도 겸사겸사 정리하고자 한다 ShaderGUI의 존재 의의를 뒤흔드는 MaterialPropertyDrawer 사실 간단한 U..
서론 많은 게임들은 Metallic Map이나 AO Map과 같이 색상 값이 아니라 0~1의 값만 필요한 맵의 경우, 하나의 텍스처로 합치곤 한다 이렇게 텍스처를 합치면 성능상으로 크게 2가지 이점을 얻을 수 있는데, 하나는 메모리를 절약할 수 있다는 점이고, 다른 하나는 텍스처의 샘플링에 의한 부하를 줄일 수 있다는 점이다 뭐 그러한 이론적인 이야기를 제처두고, 실제로 VR기기(Oculus Quest2)에서 텍스처 샘플링에 의한 부하가 어느 정도인지는 직접 해보지 않으면 모르기 때문에 대략적인 방법으로 검증해봤다 사실 사수가 시켰다 사족) 텍스처 컴바인으로 인한 메모리를 절약 사실 텍스처의 원본 이미지(png)의 경우, 채널별로 나누면 용량이 줄어든다 하지만 실제로 게임을 빌드할 때의 텍스처의 용량은 ..
서론 이번에는 카메라와 오브젝트가 가까워졌을 때, 디더링을 통해 오브젝트를 반투명처럼 보이게 만드는 셰이더에 대해서 정리하고자 한다 특허에 대한 얘기를 듣기도 했고, 왜 이러한 이런 기법을 쓰느냐에 대해서도 제법 정리할 보람이 있었다 여기서 말하는 Dithering 셰이더란? 사실 디더링은 여러 분야에서 여러 의미로 사용된다 음향에서도 사용되고 컴퓨터 그래픽 분야에서만 봐도 8비트/16비트 컴퓨터용 게임에 자주 사용된 기법이다 하지만 여기서 다룰 디더링이란 픽셀을 일정 패턴으로 폐기해서 그물망처럼 만들어서 반투명의 효과를 내는 기법을 말한다 참고로 해당 기법은 일본에서는 보통 디더링, 디더 빼기 등으로 불리지만, 디더링을 통한 반투명 표현을 콕 찝어서 말할 때는 Screen-Door Transparenc..