SSAO와 Decal 까지 적용되는 풀버전 기본셰이더 만들기 헤에.. 앞 글에서 이어집니다. 이제 저 두 옵션을 켜도 문제없이 작동되는 셰이더를 만들려면 뭘 해야 하냐 . Depth Normal Pass입니다. 이렇게 생긴 Pass가 필요해요 이게 있어야 SSAO도 되고, Decal도 되기 때문에. 요런 Pass가 필요한겁니다. 그래야 SSAO도 되기 때문에 .. 여하간 Pass를 추가해 봅시다. 그리고 Decal 까지 추가하려면.. 일이 좀 큽니다. 설명하려면 글이 길어지네요. 일단 기본형만 올려봅니다. 아래 셰이더는Color 패스Depth 패스Depth Normal 패스으로 이루어져 있습니다. Shader "Example/URPUnlitShaderBasic"{ Properties { } SubShader { Tags .. 2024. 12. 15. 그럼 유니티 6.0의 제대로 된 기본 셰이더 작성법은? https://chulin28ho.tistory.com/895 유니티 URP 6.0 에서 기본 셰이더가 안나온다?https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.0/manual/writing-shaders-urp-basic-unlit-structure.html URP unlit basic shader | Universal RP | 12.0.0URP unlit basic shader This example shows a basic URP-compatible shader. This schulin28ho.tistory.com이전 글에서 유니티 기본 셰이더를 작성했을때 안보이는 문제를 해결해 보았습니다. 그런데 뭔가 껄쩍지근하죠.. 2024. 12. 15. 유니티 URP 6.0 에서 기본 셰이더가 안나온다? https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.0/manual/writing-shaders-urp-basic-unlit-structure.html URP unlit basic shader | Universal RP | 12.0.0URP unlit basic shader This example shows a basic URP-compatible shader. This shader fills the mesh shape with a color predefined in the shader code. To see the shader in action, copy and paste the following ShaderLab code.. 2024. 12. 15. 유니티 Lit 셰이더 PBR 뒤져보기3 inline void InitializeBRDFDataDirect(half3 albedo, half3 diffuse, half3 specular, half reflectivity, half oneMinusReflectivity, half smoothness, inout half alpha, out BRDFData outBRDFData){ outBRDFData = (BRDFData)0; outBRDFData.albedo = albedo; outBRDFData.diffuse = diffuse; outBRDFData.specular = specular; outBRDFData.reflectivity = reflectivity; outBRDFData.perceptualRoughne.. 2024. 10. 23. 유니티 Lit 셰이더 PBR 뒤져보기2 앞에서는 lightingData.mainLightColor = LightingPhysicallyBased(brdfData, brdfDataClearCoat, mainLight, inputData.normalWS, inputData.viewDirectionWS, surfaceData.clearCoatMask, specularHighlightsOff);이 부분이 PBR 에서의 Direc.. 2024. 10. 10. 유니티 Lit 셰이더 PBR 뒤져보기 맨날 찾아볼 때마다 까먹은데다가 설명해 놓은 PPT도 분실해 버리는 바람에 여기다 정리해 봅니다. 쳇일단 유니티 Lit 셰이더의 PBR 연산은 LitForwardPass 에서 시작하고 , 거기 안에서 조명 연산 부분은half4 color = UniversalFragmentPBR(inputData, surfaceData); 이게 사실 전부인데, UniversalFragmentPBR 은 Lighting.hlsl에 정의되어 있고 여기서 UniversalFragmentPBR(InputData inputData, SurfaceData surfaceData)라는 함수로 정의되어 있습니다. 뭐야 실체는 다 밖에 있는거네.그럼 이제 UniversalFragmentPBR(InputData inputData, Surfac.. 2024. 10. 2. 감마 코렉션을 하면 왜 어두운 부분이 밀도가 올라가나요? 질문이 들어온 김에 설명하기.. 감마 코렉션은 이미지를 밝게 저장하는 것이라고 이미 알고 계실겁니다. (뭔소리야 하시는 분은 감마가 어디감마 보시면 되고) 즉 밝아진 상태가 'sRGB' 상태입니다. 이 상태는 그리고 기계적으로는 정상인 상태입니다. 기계적으로는 리니어한 배열을 가지고 있는 상태죠. 밝아졌다는건 사람의 기준에서 밝아진 거지 기계 입장에서는.. 사람의 눈이랑은 아무 상관이 없어요... 그러이 HDD에 저장된게 컴퓨터 입장에서는 '그냥 아주 정상적으로 나열된' 데이터일 뿐입니다. 그렇잖아요. 사진을 찍어서 '저장' 을 한 상태니 컴퓨터 입장에서는 그냥 아주 평범하고 공정한 데이터 상태겠죠. 즉 저기서 HDD 상태라는 것은 '리니어' - 눈으로 보기엔 밝아졌지만 저게 정상인 데이터라고 저장된 .. 2024. 9. 29. ShaderGraph 에서 Additional Light 받아오기 https://chulin28ho.tistory.com/559/#comment18330696 ShaderGraph 에서 LightDirection 가져오기ShaderGraph를 만지다보면, lightDirecion 노드가 없다는걸 당황하게 됩니다. Shader 를 조금 배우다 보면 바로 나오는 NdotL을 구현할 수 없다는데 당황하게 되는데요, 뭐.. 요샌 그게 추세이니까 -_- ; 그래chulin28ho.tistory.com이 글에서 허허님이 그러면 Additional Light 는 어떻게 받냐고 하셔서.. 허허허 이분이 허허... 책을 사세요! 라고 말해드리고 싶지만애석하게도 저 책에서도 Additional Light 부분은 설명하지 않았습니다. 왜냐면 책 페이지가 너무 늘어나서였어요 크흑. 지금도 .. 2024. 8. 31. 픽셀셰이더에서 앞뒷면 가리기 LitPassFragmentSimple(Varyings input, FRONT_FACE_TYPE isFacing : FRONT_FACE_SEMANTIC) : SV_Target 2024. 8. 13. Unity URP HLSL Shader Basic https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.0/manual/writing-shaders-urp-basic-unlit-structure.html URP unlit basic shader | Universal RP | 12.0.0URP unlit basic shader This example shows a basic URP-compatible shader. This shader fills the mesh shape with a color predefined in the shader code. To see the shader in action, copy and paste the following ShaderLab code.. 2024. 7. 31. 빌보드(Billboard)를 만들어 봅시다 3부. 마무리해 봅시다 / HLSL버전 이제 오브젝트 스페이스의 이동과 회전을 만들어 봅시다 . 노드에서는 아주 쉽습니다. 걍 오브젝트 노드가 따로 있어서... 포지션과 스케일이 있으므로 이걸 이용하면 됩니다. 요렇게 말이죠 . 스케일은 곱해주고 이동은 더해주면 됩니다. (Q :월드 공간이라면서 거기에 오브젝트 공간 이동 더해주면 되나요?A : 아니 사실 OS 공간인데 우리가 억지로 월드공간으로 정해버린거라서 상관없어요)그러면 이제 이동과 스케일까지 다 적용되면서 빌보드도 적용됩니다. 셰이더만 언릿으로 해주면 완벽. HLSL 버전도 없으면 서운하겠죠? 개념은 동일합니다. 똑같이 짜주면 되어요주석에 써 놨고 연산순서도 노드랑 똑같이 해 봤습니다 (굳이)Shader "BillboardHLSL1"{ SubShader { .. 2024. 7. 28. 빌보드(Billboard)를 만들어 봅시다 2부. 이제 진짜 만들어 봅시다 에고에고. 사전설명으로 글 하나를 써버렸네요. 어쩔 수 없지. 그럼 이번엔 다시 또 이어서 해 봅시다. '월드' 에서 '뷰' 행렬로 바꾸는건 이동을 생각 안하면 회전뿐이고, 심지어 물체가 뷰.. 즉 카메라 방향의 '반대편' 으로 회전하는 것을 말하는 것이다! 라는게 지난 글의 요약이었는데요 뭐 좋아요. 그럼.이번에는진짜 해보죠빌보드를 만들어 봅시다 여기 일단 월드 좌표계에서 놀고 있는 박스가 있단 말예요이젠 우린 알죠 . '우리는 뷰 좌표계에서 저 놈을 기울어진것처럼 바라보고 있지만, 저 놈은 월드 좌표계 기준에서 보면 똑바로 있는거다' 후후 좋아요. 그럼 셰이더 그래프를 열고.. 아래처럼 해 줍시다. world position을 받아올 거예요. 그리고 쓸데없는 split과 combine을 거치죠? 저건.. 2024. 7. 28. 이전 1 2 3 4 ··· 11 다음 반응형