NkFireDance Shader

기존의 불 쉐이더는 연속된 dds 파일을 이용한 ifl 방식과, 파티클을 이용한 방식이 있었습니다.


ifl 파일은 퀄리티가 좋지 못하고,
파티클은 너무 느립니다.

그래서 불 같은 효과를 넣고 싶어도 최대한 절제해 넣어야만 하는 단점이 있었지유.
그래서 만들었습니다. 불용 쉐이더. NkFireDance 입니다.



사용방법은 다음과 같습니다.

첨부된 NkFireDance를 다운받아 ,

NkFireDance.NSF는 쉐이더의 Data 폴더에 넣고,
NkFireDance.hlsl 은 쉐이더/ Data의 DX9 폴더에 넣습니다.




NkFireDance 쉐이더를 선택 적용합니다. (그림은 그냥 FireDance지만 신경쓰지 마시길. 테스트 버전이라서 그렇슴.)

아래에 Custom attribute 가 생기고 FireMask 와 FirePattern 이 생깁니다.





FireMask는 이것입니다. 불 모양의 알파가 들어가 있어야 합니다. 오른쪽이 알파입니다.





FirePattern 은 이것입니다. 실제의 불 모양과 알파가 들어 있습니다. 이 패턴은 위와 아래가 이어져 있어야 합니다.
FirePattern 소스는 위로 스크롤됩니다. (속도는 하드코딩 되어 있습니다.왜? 귀찮 ...)
 그러므로 패턴을 제작할 때에는 위와 아래가 타일링 되어야 합니다.
그리고 춤추는 모양을 만들기 위해 알파가 약간 S자로 휘어 있는 것을 볼 수 있습니다.


두 패턴은 각각 곱셈으로 더해지게 됩니다. 그렇게 되면 이런 이미지가 되는거지요.


이것을 이용하면, 불 말고도 연기나 전기 흐름 등등의 이펙트를 표현할 수 있습니다.

퀄리티도 좋은 편이며, 무엇보다 많이 찍어도 느려지지 않습니다.

이미 유명하고 만들기도 쉬운 쉐이더인데 이제야 적용하게 되었네요
빨랑 여유가 생기면 얼음 쉐이더도 만들어야겠습니다.

by 김윤정 | 2009/01/09 17:45 | 비공개방 | 트랙백(1) | 핑백(1) | 덧글(2)

트랙백 주소 : http://chulin28ho.egloos.com/tb/4784689
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 대충 살아가는 게임개발자 at 2009/06/29 14:08

제목 : 쉐이더 완성
NkFireDance Shader이 쉐이더 개량버전. 이번엔 Emittance 값도 영향받게 해 놓았고, fog 값도 영향받게 바꿨습니다. 게다가 flow의 방향과 속도도 제어할 수 있게 해 놓았죠. FlowDirection 값을 X와 Y로 제어할 수 있는 버튼이 따로 만들 수 없길래 약간 꽁수를 부려봤습니다. 걍 FlowdirectionY 라는 메뉴를 체크박스로 만들어 Bool 처리 해버렸습죠. NSF에서 받기는 B......more

Linked at 대충 살아가는 게임개발자 : .. at 2009/04/13 16:01

... 그대로 들어갑니다. 일반적으로 파티클을 이용한 이펙트는 퀄리티가 좋지만, 부하가 많이 걸리는 작업입니다. 5. 쉐이더를 이용한 에니메이션 방법 (추가)http://chulin28ho.egloos.com/4784689 ... more

Commented by 앤써니 at 2009/08/19 04:44
흐음,저는 불 등은 파티클외엔 충분한 효과를 만들어내는줄 알았는데 이런것도 있었군요;;
Commented by 김윤정 at 2009/08/19 07:55
파티클은 하나하나의 입자가 오브젝트이기 때문에 일반적으로 무척 느립니다;
되도록이면 파티클은 쓰지 않는 쪽으로 하지요.
※ 로그인 사용자만 덧글을 남길 수 있습니다.

◀ 이전 페이지          다음 페이지 ▶