Version: Unity 6.0 (6000.0)
언어 : 한국어
빌트인 렌더 파이프라인의 노멀 매핑 표면 셰이더 예시
빌트인 렌더 파이프라인의 버텍스 모디파이어 표면 셰이더 예시

빌트인 렌더 파이프라인의 반사 표면 셰이더 예시

다음은 빌트인 worldRefl 입력을 사용하여 큐브맵 반사를 수행하는 셰이더입니다. 빌트인 반사/디퓨즈 셰이더와 매우 유사합니다.

  Shader "Example/WorldRefl" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _Cube ("Cubemap", CUBE) = "" {}
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert
      struct Input {
          float2 uv_MainTex;
          float3 worldRefl;
      };
      sampler2D _MainTex;
      samplerCUBE _Cube;
      void surf (Input IN, inout SurfaceOutput o) {
          o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb * 0.5;
          o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
      }
      ENDCG
    } 
    Fallback "Diffuse"
  }

반사 컬러를 Emission 으로 할당하기 때문에 아주 빛나는 병사 모델을 얻게 됩니다.

노멀 맵의 영향을 받는 반사 처리를 하고 싶다면 추가적인 처리가 약간 필요합니다. INTERNAL_DATAInput 구조에 추가되어야 하고 Normal 출력을 작성한 후에 WorldReflectionVector 함수가 픽셀당 반사 벡터를 계산해야 합니다.

  Shader "Example/WorldRefl Normalmap" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _BumpMap ("Bumpmap", 2D) = "bump" {}
      _Cube ("Cubemap", CUBE) = "" {}
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert
      struct Input {
          float2 uv_MainTex;
          float2 uv_BumpMap;
          float3 worldRefl;
          INTERNAL_DATA
      };
      sampler2D _MainTex;
      sampler2D _BumpMap;
      samplerCUBE _Cube;
      void surf (Input IN, inout SurfaceOutput o) {
          o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb * 0.5;
          o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
          o.Emission = texCUBE (_Cube, WorldReflectionVector (IN, o.Normal)).rgb;
      }
      ENDCG
    } 
    Fallback "Diffuse"
  }

다음은 노멀맵 처리된 빛나는 병사 모델입니다.

빌트인 렌더 파이프라인의 노멀 매핑 표면 셰이더 예시
빌트인 렌더 파이프라인의 버텍스 모디파이어 표면 셰이더 예시
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961