3.0까지 texture에 직접 쓸 수 있는 방법이 없었다. FBO로 감싸서 그려야 했고, 그 과정은 코드로는 간단하지만, 실제 GPU에서는 상당한 작업이 들어가는 작업이었다. 이제 ComputeShader는 바로 읽기/쓰기를 지원한다. 하지만 여기에는 제약이 있는 데, 기존에 사용하던 방식이 아닌 다른 함수를 통해 텍스쳐를 만들어야 한다. Immutable-storage에 텍스쳐만들기 말이 좀 해깔리지만(Immutable:바꿀 수 없는) 그냥 ComputeShader는 Immutable-storage의 텍스쳐만 쓸(write) 수 있다고 생각하면 된다. 이렇게 만들 수 있는 함수는 glTexStorage*()함수들이다. 텍스쳐 만드는 코드 GLuint texId = 0; glGenTextures( 1,..
Texture(또는 FBO)를 다른 Texture(또는 FBO)에 복사하려면 보통 대상을 FBO(Framebuffer Object)로 만들고 Shader를 작성하여 복사를 한다. 이 방식에는 FBO와 Texture를 엮는 과정이 발생하게 되는 데, 이 게 좀 부하가 걸리는 작업이다. 이 부하를 줄이고, Framebuffer를 사용하는 복잡한 과정없이 바로 복사할 수 있는 함수들이 있다. 모든 상황을 지원하는 것이 아니기에 정리를 좀 해 본다. 1 : FBO -> FBO glBlitFrameBuffer(3.0), glCopyPixels(2.0) 2 : FBO -> Texture glCopyTexSubImage2D(2.0) 3 : Texture -> FBO 바로 지원하는 함수는 없다. Shader를 만들어서..
Single Thread에서 작업을 할 경우, 이 FenceSync라는 녀석은 필요가 없다. 하지만 이전에 포스트했던 shared Context를 사용할 경우 문제가 발생할 수 있다. 다음의 시나리오를 통해 발생할 수 있는 상황을 연출해보자. 이 전에 OpenGLES를 멀티 쓰레드로 사용하는 방법은 다음의 링크를 이용하기 바란다. jamssoft.tistory.com/227 안드로이드 NDK OpenGLES 초기화 및 Shared Context OpenGLES 초기화는 자주하는 작업은 아니지만, 다시 하려고 하면 어떻게 하는지 까먹는 작업이라 이렇게 정리를 해둔다. NDK로 코드가 작성되었으며, 이게 우끼게도 Java는 다른 식으로 작성해야 문 jamssoft.tistory.com Thread B에서 t..
OpenGLES 초기화는 자주하는 작업은 아니지만, 다시 하려고 하면 어떻게 하는지 까먹는 작업이라 이렇게 정리를 해둔다. NDK로 코드가 작성되었으며, 이게 우끼게도 Java는 다른 식으로 작성해야 문제가 없다. 초기화 순서 1. eglInitialize 2. eglBindAPI 3. eglChooseConfig 4. eglCreate(Window 또는 Pbuffer)Surface 5. eglCreateContext 6. eglMakeCurrent 초기화는 다음의 순서로 진행한다. 순서가 바뀔 수도 있지만, 필자가 가진 모든 기기에서 위 순서를 사용할 경우 문제 없이 잘 초기화가 되었다. 그리고, 아래의 설명은 필자가 그냥 경험으로 터득?한 것이라 틀린 부분이 많을 수 있다. 어짜피 초기화만 끝나면 신..
- Total
- Today
- Yesterday
- texture
- 블로그
- 애드센스
- OpenGL ES
- 예금
- 경제보복
- 적금
- 전기요금
- choreographer
- 재태크
- 애드핏
- OpenGLes
- 텍스처
- 컴퓨트쉐이더
- 아끼는 법
- 전기세
- gpgpu
- TTS
- 티스토리
- 안드로이드
- 공유 컨텍스트
- 금리
- ComputeShader
- 컴퓨트셰이더
- 사용료
- 에어컨
- 전기료
- 에어콘
- 재테크
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |