본문 바로가기

💻 내 소개 안녕하세요 엄청짱 프로그래머 손다빈 입니다.
  • 나이 : 96년생
  • 특이사항 : MZ세대, INFJ, 오른손잡이, 아이폰 유저
  • 좋아하는 음식 : 햄버거피자치킨솥뚜껑삼겹살떡볶이오튀김밥
  • 취미 : 개발, Programming, 코딩, 프로그래밍, Coding

🥷기술
Unity
Godot
Cpp
Javascript
D3
Vue

🐱 우리집 고양이 소개
츄르 먹은 후 츄르 먹기 전
  • 이름 : 콜라
  • 나이 : 8살
  • 종 : Nado moreum

📱 개인 프로젝트
🏢 참여한 프로젝트
빌런즈 Life is Pair 도씨어부키우기 직장상사혼내주기 서바이벌빙고 SlitherCoin

🌱 내 잔디밭

Godot Visual Shader 를 이용해서 불타면서 사라지는 효과 만들기 본문

글 묶음/나만쓰는 Godot

Godot Visual Shader 를 이용해서 불타면서 사라지는 효과 만들기

초긍정 개발자 다빈맨 2020. 9. 22. 11:39

이걸 만듭시다

쉐이더 파라미터 변수는 두가지가 필요합니다.

 

Shader Param

uniform float transparancy; // 사라지는 투명도 수치를 나타내는 변수
uniform sampler2D noiseTexture; // 노이즈 텍스쳐

투명도 수치를 나타내는 변수와 노이즈 텍스쳐 변수가 필요합니다. 이 글에서는 비주얼 쉐이더(Visual Shader) 기능을 이용해서 쉐이더를 작성할 예정입니다.

 

타면서 사라지는 효과 기본형

1. 노이즈 텍스쳐의 RGB Vector3 를 스칼라로 변환해서 R 값만 뽑아냅니다. (Vector Decompose 함수 이용)

2. 노이즈 텍스쳐에서 얻어낸 R 값과 투명도 변수 스칼리 값과 비교하여 텍스쳐의 하얀색 영역의 R값이 더 크면 투명하도록 합니다.

 

transparancy 값이 0

 

transparancy 값이 1

간단하게 구현되었습니다. 여기서 좀 더 사라지는 부분에 외각선 색상을 넣어봅시다.

외각선 색상에 필요한 쉐이더 파라미터 변수를 하나 추가합니다.

 

uniform vec4 outlineColor : hint_color;

transparency 파라미터 값의 0.7보다는 큰 값을 노이즈 텍스쳐에서 얻어와 외각선과 곱해서 텍스쳐와 더합니다.

 

이렇게 간단하게 디졸브 효과 쉐이더를 만들 수 있습니다. 고도엔진에서는 비주얼 쉐이더를 사용하지 않고 직접 코드로 쉐이더를 작성하는 것이 다른 어떤 게임엔진과 비교했을때도 가장 간편하다고 생각하지만 비주얼 쉐이더를 한번 사용해보았습니다.

 

예제 프로젝트는 github.com/MyNameIsDabin/MyShaderForGodot 에서 확인할 수 있습니다.