일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MultiCore
- 옵저버
- Multithread
- c++
- vector
- 멀티코어
- stl
- 한국산업기술대학교
- C
- 메모리관리
- 프레임워크
- 쓰레드
- 게임공학과
- observer pattern
- thread
- Design Pattern
- 유니크포인터
- 멀티쓰레드
- 스마트포인터
- 멀티코어 프로그래밍
- material
- multi-core
- Unreal
- EFFECTIVE C++
- Atomic
- random access
- 옵저버 패턴
- 디자인패턴
- 복사생성자
- sequential
- Today
- Total
태크놀로지
[Material] Lava Effect(용암효과)(3) 본문
오늘목표
1. 표면디테일 추가
2. 노말값 추가
3. 노이즈값에 따라 외형 변경 (월드 디스플레이스먼트 추가(tessellation))
4. crust noise 패턴 추가(용암에서 식어 검은색인 부분)
실습
1. 표면 디테일 추가
우선 움직이는 텍스쳐를 하나 만든후 노이즈 패턴과 더해줍니다.
더했을시 0~2사이의 값이 나오기 때문에 너무 밝게 나타납니다. 따라서 더한값을 2로 나눠줍시다.
2. 노말값 추가
다음으로 움직이는 노말값을 추가해줍니다. 빛 방향에 따라 텍스쳐가 달라진 차이를 볼 수 있습니다.
3. 노이즈값에 따라 외형 변경 (월드 디스플레이스먼트 추가(tessellation))
노이즈 패턴에 따라 외형변경을 주고싶기 때문에, tessellation - PN Triangle 모드로 설정한후에 월드 디스플레이스먼트에 연결해줍니다.
4. crust noise 패턴 추가(용암에서 식어 검은색인 부분)
다음 용암에서 식어 조각나있는 검은부분을 만들어 볼겁니다. 우선 노말값을 추가할때 사용했던 텍스쳐와, 표면디테일을 표현할때 사용한 fire 텍스쳐의 r채널을 더합니다.
현재 양수부분만 출력되고 있어 검은색 부분이 너무 적습니다. lerp를 사용하여 -1 ~ 1까지의 범위를 지정해 음수값도 출력하도록 합시다.
다음으로 검은색 비중을 조절하기 위해 lerp(-1 ~ crust noise)범위를 지정하고 alpha 값에 얼만큼의 검은색 부분을 추가할 것인지의 비율을 적어줍니다. 그리고 crust noise 패턴이 움직이도록 시간값도 적용해줍시다.
이제 만든 Crust Noise 패턴을 Blackbody값과 곱해줍시다.
하지만 검은색이 아니라 파란색부분이 나타나고 있네요. Blackbody에 음수값이 출력되고 있어 Clamp로 0~1값만 출력하도록하여 CrustNoise패턴과 곱해줍시다.
최종결과
출처
한국산업기술대학교 게임공학과 이택희 교수님 고급그래픽스효과 강의 - Lava effects
'고급 그래픽스 효과' 카테고리의 다른 글
[Material] Material Parameter (0) | 2020.06.29 |
---|---|
[Material] Lava Effect(용암효과)(4) (0) | 2020.06.29 |
[Material] Lava Effect(용암효과)(2) (0) | 2020.06.28 |
[Material] Lava Effect(용암효과)(1) (0) | 2020.06.28 |
[Material] Electronic Fence Effect (Opacity Mask, 이미시브 컬러) (2) (0) | 2020.06.28 |