티스토리 뷰
모션 블러 효과를 내기
방법
현재 방향을 나타내는 벡터를 셰이더에 전달하여 그 방향으로만 블러 효과를 준다.
코드(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
- ue4
- 드라마
- JSP
- DesignPattern
- 자료구조
- game
- Spring
- Cocos2d-x
- SwiftUI
- winsock
- C++
- 알고리즘
- rxswift
- 국내여행
- OS
- SHADER
- scala
- 데이터베이스
- ios
- 운영체제
- database
- 수학
- swift
- machine learing
- Java
- C
- C/C++
- mongoDB
- Git
- SOCKET
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |