티스토리 뷰
cocos2d-x에서 셰이더롤 적용하는 방법
ShaderCache에 셰이더를 등록하고 적용한다.
코드
GLProgram* shader = new GLProgram();
shader->initWithFilenames("SelectEffect.vsh", "SelectEffect.fsh");
shader->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_POSITION, GLProgram::VERTEX_ATTRIB_POSITION);
shader->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_COLOR, GLProgram::VERTEX_ATTRIB_COLOR);
shader->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_TEX_COORD, GLProgram::VERTEX_ATTRIB_TEX_COORDS);
shader->link();
shader->updateUniforms();
ShaderCache::getInstance()->addGLProgram(shader, "SelectEffect");
ShaderCache에 셰이더를 등록한다.
auto background = Sprite::create("background.png");
auto blur = ShaderManager::getInstance()->getBlurShader();
auto gp = GLProgramState::create(blur);
background->setGLProgram(blur);
background->setGLProgramState(gp);
gp->setUniformVec2("u_stepSize", Vec2(1.0/wndSize.width, 1.0/wndSize.height));
this->addChild(background);
등록한 셰이더를 불러와서 적용한다.
GLProgramState를 통해 셰이더에 각자 다른 uniform변수를 전달할 수 있다.
플랫폼에 따라 openGL, openGL ES 를 사용하는 경우가 있으므로 셰이더 코드를 작성할 때 유의해야 한다.
'Programming > Cocos2d-x' 카테고리의 다른 글
cocos2d-x Reference : 파티클 블랜딩(Particle Blend) 종류 (0) | 2015.08.05 |
---|---|
Shader : 모션 블러(Motion Blur) (0) | 2015.07.16 |
cocos2d-x의 custom shader로 Glow 효과내기 (1) | 2015.07.03 |
텍스쳐래핑(Texture Wrapping) (0) | 2015.07.03 |
Shader : 외곽선 그리기(Sprite Outline) (0) | 2015.07.02 |
- Total
- Today
- Yesterday
- 국내여행
- swift
- game
- SwiftUI
- SOCKET
- Cocos2d-x
- ios
- machine learing
- C++
- ue4
- 운영체제
- Spring
- rxswift
- 자료구조
- database
- 드라마
- JSP
- mongoDB
- Java
- scala
- DesignPattern
- 수학
- 데이터베이스
- C
- OS
- winsock
- 알고리즘
- SHADER
- C/C++
- Git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |