2017-04-27 1 views
0

webgl을 사용하여 브러쉬 엔진을 구현하고 있습니다. 각 우표에 대해,이 우표를 framebuffer의 이전 도면과 혼합하고, 나만의 맞춤 블렌딩 기능을 사용하여 멋진 효과를 얻고 싶습니다. 저는 사용자 정의 텍스처에 스탬프를 그리고 셰이더를 사용하여 이전 드로잉 프레임 버퍼와 사용자 정의 텍스처를 블렌드 할 수 있다는 것을 알고 있습니다. 그러나 캔버스가 매우 크기 때문에 그릴 우표가 많아 성능이 매우 느립니다.WebGL : 이전 블렌드와 각 블렌드를 어떻게 맞춤 블렌딩 모드로 블렌드 할 수 있습니까?

OpenGL ES2.0에서 알고있는 사과는 이렇게하기 위해 EXT_shader_framebuffer_fetch 확장을 제공하며 빠릅니다. 그러나 더 나은 성능으로 WebGL에서 이것을 어떻게 할 수 있습니까?

답변

0

확장자가있는 경우에도 WebGL에서 대상 프레임 버퍼에서 패치를 가져올 수 없습니다.

서로 다른 텍스처 기반 프레임 버퍼 사이에서 핑퐁 (ping-pong)을하면서 다른 프레임으로 드로잉하면서 샘플링해야합니다. (원하는 경우 마우스 이벤트에 응답하여 프레임 당 두 번 이상 그릴 수 있습니다!) 그런 다음 가장 최근에 그려진 프레임 버퍼의 텍스처를 requestAnimationFrame의 모든 프레임에서 뒤로 버퍼에 그립니다.

+0

감사합니다. 제프, 드디어 효과를 얻었습니다! –

관련 문제