Unity(121)
-
[Unity] URP 셰이더 HLSL Pass와 Pass Commands
PassPass는 하나의 셰이더가 여러 번 그려야 하는 경우 사용된다.Pass 아래에 Tags 명령어가 또 나오는데, SubShader의 Tags 명령어와 이름은 같지만 다른 목적을 가지고 있다. URP 렌더 파이프 라인에 의해 이 패스를 그릴지 말지를 결정하는 기준이 된다. Pass 안에 있는 명령어를 생략해도 디폴트 값으로 적용되며, SubShader에서 사용해도 된다. SubShader에서 Pass의 명령어를 사용하면 모든 Pass에 적용된다. Shader "Universal Render Pipeline/Lit"{ Properties { // Specular vs Metallic workflow [HideInInspector] _WorkflowMode("Work..
2023.06.12 -
[Unity] URP 셰이더 HLSL ShaderLab Properties, SubShader Tags
Propertieshttps://docs.unity3d.com/kr/2021.1/Manual/SL-Properties.html ShaderLab: 머티리얼 프로퍼티 정의 - Unity 매뉴얼이 페이지는 ShaderLab 코드에서 Properties 블록을 사용하여 셰이더 오브젝트의 머티리얼 프로퍼티를 정의하는 방법에 대한 정보를 포함합니다.docs.unity3d.com유니티 매뉴얼에 프로퍼티에 대한 내용이 잘 나와있다. Integer, Int정수형에 대한 설명이다. _ExampleName ("Integer display name", Integer) = 1_ExampleName ("Int display name", Int) = 1 FloatFloat와 Range 타입이 있다. Range 타입은 재질 편..
2023.06.12 -
[Unity] URP 셰이더 HLSL Lambert 셰이더
Shader "Custom/BRDF/Lambert"{ Properties { [MainTexture] _BaseMap("Base Map", 2D) = "white" {} [MainColor][HDR]_BaseColor("BaseColor", Color) = (1, 1, 1, 1) } SubShader { Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" } Pass { HLSLPROGRAM #pragma vertex vert #pragma fragment frag ..
2023.06.10 -
[Unity] URP 셰이더 HLSL 텍스쳐 적용
HLSL의 변수float4 testVar; //초기 값 없이 변수만 선언float4 testVar = float4(1,2,3,4); // 초기 값과 함께 변수 선언 float2 newVar1 = testVar.xy;float2 newVar2 = testVar.zw;float3 newVar3 = testVar.zxy;위와 같이 구성 성분을 조합해서 사용 가능하다. testVar.xygb //ErrortestVar.xx = float(1, 2); //Error (xx가 문제)xyzw 방식과 rgba 방식을 혼용할 수 없다. HLSL의 함수half4 frag(Varyings IN) : SV_Target{ half4 color = SAMPLE_TEXTURE2D(_BaseMap, sampler_Base..
2023.06.09 -
[Unity] URP 셰이더 HLSL 구조와 _BaseColor 적용
ShaderLabShaderLab은 범용적인 HLSL만으로는 유니티 3D 엔진만의 여러 기능들을 제어할 수 없어서 만든 규칙이다. OpenGL이나 HLSL 같은 셰이더 언어는 유니티 엔진이 존재하기 전부터 사용된 언어이기 때문.특징은 간단한 문법 구조를 가지고 있고 엔진 기능들에 관련된 것들이다. 직접적으로 셰이딩 연산에 관한 것들은 없다.// 이것은 주석입니다. (Comment)Shader "Custom/ShaderLab HLSL/CustomUnlit"{ Properties { } SubShader { Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" } Pass { ..
2023.06.08 -
[Unity] URP 셰이더 Gamma와 sRGB
sRGB 사진 텍스쳐는 sRGB를 켜고 Normal Map이나 Ambient Occlusion 텍스쳐 등 셰이더 계산에 사용되는 데이터 텍스쳐는 sRGB를 끈다. 감마 보정채널당 8비트의 색 표현도 결국 밴딩 현상이 일어나지만 아주 미세하게 발생해서 잘 느끼지 못할 뿐이다. 감마보정은 어두운 부분의 밴딩 현상을 최소화하는 보완책이다. 왼쪽은 0.45 제곱의 지수 그래프로 0.45 만큼 감마 인코딩할 때 포토샵에서도 같은 모양의 그래프를 볼 수 있다. 모니터에 출력될 때 다시 어둡게 디코딩될 것을 전제로 이미지를 조금 밝게 저장한다.오른쪽은 2.2 제곰의 지수 그래프로 2.2 감마 디코딩을 나타내며 다시 어둡게 디코딩해서 모니터에 출력한다. GLSL 그래프를 살펴보면 지수 함수로 바뀌면서 낮은 영역..
2023.06.07