본문 바로가기
유니티 터레인에서 하이트맵 사용하기 Using heightmap in Unity terrain 일단 하이트맵을 구해야 한다. 여기 사용된 하이트맵은 구글링을 통해 https://www.reddit.com/r/heightmaps https://stepbysketch.files.wordpress.com/2015/07/grandcanyon_height_map.png 에서 구했음을 먼저 밝힌다. 근사한 영국 지도가 있다. 일단 이 이미지를 그레이스케일로 바꿔야 한다. 칼라로 하면 칼라 채널로 저장하기 때문에 나중에 하이트맵에서 인식할 수 없게 된다. 채널을 하나만 가지게 만들기 위해서이다. 그 후 포토샵 Raw 파일로 바꾸어 저장한다. 아참 잊고 말하지 않은게 있다. 사이즈는 512 1024 등의 2의 제곱 숫자를 사용하여야 한다. 유니티에서 터레인을 만든다. 터레인을 선택하고 인스펙터에 있는 터레인 관.. 2016. 2. 8.
GGX in Unity 5.3 http://blogs.unity3d.com/2016/01/25/ggx-in-unity-5-3/ 유니티 5.3에서 스페큘러가 GGX 스페큘러로 바뀌었군요. 언리얼에서도 사용되고 있는 녀석이고 좀 더 뭐랄까 파형이 높고 부드러워요. 5.4에서는 IBL도 강화할 생각인가 봅니다. 음 확실히 언리얼을 의식하고 있다는 느낌적인 느낌? 글은 뭐 쉬우니 번역 안합니다. In Unity 5.3 Standard Shader, we have switched to GGX as the BRDF of choice for both analytical lights, such as point/directional light, but also for image based lighting. Furthermore, a complete .. 2016. 2. 8.
Light Probe Proxy Volume 라이트 프로브 프록시 볼륨 http://blogs.unity3d.com/2016/02/03/light-probe-proxy-volume-5-4-feature-showcase/ Unity 5.4 has entered beta and a stand out feature is the Light Probe Proxy Volume (LPPV). I just wanted to share with you all what it is, the workflow and some small experiments to show it in action. 유니티 5.4 에는 라이트 프로브 프록시 볼륨이라고 하는게 들어가는군요. (역주: 기존의 라이트 프로브처럼 하나하나 박는 놈이 아니고 볼륨 박스를 넣는 놈 같네요 ..... 좀 더 정밀한 라이트 프로브 연.. 2016. 2. 7.
Standard Shader 에서 완전한 블랙 만들기 에... Standard Shader에서 Albedo를 그냥 블랙으로 만들어 버리면... 완전한 블랙은 나오지 않습니다. 이렇게요. 저게 그러니까 주변을 반사하고 있다는 물리 기반 속성 때문인데, 저걸 없애보겠다고 Smoothness 를 0으로 만들어 둔탁한 재질을 만들어도 여전히 주변 반사하는건 그대로라서 어쩔 수 없습니다. 하이라이트는 없어지지만. 완전한 블랙은 아니죠. noambient를 해봐도 마찬가지입니다. 그건 Diffuse 연산이 살아있을때나 쓸모있는거. 그러므로 지금은 리플렉션을 날려야 합니다. 어떻게? 정답은 Window / Lighting 에서 Reflection Soruce를 Custom으로 만들어 버리는 겁니다. 뭐 사실 Albedo를 -10 정도로 낮춰도 검게 나오게는 할 수 있습.. 2016. 1. 18.
Making the Post Effect : Blur - X (Post Effect 만들기 기본 : 블러 만들기 장난질 ) 이건 더더욱 별거 아닌 장난질. 블러를 셰이더 처리 안하고 단순히 다운샘플링만으로 처리할 수는 없을까? 라는 장난질입니다. 결과는 뭐. 임시버퍼를 4장이나 만들어 썼는데도 아까 블러보다 못한 결과물이 나왔다는거 ㅎㅎ 3개의 구역으로 나눴는데 매우 간단하죠. RenderTexture downsampling1 = RenderTexture.GetTemporary(source.width/2, source.height/2); RenderTexture downsampling2 = RenderTexture.GetTemporary(source.width/4, source.height/4); RenderTexture downsampling3 = RenderTexture.GetTemporary(source.width/6,.. 2015. 12. 28.
Making the Post Effect : Blur - 3 (Post Effect 만들기 기본 : 블러 만들기 3 ) 이제 블러를 세로로 한 번 더 해서 완성해 보죠. 이전의 셰이더도 사실 세로로 블러를 할 수 있도록 준비되어 있었습니다. 이전의 가로 블러 셰이더에서 세로 블러 셰이더를 만들어 줍니다. 위의 저 부분만 바꿔주면 세로 버전의 블러 shader가 되는 것이죠 잇힝 이렇게 하고 나니까 ... 다시 한 번 버퍼 연산이 필요하겠죠? 버퍼 연산은 이렇게 흘러갑니다. 0. 임시버퍼를 생성합니다. 다운샘플링 버퍼와 가로 블러 버퍼. 크기를 줄여서 잡습니다. 1. 다운샘플링 버퍼에다가 소스를 랜더링합니다. 근데 1/n 크기로 잡혀 있으므로 알아서 다운샘플링 됩니다. 2. 가로 블러 버퍼를 생성하고 거기다가 다운샘플링한 버퍼를 넣는데, 가로 블러 셰이더를 적용해서 넣습니다. 3. 가로 블러가 적용된 버퍼를 목적지 버퍼에 .. 2015. 12. 28.
Making the Post Effect : Blur - 2 (Post Effect 만들기 기본 : 블러 만들기 2 ) 그럼 이제 가우시안 공식에 의거한 블러를 만들어 봅시다. 일단 결과물은 이케 나와요 여기서 달라진건 offs2 와 offs3가 생겼다는거. 음 뭐. 왜 만들었는지는 아시겠죠 이게 이후의 버텍스 셰이더와 픽셀 셰이더의 모습입니다. 일단 버텍스 셰이더에서 늘어난걸 보죠 첨에 offs라는 UV를 만들때 half4 coords = blurFilter.xyxy* 3.0; o.offs = v.uv.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h); 를 써서 만들었으니, 기본 UV를 '가로로 좌우 3픽셀씩 이동한 UV' 를 만든 것을 알 수 있습니다. 그래서 이번엔 추가로 coords -= blurFilter.xyxy ; 로 가로로 1픽셀씩 오히려 줄여주고 o.offs2 = v.uv.x.. 2015. 12. 24.
Vertex Lighting https://josephstankowicz.wordpress.com/2013/06/29/writing-shaders-2-vertex-lighting/ Writing Shaders 2 : Vertex Lighting Last week’s post on shaders covered building a simple, unlit shader with a texture. While unlit shaders render extremely quickly, they are boring, and generally artists are going to want some form of lighting available in their shader selection. Unity provides some useful page.. 2015. 7. 30.
ETC2 File Format https://en.wikipedia.org/wiki/Ericsson_Texture_Compression ETC2 and EAC[edit] The 'ETC2' scheme expands ETC1 in a backwards-compatible way to provide higher quality RGB compression[6] as well as compression of RGBA data (RGB plus alpha). The following ETC2 codecs are mandatory in OpenGL ES 3.0[7] and OpenGL 4.3:[8] GL_COMPRESSED_RGB8_ETC2 — Compresses RGB888 data, the followup of ETC1. GL_COMPRE.. 2015. 7. 23.
유니티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.
반응형