본문 바로가기
tex2Dlod는 안드로이드 기기에서 돌아가지 않는다. http://forum.unity3d.com/threads/help-with-tex2dlod-texcubelod.258944/ Unfortunately most Android hardware does not support tex2Dlod or texCUBElod. 불행하게도 많은 안드로이드 기기는 tex2Dlod 나 texCUBElod를 지원하지 않습니다. Those functions require an openGL extension (called EXT_shader_texture_lod) that is not guaranteed support by GLES 2.0. 이런 함수들은 open 확장을 필요로 하고 (EXT_shader_texture_lod라 불리는) 이것은 GLSL2.0에서의 지원이 보장되지.. 2015. 2. 11.
tex2Dlod와 tex2Dbias의 비교연구 둘은 상당히 비슷한 기능을 하죠. mipmap 제어라는... 그치만 공식의 작동법은 미묘하게 달라요. lod가 shader3.0을 요구한다는 것도 다르고요... 프로그래머들에게 물어보면 공식에 대한 차이만 말해주니까요 자세한 느낌을 보기 위해 직접 테스트를 해 봤습니다. 예제를 만들어 봤습니다. 둘이 똑같아 보이죠? 근데 제 눈에는 살짝 오른쪽 텍스쳐가 추가 샘플링 된 것처럼 보입니다. 그래서 정말 그런가 테스트 오호라 과연 정말입니다. tex2Dlod는 고정된 mipmap을 유지하지만, bias 는 이름값대로 추가로 바이어스를 걸어주고 있는 느낌입니다. 그럼 이번에는 값에 따른 변화를 테스트 하기 위해 다시 근접시킵니다. 음 겜브리오때는 밉맵을 수동 설정 가능했는데. 유니티는 방법이 없을까낭... 뭐 .. 2015. 2. 1.
tex2dlod / tex2dbias tex2dlod (sampler, float4(UV, 0,miplevel)) tex2Dlod 는 밉맵의 레벨을 불러온다. 일부러 텍스쳐를 흐리게 할 때 유용함. 단 이걸 사용하면 거리에 따른 밉맵 조절이 안되는 문제가 있다. miplevel은 0 부터 사용한다. 숫자가 늘어날수록 밉 레벨이 늘어난다. 여기서의 miplevel은 2.5라고 넣는다면 2와 3 사이를 보간해 준다 #pragma target 3.0 필요 http://kblog.popekim.com/2011/04/tex2dlod.html tex2dbias (sampler, float4(UV, 0,miplevel)) tex2Dbias 는 밉맵의 레벨을 불러온다. 일부러 텍스쳐를 흐리게 할 때 유용함. 음.. 여기서의 miplevel은 2.5 라고 .. 2015. 1. 25.
2pass를 이용한 깨끗한 반투명 만들기 ... 쉽네요? 2Pass가 서피스 쉐이더에 사용하게 되니까 간편하게 깨끗한 반투명을 만들 수 있겠군요. ... 해서 만들어 봤더니 됩니다. 이전에 프레그먼트로 구현했던 건데 서피스로 간단하게 구현되니 허무하네요 허허허허 ㅎ 그러니까 이런 녀석이 있다면 반투명 만들면 이렇게 됩니다. 뭐 .. 어쩔 수 없죠. 이거 당연하다고 하고 살아왔습니다. 이걸 제대로 해결하려면 2Pass를 써야만 합니다. 요령은 첫 번째 Pass에 Z버퍼를 쓰고, 아무것도 그리지 않는 겁니다. ColorMask를 써도 되지만 뭐 안써도 돼요. 하지만 쓰는 쪽이 아마도 효율적이지 않을까... 싶습니다. 아예 안그리는거니. (해 보니까 콜 수는 변환이 없네요. 시무룩) 그리고 두 번째 Shader에서 반투명을 적용해 주기만 하면 끝. 매우 간단하고 효.. 2015. 1. 19.
유니티 서피스 쉐이더에서 2pass 쓰기 : Multipass Surface shader 예전엔 분명 안 되었었는데... 4.x 때 초반에는 몇번이고 시도해 봤다가 에러나서 포기했던 방법인데 얼마전 학생이 되는데요??!?? 해서 해보니 진짜 되네요 대박 ... 예전에는 막 이렇게 저렇게 요상하게 처리해야 서피스에서 겨우 돌려서, 그냥 프레그먼트로 짜버렸었는데 말이죠. 어쨌건 서피스 쉐이더에서 Multipass가 가능해 진걸 알았으니 매우 편리해 지겠네요 . Tag까지도 중복되는지는 테스트 해봐야 겠습니다만, 어쨌거나 된다는 것만으로도 이건 뭐 ... 2015. 1. 19.
GGX Specualr http://www.gamedev.net/topic/642501-metal-shader-correct/ float NdotH_2 = NdotH * NdotH; float a_2 = a * a; float D = a_2 / pow(NdotH_2 * (a_2 - 1.0) + 1.0, 2.0); http://www.filmicworlds.com/2014/04/21/optimizing-ggx-shaders-with-dotlh/ Hey guys, I've been trying to implement a phsically based metal kind of shader and I was wondering if what I'm doing is correct. Have a look at my shader:// Comp.. 2014. 9. 15.
공식별 Specular 비교 http://www.shlyaev.com/rnd/37-cpp-category/54-ggx Unreal Engine4 Trowbridge-Reitz(GGX) 언리얼 엔진 4에 들어 있다는 GGX 스페큘러 공식을 찾아봐야겠다. 쿡 토런스도 한번 정리해 봐야지. 2014. 9. 15.
shader 끄적끄적 체력이 개판이라 집중력 올리지 못하고 있다가 오늘 몸보신 좀 하니까 정신이 바짝 나서 간단하게 물 shader 코딩. 붐비치의 물이 출렁거리는게 보기 좋아 보여서 강의자료로 쓸만할까 하고 만들어 보았습니다. 맥스에서 만든게 아니라서 폴리곤을 더 늘일 수 없어서 품질이 조금 조악하게 나올 수 밖에 없었습니다만 어쨌거나 구현하는데 어려움은 없다는 결론. 강의자료로도 충분할 만큼 쉽고... 2014. 8. 3.
Unity shader 메뉴 숨기기 (Hide Properties in inspector) Properties { _Diffuse ("Diffuse", 2D) = "white" {} _Normal ("Normal", 2D) = "bump" {} [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5 } [HideInInspector] 라고 앞에 쓰면 숨겨진다. 2014. 5. 19.
Flow shader 확장버전 이전 shader에 기능을 추가해서 더 불이 리얼하게 구겨질 수 있도록 수정. 실시간으로 보면 제법 그럴듯 하다. 당연하게도 불에만 쓸 수 있는것은 아니며, 상당히 가볍게 만들어짐. 2014. 5. 16.
Surface shader 로 vertexlit 전용 shader나 SH Light 전용 shader를 만들 수 있는가? 기본적으로는 안된다고 알고 있다. 그런데 이곳저곳 돌아다니다가 , 이 부분을 지원하는 함수가 존재한다는 것을 알게 되었다. o.vertexLIght = ShadeVertexLights(v.vertex, v.normal); 이건 메뉴얼에도 나오는 vertexlight의 함수. 기본적으로 프레그먼트 shader로 짜야 작동하는 것으로 알고 있었고, 그렇게 쓰고 있었는데.. http://chulin28ho.egloos.com/viewer/5547927 갑자기 SH Light를 서피스 shader로 짤 수 있다는 글을 보게 되었다. http://chulin28ho.tistory.com/185 오오 진짜..? 라는 감동. 여기의 중요 부분은 o.shLight = ShadeSH9 (float4 (worldN, 1... 2014. 5. 13.
Unity surface shader 에서 No light 모드 만들기 #pragma surface surf NoLighting fixed4 LightingNoLighting(SurfaceOutput s, fixed3 lightDir, fixed atten) { fixed4 c; c.rgb = s.Albedo; c.a = s.Alpha; return c; }http://answers.unity3d.com/questions/272749/how-to-write-unlit-surface-shader.html출처는 여기인데, 뭐 굳이 출처까지 쓸 것도 없이 간단..커스텀 라이트를 만들어서 라이트 계산을 안하면 된다 -_-; 2014. 5. 13.
반응형