본문 바로가기
shader_feature와 multi_compile의 차이 shader_feature와 multi_compile의 차이#pragma shader_feature는 #pragma multi_compile과 매우 유사하고 shader_feature 셰이더의 사용되지 않는 배리언트가 게임 빌드에 포함되지 않는다는 유일한 차이점이 있습니다. 따라서 shader_feature는 머티리얼에 설정되는 키워드에 가장 적합하고 multi_compile은 코드에서 전역으로 설정되는 키워드에 적합합니다. https://docs.unity3d.com/kr/2018.4/Manual/SL-MultipleProgramVariants.html 자꾸 기억이 안나서 백업. 셰이더 피쳐는 사용되지 않으면 게임 빌드에 코드가 포함되지 않는다는 말. 즉 메터리얼단에서 노말맵을 쓸거냐 안쓸거냐, Emi.. 2020. 11. 8.
Legacy Pipeline Depth Texture 레거시 파이프라인 깊이 텍스쳐 보호되어 있는 글 입니다. 2020. 7. 2.
URP에서 Particle Vertex Stream으로 UV 조절하기 일단 파티클을 만들었습니다. Lifespan은 1~ 5 입니다. 셰이더는 이렇게 . 매우 단순하죠 이제 파티클 옵션에서 커스텀 데이터를 켜줍니다. float4 짜리 두 개를 켤 수 있지만 하나만 켜주죠 일단. 그 다음 커스텀 버텍스 스트림을 켜줍니다. 신통방통하게도 에러가 나네요 일단 에러를 보면 버텍스 스트림에 Color가 없다는 말입니다. 여기는 버텍스 스트림이니 칼라라면 .. 버텍스 칼라죠 !!! 네 이렇게 하면 해결됩니다. 다음에는 커스텀 데이터 추가입니다. 여긴 설명할게 좀 있는데, UV를 보시면 Texcoord0 의 xy만 쓰고 있습니다. 그러므로 여기에 그냥 커스텀 데이터를 추가하면.. 커스텀 데이터 float4를 추가하니까, Texcoord0번의 zw 와 Texcoord 1번의 xy가 들어.. 2020. 6. 25.
URP Shader로 뚫리는 이미지 만들기 URP Shader에서 뚫리는 이미지 만들기입니다. 스텐실을 이용합니다. 뭐 그외에도 이용할 꼼수들이 좀 있습니다 네네 이런거 만들거예요 네네네네네네네 뭔가 뚫리죠 허허허허 일단 적당히 만든 지형하고, 적당히 Unlit으로 만든 캡슐이 하나 있습니다. 캡슐은 나중에 안보이게 할거라서, 투명하게 만들어 주겠습니다. 투명하게.. 는 Transparent 외엔 선택지가 별로 없지요 알파도 0.2로 해줘서 정말 투명해지나 함 볼수 있게 해 봤습니다. 그 다음에 해야 할 것은 레이어 분리입니다. 저는 Test 라는 레이어를 만들고, 캡슐은 Test 레이어로 바꾸고, 땅Plane은 그냥 Default 레이어로 놔뒀습니다. 즉 현재 이런 상태. 그 다음에 건드려야 할 것은 ForwardRenderer 입니다. URP.. 2020. 5. 9.
[Unity Shader Graph] 커스텀 라이팅 간단 구현 - Lambert와 Shadow https://darkcatgame.tistory.com/89 URP 커스텀 라이트에서 atten 기능이 동작안해서 포기하고 있었는데 취업한 제자가 기능 찾아서 잘 정리해서 알려줬습니다 제자 키울 맛이 이럴때 나는거죠 2020. 2. 26.
유니티 셰이더 그래프(Unity shadergraph) HDRP 굴절과 파티클 버텍스 스트림 연결하기 에 이것 역시 그렇게 어렵지 않습니다. 굴절이 이전 글에서 완성되었으니 말이죠 버텍스 스트림 기본만 알고 있으면 됩니다. 노드는 일단 여기서 시작합니다. 일단 파티클과 연결시켜 쓰기 위해서, 버텍스 칼라 연산을 추가합시다. 맨 마지막에, 버텍스 칼라를 추가했습니다. RGB를 일단 Scene color랑 곱해주고, [각주:1] 알파만 따로 빼서 알파에 연결시켜 줬습니다. 이렇게 해야 파티클 색상과 알파가 작동하니까요 그리고 이제 커스텀 데이터를 추가합니다. UV1과 UV2임을 주의합시다. UV0번은 쓰고있으니까. 이렇게 하면 일단 준비는 끝입니다. 이제 파티클에 메터리얼을 넣고, 버텍스 스트림을 켜 줍니다. 버텍스 스트림은 위와 같이 맞춰줍니다. Texcoord가 안맞는다는 말이 나오는데, 신경쓰지 않아도.. 2020. 1. 16.
유니티 셰이더 그래프(Unity shadergraph) HDRP에서 굴절(Refraction) 만들기 일단 LWRP (URP) 에서는 아래와 같이 만들면 되고요 https://chulin28ho.tistory.com/555 HDRP에서는 전혀 다릅니다. 기본은 이거예요 . 뭐 설정해줄 필요도 없습니다. 마치 언리얼 처럼 Scene Color 하나 받아와 주면 돼요 . 오우 근데 그냥 검게 나오신다고요????? 그럴땐 두 가지 체크해볼 부분이 있습니다. 1. HDRP 버전을 체크해 보세요 HDRP 는 계속 만들고 있는 중이기 때문에, 버그나 기능상 문제가 아주아주아주아주아주 많습니다. 저도 2018.4.15에서 죽어도 안되어서 찾다가보니, hdrp 버전이 4.1.0 으로 되어 있어서 4.10.0으로 올리기까 한 번에 해결되었습니다 2. Master 의 Blend 모드가 Transparent로 되어 있는지 .. 2020. 1. 16.
유니티 셰이더 그래프(Unity shadergraph) 확장된 커스텀 라이트와 그 문제점 역시 여기 https://blogs.unity3d.com/kr/2019/07/31/custom-lighting-in-shader-graph-expanding-your-graphs-in-2019/ 내용 기반입니다. 이 앞글과도 연결되어 있고요. 이번에는 커스텀 라이트 확장에 대해 알아보겠습니다. 이전에 만든 커스텀 라이팅은 ... 디렉션하고 칼라밖에 나오지 않았죠. 이걸로 만들면 문제가... 그림자를 받지 못한다는 것입니다. (그림자를 드리우는건 되죠. 아래 그림 참조. 선택된 공에 그림자가 드리워지지 않는걸 보세요) 그럴때 보통 필요한 것이 '감쇄' (Attenuation) 인데요. 이걸 받으려면 코드를 좀 확장해야 합니다. 위에 말했던 https://blogs.unity3d.com/kr/2019/07/.. 2020. 1. 14.
유니티 셰이더 그래프(Unity shadergraph) Custom Light Function 외부에서 받아오기 https://chulin28ho.tistory.com/559?category=822622 와 연결될 얘기고요. 커스텀 펑션으로 라이트 디렉션을 받아오면 상당히 많은 일을 할 수 있겠죠 일단 이렇게 NdotL로 커스텀 라이트를 구현할 수 있습니다. 전통적인 Lambert 구현이고요. 여기에 대해선 뭐 설명 많으니 더 설명 안할께요 뭐 이건 그렇고.. 또하나의 커스텀 라이트 구현 방식은, 지금처럼 string으로 내부에 처리하는 방식과 File로 해서 외부에서 불러오는 법이 있습니다 둘은 동일하지만, 아무래도 파일이 길어지면 외부 파일로 불러오는게 좋겠지요. 외부 파일은 ... 놀랍게도 .hlsl 파일입니다. 만드는 방식은 ..? 놀랍게도 없습니다. ㅋㅋㅋㅋㅋㅋ 그래서 걍 아무거나 셰이더 파일이건 C# 파.. 2020. 1. 13.
유니티 셰이더 그래프(Unity shadergraph) view vector는 normalize 하세요 복습삼아 custom으로 phong 만들어 보고 있었는데 제대로 안나와서 맨붕... 그래서 찾아보니까 view vector를 normalize 해주면 됨?!??!? 아니 저기 view vector에 기본적으로 normalize 안해주고 보내줌???? 서피스 셰이더 초창기에 이렇게 했었는데 셰이더 그래프에서 다시 반복되는 거임요??? 여러분 viewDirection 은 normalize 꼭 하세요. 2020. 1. 10.
유니티 셰이더 그래프(Unity shadergraph) 이해할 수 없는 셰이더 그래프의 뒤통수 블로그 주인장에게 커피값을 후원할 수 있습니다! 서론 아니 진짜 셰이더 그래프는 정말정말정말정말 * 10 마음에 안드는 구석이 한두군데가 아닌데요. 예전의 스트럼피 셰이더 만든 사람이 그 철학 그대로 만들어서 정말정말정말정말 구립니다. 익숙해진 사람한테는 그냥 욕하고 지나갈 정도지만, 처음 배우는 사람들 입장에서는 완전 함정에 가까울정도로 엉망입니다. 한 두개가 아니지만 오늘 스터디하면서 가르쳐보니 진짜 경악을 금치 못했던 내용. 심지어 제대로 가르쳤는데도 학생들이 제대로 이해를 못하던 사건입니다. (이해는 했는데 의도적으로 엉망으로 이해해야 하는 사건이랄까) 예를 들어보죠. Vector4 + Vector4 입니다.[각주:1] 이거야 뭐 0.5 0.5 0.5 0.5 + 0.5 0.5 0.5 0.5 ---.. 2020. 1. 1.
유니티 셰이더 그래프(Unity shadergraph) 에서 버텍스 스트림 셰이더 (vertex stream shader) 가 적용된 이펙트 셰이더 만들기 2 기본이 만들어졌으니 버텍스 스트림에 대해 얘기해 보죠. 버텍스 스트림은 vertex shader 흐름 단계에 개입해서 값을 집어 넣는 방식이므로, 버텍스 값에 접근할 수 있어야 합니다. 그중 대표적인 데이터는 texcoord. texture coordinate (텍스쳐 좌표) 라고 불리고 texcoord 라는 약어로 불리고 있으며, 아티스트들에게는 UV라는 이름이 더 익숙한 그것 말이죠. 근데 사실 texcoord 는 꽤 여러 개를 쓸 수 있고, Vector4 데이터라서 UV 말고도 꽤 이곳저곳에 쓰이기도 합니다. 사실상 만능 그릇 ... 그래서 이 texcoord를 커스텀 데이터로 사용하는거죠 기본적으로는 이렇게 셋팅되어 있다고 생각하면 편합니다 texcoord0 -> (uv1.x , uv1.y , 0.. 2019. 12. 31.
반응형