Shader 그림을 처음 그리는 방법.
5861 단어 ShaderGraphUnity
아직 기술중입니다.22일 안에 기술은 끝날 예정이다.
목표 독자
이 문장에서 얻은 견해
전제 지식
이번에 안 할 일.
이번 환경
Unity2019.3.0f
ShaderGraph 7.1.6
LightWeightRP 7.1.6
Unity 2018 환경에서 진행하려고 했는데 다음 이유로 ShaderGraph가 열리지 않는 상태여서 Unity 2019로 옮겼습니다.
유니티 2019 진행 상황
Unity의 Ver2018.4.9f에서 ShaderGraph의 4.0 이상을 사용할 때 ShaderGraph를 사용할 수 없으며 시작하지 않고 다음과 같은 오류를 토할 수 있습니다.
상기 UnityVer와 4.0 또는 4.10을 진행할 때 적어도 내 환경에서 발생했다.
마찬가지로 Unity Form에서는 다음과 같은 교환이 이루어지기 때문에 일어날 때 종종 있다.
https://forum.unity.com/threads/shader-graph-crashes-when-opening-graph.661312/
답은 유니티에게 줄 수 있는 2019의 ver는 이 시기의 LightWeight Render Pipline(Universal Render Pipe Line)에서 진행되기 때문에 그곳으로 옮겨진다
또 유니티 2018.4.7f와 Shader Graph 4.10의 조합은 가능할 것 같고 조합에 따라 가능할 것 같습니다.
카탈로그
ShaderGraph 사용 전 준비
메뉴 모음의 Windows/PackageManager에서 PackageManager 열기
ShaderGraph 및 UniversalRP를 설치합니다.
ShaderGraph를 사용할 때 PipeLineAsset을 설정해야 하기 때문에
프로젝트 화면에서 마우스 오른쪽 버튼 클릭 > PipeLine/PipeLineAsset 만들기/렌더링/일반 렌더링을 선택합니다.
생성되면 다음 파일이 생성됩니다.
UniversalRenderPipelineAsset.asset
UniversalRenderPipelineAsset_Renderer.asset
이 두 가지 중 Universal Render Pipeline Asset.asset 열기
메뉴 모음의 편집/항목 설정에서 다음 화면에서 그래픽이라는 항목을 선택한 다음 빨간색 상자 부분으로 드래그합니다
그런 다음 Project 화면 섹션에서 Create/Shader/UnlitGraph 를 마우스 오른쪽 버튼으로 클릭합니다.재료 볼 도면 파일을 두 번 클릭합니다.
지금 준비 완료.
방법의 기초
재료 볼 드로잉에서는 요소 분해가 중요합니다.
예를 들어, 다음과 같은 경우(세로로 이동하는 동안 줄무늬가 깜박이는 착색기)
이번에 만든 거 여기 있어요.
줄무늬는 이동하면서 반짝일 수 있다.
요소로 삼다
- 깜박임
- 이동할 스트라이프
- 세로 간격 표시(스트라이프)
- 이동
-α활용단어참조
감각적 요소.
이러한 요소의 조합을 통해 하고 싶은 것에 대해 어떤 방법을 해야 하는지 알 수 있다.
그렇다면 각자의 최소 부분에서 어떤 요소에 따라 조합될까?
깜박이다
노드는 다음과 같습니다.
Time + Sin (+ Absolute)
Sin 노드는 지정된 값을 Sin 표현식에 적용합니다.
0-2 사이에 -1에서 1의 값은 출력으로 되돌아오기 때문에 아래의 값은 출력으로 존재한다.
위의 두 노드를 조합하여
Sin에게 Time 값을 부여하고 Sin이 내보내는 내용을 색상으로 처리하고 내보내면 깜박일 수 있습니다.
왜 반짝일까요?
Sin 노드에서 출력된 값은 항상 -1~1의 값을 출력합니다.
색상 정보(X, Y, Z, W(알파)의 Sin 노드 출력으로 설정합니다.
프로그램상
float c = sin(Time.deltaTime);
Vector4(c,c,c,c);
이런 인상인가요?
하지만 결국 하얀 타이밍은 0이 넘는 타이밍이다
Sin에서 출력한 값이 음수일 경우 검은색이므로 길고 어두워 보입니다.
따라서 Absolute 노드가 유용합니다.
Absolute는 입력 값의 절대 값을 출력하는 데 사용됩니다.
절대값이란 대충 말하면 음값이라도 음값의 수치만 꺼낸다.
엄밀히 말하면 좀 다르기 때문에 마음에 들면 조사해 보세요.
이 Absolute를 사용하면 방금 음수 부분이 양수가 됩니다.
아래와 같다.
TODO: Sin 값을 변경합니다.
줄무늬
줄무늬를 만들 때 어떤 방법이 있을까요?
줄무늬를 만들 때 입력에 공을 들여야 한다.
최종 출력과 큰 관계가 있기 때문에 원인은 매우 간단하다.
이 줄무늬는 최종 출력할 때 이 줄무늬 자체를 사용하기 위한 것이다.
'그곳에 있을 때 이 색깔을 발라야 한다'는 상태에 있어야 한다.
그곳에 있을 때 정보의 방식은 매우 많았다.
빛이 비치지 않는 상태
・ UV 좌표의 위치
・(Local World) 위치의 해당 위치
그곳의 물건을 확인하려면 반드시 색을 칠해야 한다
장소를 나타낼 때 이번에는 UV 좌표를 사용합니다.
UV 좌표는 기본적으로 XY 섹션에 0-1의 값을 포함하기 때문에 이 범위를 사용합니다.
하지만 이걸 그대로 사용한다면 0-1이므로 어두운 부분에서 서서히 하얗게 변하는 느낌은 다음과 같다.
이게 한 장에 여러 번 나오면 스트라이프가 될 것 같아요.
형상상 아래와 같다.
그것을 조립하는 데 사용되는 착색기 도표는 다음과 같다.
수신된 UV 좌표는 시종 0-1에 불과하기 때문에 multiply로 5배 증가하여 0-5의 값으로 변경합니다.
출력 0-5는 모듈 노드에서 지정한 값의 나머지를 나눈다.
이번에는 1, 0-5의 값을 나누어 0-1만 출력한다.
예를 들어, UV 좌표 0.1과 0.5의 경우
0.1->0.5->0.5
0.5->2.5->0.5
이런 느낌.
스트라이프가 완성됐습니다.
이동하다
만약 이번이라면, 입력 자체의 값은 변화가 필요하다.
결국 지속적인 변화가 필요하다.
이번에는 시간 부분을 사용하기로 했다.
Modulo에 제공하기 전에
다음 그림과 같습니다.
그러면 출력 스트라이프의 위치가 오프셋되어 스트라이프가 이동하는 것처럼 보입니다.
원칙적으로 아까 줄무늬인데 모듈에 들어가기 전에 시간값을 추가했습니다.
그러면 0-5 + Time 섹션의 값이 1로 나뉩니다.
α활용단어참조
α응용 프로그램 자체가 최종 출력 부분이기 때문에 UnlitMaster 노드에 연결된 알파 부분을 통해 진행할 수 있다.
Reference
이 문제에 관하여(Shader 그림을 처음 그리는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/herieru/items/ab3ec79610bf2deae8da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
재료 볼 드로잉에서는 요소 분해가 중요합니다.
예를 들어, 다음과 같은 경우(세로로 이동하는 동안 줄무늬가 깜박이는 착색기)
이번에 만든 거 여기 있어요.
줄무늬는 이동하면서 반짝일 수 있다.
요소로 삼다
- 깜박임
- 이동할 스트라이프
- 세로 간격 표시(스트라이프)
- 이동
-α활용단어참조
감각적 요소.
이러한 요소의 조합을 통해 하고 싶은 것에 대해 어떤 방법을 해야 하는지 알 수 있다.
그렇다면 각자의 최소 부분에서 어떤 요소에 따라 조합될까?
깜박이다
노드는 다음과 같습니다.
Time + Sin (+ Absolute)
Sin 노드는 지정된 값을 Sin 표현식에 적용합니다.
0-2 사이에 -1에서 1의 값은 출력으로 되돌아오기 때문에 아래의 값은 출력으로 존재한다.
위의 두 노드를 조합하여
Sin에게 Time 값을 부여하고 Sin이 내보내는 내용을 색상으로 처리하고 내보내면 깜박일 수 있습니다.
왜 반짝일까요?
Sin 노드에서 출력된 값은 항상 -1~1의 값을 출력합니다.
색상 정보(X, Y, Z, W(알파)의 Sin 노드 출력으로 설정합니다.
프로그램상
float c = sin(Time.deltaTime);
Vector4(c,c,c,c);
이런 인상인가요?
하지만 결국 하얀 타이밍은 0이 넘는 타이밍이다
Sin에서 출력한 값이 음수일 경우 검은색이므로 길고 어두워 보입니다.
따라서 Absolute 노드가 유용합니다.
Absolute는 입력 값의 절대 값을 출력하는 데 사용됩니다.
절대값이란 대충 말하면 음값이라도 음값의 수치만 꺼낸다.
엄밀히 말하면 좀 다르기 때문에 마음에 들면 조사해 보세요.
이 Absolute를 사용하면 방금 음수 부분이 양수가 됩니다.
아래와 같다.
TODO: Sin 값을 변경합니다.
줄무늬
줄무늬를 만들 때 어떤 방법이 있을까요?
줄무늬를 만들 때 입력에 공을 들여야 한다.
최종 출력과 큰 관계가 있기 때문에 원인은 매우 간단하다.
이 줄무늬는 최종 출력할 때 이 줄무늬 자체를 사용하기 위한 것이다.
'그곳에 있을 때 이 색깔을 발라야 한다'는 상태에 있어야 한다.
그곳에 있을 때 정보의 방식은 매우 많았다.
빛이 비치지 않는 상태
・ UV 좌표의 위치
・(Local World) 위치의 해당 위치
그곳의 물건을 확인하려면 반드시 색을 칠해야 한다
장소를 나타낼 때 이번에는 UV 좌표를 사용합니다.
UV 좌표는 기본적으로 XY 섹션에 0-1의 값을 포함하기 때문에 이 범위를 사용합니다.
하지만 이걸 그대로 사용한다면 0-1이므로 어두운 부분에서 서서히 하얗게 변하는 느낌은 다음과 같다.
이게 한 장에 여러 번 나오면 스트라이프가 될 것 같아요.
형상상 아래와 같다.
그것을 조립하는 데 사용되는 착색기 도표는 다음과 같다.
수신된 UV 좌표는 시종 0-1에 불과하기 때문에 multiply로 5배 증가하여 0-5의 값으로 변경합니다.
출력 0-5는 모듈 노드에서 지정한 값의 나머지를 나눈다.
이번에는 1, 0-5의 값을 나누어 0-1만 출력한다.
예를 들어, UV 좌표 0.1과 0.5의 경우
0.1->0.5->0.5
0.5->2.5->0.5
이런 느낌.
스트라이프가 완성됐습니다.
이동하다
만약 이번이라면, 입력 자체의 값은 변화가 필요하다.
결국 지속적인 변화가 필요하다.
이번에는 시간 부분을 사용하기로 했다.
Modulo에 제공하기 전에
다음 그림과 같습니다.
그러면 출력 스트라이프의 위치가 오프셋되어 스트라이프가 이동하는 것처럼 보입니다.
원칙적으로 아까 줄무늬인데 모듈에 들어가기 전에 시간값을 추가했습니다.
그러면 0-5 + Time 섹션의 값이 1로 나뉩니다.
α활용단어참조
α응용 프로그램 자체가 최종 출력 부분이기 때문에 UnlitMaster 노드에 연결된 알파 부분을 통해 진행할 수 있다.
Reference
이 문제에 관하여(Shader 그림을 처음 그리는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/herieru/items/ab3ec79610bf2deae8da텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)