본문 바로가기

전체 글63

유니티에서 HLSL으로 Voronoi custom 을 만들어 유용하게 쓰는 방법 최근 프로젝트를 진행하면서 물결을 만들 필요성이 생겼다. 블렌더 셰이더 내에서 보로노이를 자유롭게 조절할 수 있는 것이 생각나서 (아니면 less than)으로 사용하고 싶은 부분만 빼는 방식으로 문제해결을 하려고 했었다. 하지만 인생사 그렇게 간단히 끝날리가 없다. 정확히는 랜덤연산이 필요하고 조금 더 샤프하게 표현될 모델이 필요했다. 근데 여기서 샤프하게 표현하려고 내가 가진 지식들을 총 동원해도 이렇게 나오는 것 아닌가.. (이건 내가 잘 몰라서 그런 것도 있을 것이다) 그래서 이건 커스텀된 모델을 찾아서 적용하는게 맞다고 판단했다. 일단 보로노이가 어떤 방식으로 작동하는지 알아야했다. 일단 지금 유니티에서 제공하는 보로노이에 무슨 문제가 있는 것인지 살펴보자 각 영역에 대한 점과 임의의 값을 임의.. 2024. 1. 21.
URP Shader Study #12 - 카메라 벡터를 활용한 rim light의 적용 Shader "URPTraining/RimLight_Shader" { Properties { _RimPower("_RimPower", Range(0.01, 0.1)) = 0.1 _RimInten("_RimInten", Range(0.01, 100)) = 1 [HDR]_RimColor("RimColor", color) = (1,1,1,1) _AmbientColor("AmbientColor", color) = (1,1,1,1) } SubShader { Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Geometry" } Pass { Name "Universal Forward" Tags { "LightMode" = "Univ.. 2023. 12. 13.
URP Shader Study #11 - Vertex shader를 활용한 mesh animation 구현 Vertex shader를 활용한 mesh animation 구현 Shader "URPTraining/Vertex_Test_shader" { Properties { _Texture2D("Texture2D", 2D) = "white" {} } SubShader { Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Geometry" } Pass { Name "Universal Forward" Tags { "LightMode" = "UniversalForward" } HLSLPROGRAM #pragma prefer_hlslcc gles #pragma exclude_renderers d3d11_9x #pragma vertex v.. 2023. 12. 6.
URP Shader Study #10 - Flow map UV Scroll Time에 따라서 움직이는 셰이더 만들기 매우쉽다! (텍스쳐가 있는 셰이더라는 가정) 버텍스 셰이더 쪽에 그냥 무지성으로 타임.x 를 꽃으면 움직인다! VertexOutput vert(VertexInput v) o.uv.x += _Time.x; Mesh uv 방향으로 scroll 되는 shader 제작 유니티 내부에서 사용할 수 있는 함수들이 있다. 대충 참고하면 된다. 델타타임은 셰이더 안에서 작동이 안된다. Flow map을 활용한 uv animation shader 제작 다른 텍스쳐를 활용해서 UV움직임에 임의의 값을 추가해서 변화를 줘보자. 프로퍼티스 [NoScaleOffset] _FlowMap("FlowMap", 2D) = "white" {} //[NoScaleOffset] 2023. 12. 4.