본문 바로가기
유니티5의 Occlusion은 어떻게 따로 연산되는가? Occlusion 연구 오즈라엘이 내 질문에는 답 안해주면서 나보고는 질문하길래 만들어본 답변입니다. 오즈라엘이 내 질문에는 답 안해주면서 오즈라엘이 내 질문에는 답 안해주면서 오즈라엘이 내 질문에는 답 안해주면서 오즈라엘이 내 질문에는 답 안해주면서 오즈라엘이 내 질문에는 답 안해주면서 일단 유니티 PBS 강의에 보면, "Albedo는 Diffuse에서 Occlusion을 뺀 것" 이라는 말이 나옵니다. 그리고 따로 Occlusion을 집어 넣지요. 그러면 Occlusion은 어떻게 가동되게 되어 있는지 봅시다. 그냥 Albedo * Occlusion으로 계산되면, 사실 뺄 이유가 없잖아요? 뭔가 다르게 계산되니까 빠진거겠죠. 그래서 일단 커스텀 라이팅으로 Standard Metallic Shader를.. 2015. 6. 29.
Custom Standard Shader에서 Occlusion Texture 사용할때 안 나타나는 문제 강의용으로 Custom Shader를 만지고 있는데 이게 은근히 바뀐게 많아서 고생중입니다. 하나씩 해결중... 블렌딩 구문도 처리 방식이 변해서 변칙방법 찾느라고 고생했구요. 그거랑 또 고생중인게 있는데 Occlusion... 이게 아무리 해도 안들어가서 고생하다가 이유를 찾았습니다. 분명히 Albedo에 넣으면 잘 나오는게 Occlusion에 넣으면 안나와서 한참 고생중.... 이름문제인가? 레지스터 할당 문제인가??? 아니 3.0에서 이것밖에 못 쓸리가 없잖아.. 아직 8장도 안되었는데... 찾은 답은 이거였습니다. Occlusion은 그 특성상 다른 UV와 같은 것이 일반적이죠. 그래서인지, Occlusion용으로 따로 UV를 받아서 쓰면 출력이 안되지 뭡니까... Occulsion에 사용하려면 .. 2015. 6. 29.
유니티5 실시간 GI 이상현상 연구 : Unity5 Realtime GI 학생작품에서 리얼타임 GI 렌더링만으로 이런 결과물이 나오는 문제가 발생했습니다. 일단 느낌적인 느낌으로는 GI 렌더링 시에 서로 클러스터가 멀리 떨어지면서 나오는 문제라던가.. 하여간 클러스터의 연관관계가 끊어진 느낌의 결과물이었습니다. Baked는 하지 않고 Only 리얼타임 Gi 입니다. 일단 이 팀의 데이터를 보니 심각 ;;;; 전부 한덩어리로 맥스에서 한방에 넘긴 데이터인데다가 저 이상한 찌꺼기들은 뭘까요 실제 오브젝트를 불러봐도 엉망인걸로 봐서 원래 만들때 저렇게 만들었나 봅니다. 나중에 삭제라도 한건가... 설마 저 위치에 있는걸로 인식해서 생긴 문제인가 싶어 생각해 봤는데 그거랑 모양은 좀 다르긴 합니다. 그 문제는 일단 아닌걸로 가정. 게다가 물어보니 이 데이터를 기반으로 대규모 삭제를 .. 2015. 6. 16.
유니티 안드로이드 텍스쳐 포맷 (Unity Android Texture Format) 의 비밀 비밀..이라지만 그렇게 거창하진 않습니다 허허허 그냥 뭐 조금 정리할 필요가 있어서 쓴 것 뿐이지요. 일단 유니티에는 여러 가지 텍스쳐 포맷이 있고, 그것들은 대부분 자동으로 선택이 되곤 합니다. 물론 Advanced로 하게 되면 이렇게 세부적으로 설정이 가능하지만, 이렇게까지 하실 분들은 별로 없겠죠. 게다가 이걸 하나 하나 다 설명하고, 유니티에서 사용되는 자동포맷이랑 연결해서 설명하려면 책으로 한 20페이지는 넘을겁니다 (...) 그러므로 여기서는 요약해서! 안드로이드! 에서만! 자동으로!! 사용하는 포맷에 한정해서 얘기하죠. 아참! ETC2는 빼겠습니다. 자동으로 설정되지도 않고, 아직 범용으로 사용되는 포맷도 아니라서요. 일단 기본적인 것. 다 아시겠지만 ... 유니티 엔진에는 어떤 텍스쳐라도 .. 2015. 6. 5.
Unity Standard Shader 분석 - 일단 기본적으로 Standard Shader는 Uber Shader로 짜여져 있다. - 그래서 중간에 주요 라이팅 함수들이 분기가 된다. 특히 핵심 조명 코드인 BRDF 코드는 3.0 지원버전, 2.0 지원 버전, 모바일 버전으로 3가지로 분기된다 (어, 맞던가? 좀전에 봤는데 기억이 안나..) - 지금 아래는 서피스 쉐이더로 구현하던 것이다. 분기는 없애고 걍 3.0 지원버전으로 ... - 라이팅을 커스텀으로 한 것 뿐이다. - 분석하다가 중간에 정지한 것. 지금 라이팅 구문에서는 light.ndotl이 부분을 찾아야 한다. 일단 결과물만 테스트 해 보게 만든 녀석이다. 이 녀석은 어디 숨어 있는 걸까... - 그래서 지금 결과물 리턴은 NdotL이다. - 하프 렘버트라도 구현하려면 일단 ndotl.. 2015. 5. 28.
Unity 5 standard 2side shader 유니티용 2side Standard Shader 세트 2 side Standard Shader for Unity 5 2side Standard Shader (Specular Setup) for Unity 5 학생들이 자꾸 만들어 달래서 걍 공유. 뭐 힘든거라고 이걸 기본으로 안넣어주는지 모르겠다. 그냥 기본에다가 분기 하나만 넣어주지. 2015. 5. 27.
UV scroll script using UnityEngine; using System.Collections; public class NxTextureUVScroll : MonoBehaviour { private Vector2 texcoord = Vector2.zero; public int materialIndex = 0; public string textureName = "_MainTex"; public Vector2 UVaniRate = new Vector2(1.0f,1.0f); private Vector2 TexUVScale; void Start(){ TexUVScale = GetComponent ().material.GetTextureScale(textureName); } // Update is called once per f.. 2015. 5. 7.
Unity 5.0 Shader 자료들 struct SurfaceOutput { fixed3 Albedo; fixed3 Normal; fixed3 Emission; half Specular; fixed Gloss; fixed Alpha; }; 은 그냥 존재한다. inline void LightingBlinnPhong_GI ( SurfaceOutput s, UnityGIInput data, inout UnityGI gi) { gi = UnityGlobalIllumination (data, 1.0, s.Gloss, s.Normal, false); } 처럼 GI 연산을 커스텀 라이팅에 포함할 수 있다. 이런 자료는 기본적으로 예전처럼 Lighting.cginc에 내장되어 있다. 그리고 아래는 UnityPBSLighting.cginc에 내장되어 있다.. 2015. 4. 23.
유니티 물리기반 쉐이딩 http://www.slideshare.net/RenaldasZioma/unite2014-mastering-physically-based-shading-in-unity-5 2015. 4. 10.
유니티5의 라이트맵핑의 비밀 : Realtime GI와 BakedGI 동시에 쓰기 뭐 그럼 이번에야말로. 왜 도대체 처음에는 저놈의 리얼타임 GI와 베이킹 GI가 동시에 켜 있는지 궁금했었죠 ㅋㅋㅋㅋ 아놔 ㅋㅋㅋ 저거 베이킹 GI 꺼도 아무 변화 없잖아!@!! 제기랄!!! 이러면서 ㅋㅋㅋ 맨 처음 시작하면 저 상태에서 Baked GI를 꺼도 아무 변화가 없었다는 거죠. 그래서 처음에는 오해하기 딱 좋습니다. "리얼타임 GI가 켜지면 베이크드 GI는 동작하지 않는구나!!!" 하지만 이건 정확하지 않습니다. 베이크드 GI가 동작하지 않는게 아니라, 지금 설정이 모두 베이크드 GI 뿐이라서 그렇습니다. 그 증거로 Directional Light일때, 리얼타임 GI를 끄면 이상한 데이터가 나옵니다. 이것은 아마도 , 베이크드 GI가 동작했지만 Directional Light는 리얼타임 GI로.. 2015. 4. 5.
유니티5의 라이트맵핑 : Baked GI 이번에는 리얼타임이 아닌, '구워진' GI를 해보겠습니다. 기본적으로 옵션은 둘 다 켜져 있습니다. 둘 다 가동상태죠. 하지만 이 상태에서 static을 켜서 라이트맵을 구워도 뭔가 변화되는걸 느낄 수 없는데요 여기 보면 리얼타임 GI와 베이크드 GI 가 둘 다 켜져 있습니다. 그치만 솔직히 Baked GI를 꺼도 별 상관 없습니다. 전 그래서 작동 안하는건가? 했죠. 하지만 컨티뉴어스 베이킹을 켜고 (혹은 그냥 빌드를 눌러도 마찬가지지만 귀찮으니까 켜죠) 리얼타임 GI를 끄면 이렇게 됩니다. 뭐여 이게 시방 뭔가 이상하게 나옵니다. 아니 리얼타임 GI를 껐으면 베이크드GI가 가동 되어야지... 저 요상한건 뭘까요... 결론부터 얘기하면 베이크드 GI는 그렇게 쉽게 가동되지 않습니다. 베이크드 GI 메뉴.. 2015. 4. 3.
유니티5의 라이트 맵핑 - 리얼타임 라이트맵 그럼 일단 기본적인 라이트맵을 가동시켜 볼까요 유니티5에서 라이트맵을 가동시키는 것은 매우 쉽습니다. 물체를 static으로 만들어 주기만 하면 되거든요!!! 라이트맵에 영향을 받거나, 영향을 끼칠 모든 물체를 static 으로 체크해 주기만 하면 됩니다. ( 서브메뉴에서 정확히 라이트맵 static을 체크하는게 정확하지만, 에이 뭐 그런것 까지..) ...정말일까요? 다시 static을 껐다가 켜 보겠습니다. 오른쪽이 static을 켠 상태고, 왼쪽이 끈 상태입니다. 오른쪽 아래가 약간 어두워 보입니다!!! 뭔가 있긴 한 모양이군요. 이건 오브젝트를 약간 이동해 보면 좀 더 확실해 집니다. 오브젝트를 약간 움직이자, 원래 오브젝트가 있던 자리 아래에 뭔가 멍 같은 자국이 보입니다! 그리고 약간 시간이 .. 2015. 4. 3.
반응형