유니티 셰이더 예제

현재 오브젝트에는 Unity의 표준 섀도우를 사용하는 기본 재질이 있습니다. 우리는 처음부터 구축 할 우리 자신의 그늘로 대체 할 거야. 이를 스위즐 작업이라고 합니다. 벡터의 단일 구성 요소에 액세스하는 것과 비슷하지만 더 유연합니다. 이를 사용하여 부동 부품의 필터링, 재정렬 및 반복할 수 있습니다. 예를 들어 .x, .xy, .yx, .xx. 이 경우 네 번째 를 무시하고 위치의 처음 세 구성 요소를 잡는 데 사용합니다. 네 가지 구성 요소는 모두 .xyzw입니다. .rgba와 같은 색상 이름 지정 규칙도 사용할 수 있습니다. 셰이딩을 시작하기 전에 Unity가 제공한 데이터를 받아 유니티에 데이터를 다시 제공할 수 있도록 일부 데이터 구조와 두 가지 기능을 설정해야 합니다. 먼저, 유니티CG.inc.를 포함합니다.

이 파일에는 사용할 수 있는 여러 도우미 기능이 포함되어 있습니다. 전체 목록을 원한다면 여기로 이동하십시오. 만들기 > 샤더 메뉴의 다른 항목은 기본 표면 그늘기와 같은 베어본 샤더 또는 기타 유형을 만듭니다. 이제 유니티의 이전 버전에서 사용되는 일반 내장 확산 그늘을 사용하여 비행기 아래에있다. 유니티 5 이후의 스탠다드 세이더로 대체되었습니다. 더 많은 info용어로 보기, 그래서 우리는 우리의 그림자가 작동 볼 수 있습니다 (기억, 우리의 현재 음영은 아직 그림자수신을 지원하지 않습니다!). 새 재질을 삼각형 메시에 부착하는 등 아직 한 가지 중요한 단계가 있습니다. 이를 위해 메뉴에서 GameObject > 다른 구체 만들기를 선택하여 미리 정의된 Unity 게임 오브젝트 중 하나인 구를 만듭니다. 구는 장면 뷰에 나타나고 « 구 »라는 레이블은 계층 뷰에 나타나야 합니다. 장면 보기에 나타나지 않으면 계층 보기에서 클릭하고 장면 뷰 위로 마우스를 이동(클릭하지 않고)하고 « f »를 누릅니다.

이제 구가 장면 뷰의 가운데에 나타납니다. Unity의 기본 메시에는 텍스처 매핑에 적합한 UV 좌표가 있습니다. 정점 프로그램은 TEXCOORD0 시맨틱이 있는 매개변수를 통해 액세스할 수 있습니다. 일부 셰이더에는 변수, 배열, 텍스처 와 같은 유형으로 제공되는 외부 정보가 필요합니다. 이러한 경우는 ShaderLab의 유니폼 및 특성 사용에 의해 다룹니다. 속성은 모든 실행에서 샤더에 전달할 수 있는 형식 집합을 정의합니다. 변수는 쉐이더의 동작을 수정할 수 있습니다. 다음 예제에서는 원으로 가득 찬 샤더 마스크의 값을 변경하는 방법을 보여 주며 있습니다. 행과 열의 수는 원의 크기를 변경할 수도 있습니다. 지금까지 모든 픽셀에 동일한 색상을 지정했지만 이는 매우 제한적입니다.

일반적으로 정점 데이터는 큰 역할을 합니다. 예를 들어 위치를 색상으로 해석할 수 있습니다. 그러나 변환된 위치는 별로 유용하지 않습니다. 대신 메시의 로컬 위치를 색상으로 사용해 보겠습니다. 정점 프로그램에서 조각 프로그램에 추가 데이터를 전달하려면 어떻게 해야 합니까? UV 좌표를 로컬 위치와 마찬가지로 색상 채널로 해석하여 볼 수 있도록 할 수 있습니다.

Ce contenu a été publié dans Non classé par samuel. Mettez-le en favori avec son permalien.