본문 바로가기

Shader12

제작 셰이더 리뷰 - 유니티 캐릭터 셰이더 보호되어 있는 글 입니다. 2017. 3. 30.
셰이더에서 Time 사용시 프레임 렉을 줄이는 방법 셰이더는 디바이스를 타는 경우가 많아 코드 작성시 주의 해야할 사항이 많습니다.얼마전에 공유드렸던 vert_img가 노트4에서만 죽는 거 처럼 안드로이드 기기는 워낙 다양한 GPU를 사용하다보니로그에 남지 않는 크래쉬 발생이 많고, 또한 어디서는 정상으로 나오던 것들이 어디서는 잘못 렌더 되는 경우가 많습니다. 최근에는 디스토션 셰이더가 아이폰 6에서만 화면이 어둡게 나오는 현상이 발견되어 해당 셰이더를 못쓰는 상황도 발생했습니다..ㅠ 이번에 공유 드릴 내용은 셰이더코드를 어떻게 작성하느냐에 따라 프레임렉을 유발할수 있는 부분에 대해서 나누고자 합니다. 물 셰이더를 제작하면서 버텍스 연산하는 부분을 함수로 따로 뺀뒤 연산하도록 작업이 됐었는데,갤럭시 시리즈에서만 버텍스 애니메이션시 프레임 렉을 일으키는 .. 2016. 11. 22.
유니티 소팅과 셰이더의 연계성..(Unity Sorting Strange..) 바닥 아웃라인 셰이더를 만든후 그 위에 올라갈 오브젝트의 소팅에 문제가 있다는 것을 발견했습니다. 이 때 사용된 렌더큐를 따져보면 바닥 렌더 큐(Pink) - Tags {"Queue"="Transparent+100" "IgnoreProjector"="True" "RenderType"="Transparent"} 오브젝트 렌더 큐(Blue) - Tags {"RenderType"="Opaque"} 큐 순서를 따져보면 Transparnet 가 Opaque보다 소팅이 위에 찍히기에 당연한 결과라 할 수 있습니다. 그래서 오브젝트 렌더 큐를 아래와 같이 변경을 해보았습니다. Tags {"Queue"="Transparent+200" "IgnoreProjector"="True" "RenderType"="Transpar.. 2016. 8. 24.
유니티 셰이더 - Plane에서 아웃라인(outline)을 이쁘게 만들기 위한 고민.. 유니티의 아웃라인 셰이더는 구글에 돌아다니는 레퍼런스가 많아 손쉽게 구현이 가능합니다. 하지만, 자세하게 여러가지를 따지다 보면 불편한 사항이나 제약이 많이 뒤따른다는 것을 쉽게 발견할 수 있습니다. 일반적인 공식으로 알려져있는 아래 수식대로 셰이더를 만들어 아래 오브젝트에 연결해 보면.. v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); fixed3 norm = mul ((fixed3x3)UNITY_MATRIX_MVP, v.normal); fixed2 offset = TransformViewToProjection(norm.xyz); o.pos.xy += offset * o.pos.z * _Outline; o.pos.z += 0.01 * _Outline; o.color.. 2016. 8. 23.