티스토리 뷰
모션 블러 효과를 내기
방법
현재 방향을 나타내는 벡터를 셰이더에 전달하여 그 방향으로만 블러 효과를 준다.
코드(MotionBlur.fsh)
#ifdef GL_ES
precision lowp float;
#endif
varying vec2 v_texCoord;
uniform vec2 u_stepSize;
void main()
{
vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
color += texture2D(CC_Texture0, v_texCoord + 4.0 * u_stepSize) * 0.06;
color += texture2D(CC_Texture0, v_texCoord + 3.0 * u_stepSize) * 0.12;
color += texture2D(CC_Texture0, v_texCoord + 2.0 * u_stepSize) * 0.18;
color += texture2D(CC_Texture0, v_texCoord + 1.0 * u_stepSize) * 0.24;
color += texture2D(CC_Texture0, v_texCoord + 0.0 * u_stepSize) * 0.35;
gl_FragColor = color;
}
u_stepSize = vec2((nowSpeed/maxSpeed)/width, (nowSpeed/maxSpeed)/height);
결과
전달하는 u_stepSize 수치를 수정하면 블러 강도를 조절할 수 있다.
// 15.07.17 수정
속도를 stepSize로 사용하니 문제가 많아서 현재 위치에서 이전 위치를 뺀 값을 사용하도록 바꿨다.
'Programming > Cocos2d-x' 카테고리의 다른 글
클래스 구성에 따른 삭제 문제 - SpriteBatchNode를 사용 (0) | 2015.08.27 |
---|---|
cocos2d-x Reference : 파티클 블랜딩(Particle Blend) 종류 (0) | 2015.08.05 |
cocos2d-x Reference : 커스텀 셰이더(Custom Shader) (2) | 2015.07.06 |
cocos2d-x의 custom shader로 Glow 효과내기 (1) | 2015.07.03 |
텍스쳐래핑(Texture Wrapping) (0) | 2015.07.03 |
- Total
- Today
- Yesterday
- database
- SwiftUI
- Java
- C/C++
- 데이터베이스
- Spring
- Cocos2d-x
- winsock
- 운영체제
- 자료구조
- 수학
- C
- ios
- rxswift
- SOCKET
- ue4
- mongoDB
- 드라마
- machine learing
- scala
- 알고리즘
- JSP
- Git
- 국내여행
- C++
- game
- OS
- swift
- DesignPattern
- SHADER
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |