본문 바로가기
sRGB 모드에서의 알파값 연구 이전 포스팅에 따르면 sRGB 모드여도 A 는 리니어 모드라는 가정을 내린다. 그럼 정말인가 알아보자. 위에가 RGB 아래가 A 이다. 확실히 아래쪽이 Linear 그라디언트의 특성을 보인다. 그래서 그대로 출력해 보았다. 확실히 차이가 보인다. 여기서 첫 번째 가정은 RGB는 sRGB 이고 A 는 Linear 인 것이다. 그 가정이 맞다면, sRGB를 끄면 RGB가 Linear가 되니 두 그림은 똑같아 져야 한다. 두둥... sRGB를 껐지만 결과는 다르다. A는 ... Linear보다 약간 더 제곱한 수치로 보인다. 그래서 이번엔 반대로 찾아봤다 다시 원래대로 복구. 여기서 A 값에다가 2.2 pow를 주면 위에와 똑같아지는가를 찾으면 될 것이다. return pow(col.a,2.2); 확실히 아니.. 2018. 4. 30.
Linear에서 sRGB이미지의 알파는 어떻게 되는가 알다시피 텍스쳐는 sRGB 처리가 되면서 Gamma Correction 을 거치기 위해 (뭐 정확히 그것만을 하기 위해서는 아니지만 하여간) 내부적으로 밝아지게 된다. 그리고 Linear Pipeline에서는 이 텍스쳐는 다시 원래 '선형' 으로 돌아온다. 즉 어두워진다. 그리고 계산된다. 근데 일단 이건 RGB를 말하는 거다. 만약 이 이미지에 있는 알파 채널은 어떻게 될까? 예상컨데 동일하게 작동될 것이라 생각할 수 있다. 즉 회색(감마 코렉션에서 차이가 가장 큰)을 리니어 처리하면, 회색 - 밝은 회색을 거쳐 - 다시 회색으로 돌아오므로 RGB도 A도 동일하게 작동될것이라고 상상할 수 있을 것이다. 즉 RGB를 회색으로 만들고 A도 회색으로 만들면, RGB나 A나 전부 저렇게 반응할 것이라고 생각할.. 2018. 4. 19.
유니티 코딩 기초 정리 보호되어 있는 글 입니다. 2018. 1. 1.
유니티 신 버전 라이트맵 사용하기 11 ( Using Unity 2017 Lightmap - 11) 사실 10편에 라이트맵 설명은 모두 끝냈습니다만, 라이트맵은 같이 쓰면 좋은 것들이 좀 있습니다. 약점을 보완할 것들이지요. 그 중에서 라이트프로브 정도는 정말 같이 쓰는 것이 좋습니다... LightProbe 라이트맵은 어떤 모드건 Static과 Dynamic이 완벽히 연결되지 않습니다. 아예 Dynamic을 무시해 버리는 Baked모드는 제외하더라도, 나머지 라이트맵 기능들 모두 Static과 Dynamic이 완벽히 연결되지 않지요 '연결되지 않는다' 라는 말은 크게 두 가지로 말합니다. 1. 그림자가 연결되지 않는다 다이나믹 그림자가 스테틱 오브젝트한테 드리워지는 것은 되는데, 스테틱 그림자가 다이나믹 오브젝트한테 드리워지는 것은 안 되는 문제 - 리얼타임 라이트맵(Realtime Lighting).. 2017. 12. 30.
유니티 신 버전 라이트맵 사용하기 10 ( Using Unity 2017 Lightmap - 10) Mixed Lighting - Subtractive 이제 Mixed Lighting의 마지막 옵션인 substractive입니다.이 방식은 좀 더 전통적인 방식의 라이트맵이며, Mixed 계열 중 가장 가볍고 가장 퀄리티가 떨어지는 방식입니다. 옵션은 아래와 같이 해 주면 끝입니다 이렇게 하고 구워 보면... 구워진 이미지 보면 이전하고 똑같은 느낌입니다. 뭐가 바뀌었는지 잘 모르겠지요 그렇지만 구워진 이미지를 보면 다릅니다. 이렇게 한 장에 모든 GI와 그림자가 다 구워지는 것이 subtractive의 특징입니다.그냥 한 장에 몽땅 처리하는 거지요 즉 조명 + 그림자 + GI가 한 번에 구워진거라 사실상 Baked에다가 Dynamic 오브젝트의 라이트와 그림자 기능을 추가한 것 밖에 없습니다. 때문에 .. 2017. 12. 30.
유니티 신 버전 라이트맵 사용하기 9 ( Using Unity 2017 Lightmap - 9) Mixed Lighting - ShadowMask - Distance ShadowMask 이전 시간에 이은 , 셰도우마스크의 추가 옵션입니다. 2017 초기 버전에는 라이트맵 옵션에 같이 있었는데, 곧 따로 빠진 기능입니다. 이 기능을 만든 이유는 다음과 같은데... ShadowMask로 리얼타임 셰도우와 베이크드 셰도우를 통합해서 자연스럽게 섞이게 된 것 까지는 좋은데, 여전히 남아있는 문제는... Static 오브젝트의 그림자는 어쨌거나 구워진 것이기 때문에, 다이나믹 오브젝트에 드리우지는 못한다 라는 것입니다. 위 그림에서도 박스의 그림자가 바닥에는 드리워져 있는데 캐릭터에게는 드리우지 못하고 있는걸 알 수 있지요 이건 구워진 그림자나 GI들의 숙명입니다. 그래서 이걸 해결하는 법은 몇 가지가 있긴.. 2017. 12. 30.
유니티 신 버전 라이트맵 사용하기 8 ( Using Unity 2017 Lightmap - 8) Mixed Lighting - ShadowMask 새로 생긴 ShadowMask 기능입니다. 일단 옵션만 바꿔서 무식하게 구워 볼까요 물론 다른 옵션은 바로 이전 글인 7편과 동일합니다. 위에 보이는 저 옵션만 다르다고 생각하시면 돼요. 아래는 이전과 동일합니다. 이전의 Baked Indirect 옵션이 '라이트와 그림자는 실시간으로, GI 만 라이트맵으로' 였다면 이건 '라이트는 실시간이고, 그림자는 셰도우맵으로 굽고, GI는 라이트맵으로 굽고' 라는 겁니다. 그래서 구워진 결과물을 보면 ... 뭐 잘 모릅니다. 자 여기서 잘 생각해 봐야 합니다. - 라이트는 실시간이라서 색이나 강도를 변화시킬 수 있습니다. - 그림자는 셰도우맵으로 구워진거라 움직이거나 변화할 수 없습니다. (단 Dynamic 오브젝.. 2017. 12. 30.
유니티 신 버전 라이트맵 사용하기 7 ( Using Unity 2017 Lightmap - 7) Mixed Lighting 이제 그다지 오래 지나지 않아 인라이튼은 사라진답니다! 오예! 임시로 들어가 있던 프로그래시브 라이트매퍼가 인라이튼을 대체한답니다! 오예! 이 글을 쓰는 나는 망했다!! 망했다고!!! 누가 쓰라고 하지도 않았는데!! 왜 쓴걸까 난!! 난 망했어!!! 이 글은 이제 곧 쓸모없는 글이 될거야!!! 망하는건 망하는거고.. 쳇. 하여간 하던건 마무리 지어야 하니까. 이제 드디어 Mixed Lighting 입니다. 여기서는 또 3개 (4개) 로 나눠서 설명해야겠네요 어쨌건 Mixed Light로 설정하는 법은 다음과 같습니다. - 조명은 Mixed로 - GI 적용을 원하는 오브젝트는 Static으로 - Realtime Lighting은 끄고 (안꺼도 상관없지만 끄는걸 권장) Mixed .. 2017. 12. 26.
유니티 신 버전 라이트맵 사용하기 6 ( Using Unity 2017 Lightmap - 6) Baked Light 이번엔 전통적인 Baked Lighting 입니다. 말그대로 텍스쳐로만 모든 것을 구워버리는 방식이지요. 이걸 하기 위해서는 다음을 준비해야 합니다. - 조명은 Baked로 - GI 적용을 원하는 오브젝트는 Static으로 - Realtime Lighting은 끄고 (안꺼도 상관없지만 끄는걸 권장) Mixed Lighting은 켜고 (Lighting Mode는 상관없음) 조명은 일단 전부 이렇게 설정해 주시면 됩니다. 그림자는 라이트맵 해상도에 영향받기 때문에 여기서 옵션을 바꾸는게 의미도 없고 활성화도 되지 않습니다. 라이팅 옵션은 이렇게 해주면 됩니다. Realtime Lighting은 켜줘도 리얼타임 라이트가 실제로 존재하지 않으면 동작 안하겠지만 꺼주는게 아무래도 깔끔하죠 그.. 2017. 12. 21.
유니티 신 버전 라이트맵 사용하기 5 ( Using Unity 2017 Lightmap - 5) Realtime Lighting 개인적으로 리얼타임 라이팅이라는 말이 마음에 들지 않습니다. 리얼타임 라이트맵이라고 해야 옳지 않나... https://docs.unity3d.com/Manual/LightingInUnity.html 그러니까 이런 겁니다. 바닥에 녹색으로 GI가 묻어나는 걸 봐주시길. 조명이 움직이는데도 GI가 먹는다든게 중요한 겁니다. 이래서 리얼타임이라고 불리지만, 오브젝트들은 움직이면 안된다라는 제한(Static) 은 있기 때문에 문자 그대로 리얼타임인 것은 아닙니다. 하여간 가동시키려면 다음과 같습니다. 1부에서 했던 것처럼 Static한 녀석과 Dynamic 한 녀석이 존재하는 씬에서 시작합니다. 캐릭터만 Dynamic이고 나머지 배경은 모두 Static. 라이트맵의 Auto G.. 2017. 12. 13.
유니티 신 버전 라이트맵 사용하기 4 ( Using Unity 2017 Lightmap - 4) 그럼 이쯤에서 정리 한 번 합시다. Static ObjectDynamic Object commentRealtime Lighting Light: Realtime Shadow: Realtime(shadowmask) GI: Realtime Light: Realtime Shadow: Realtime(shadowmask) GI: Nothing -need baking cluster for Realtime GI. -Realtime Ambient light Mixed Light Baked Light: Baked Shadow: Baked GI: Baked Light: Nothing Shadow: Nothing GI: Nothing -Baked Ambient light Baked Indirect Light : Realti.. 2017. 12. 13.
유니티 신 버전 라이트맵 사용하기 3 ( Using Unity 2017 Lightmap - 3) 이제 라이트맵을 저장하는 법을 알았으니, 리얼타임 GI인지 뭔지를 해결해 봅시다. 그 전에, 라이트맵을 분류하는 법을 알아야 합니다. 라이트맵은 여러 종류가 있어서, 자신이 원하는 것을 사용해야 하거든요 그리고 더럽게 복잡해졌습니다. 일단 오브젝트가 Static 과 Dynamic으로 이루어진건 알고 계시겠지요? Static은 1강에서 봤던 Static 옵션을 체크한 물체로, 게임에서 '절대 움직이지 않는다' 라는 설정이 된 오브젝트를 의미합니다. Dynamic은 Static 체크를 안한 물체로, 캐릭터처럼 게임에서 '움직인다' 라는 설정이 된 오브젝트를 의미합니다. 자 그 두 개가 중요합니다. 그리고 우리 프로젝트가 어떤 라이트 체계를 가질 것이냐 미리 결정하는 것이 매우 중요합니다. 아래 소개를 보고 .. 2017. 12. 12.
반응형