벤치마킹 :glDisable (GL_BLEND) 로이드 장치 성능에 영향을 폴리곤의 동일한 세트의 렌더링 시간의
:A) glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
B) glDisable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ZERO);
는에 실제로 약간 느리다 블렌딩 렌더링하여 활성화되는 것을 보여준다
- 바탕 화면, OpenGL을 2.0
- 레노버 P90Pro 인텔 아톰/파워 VR G6430, OpenGL을 ES 2.0
- 삼성 갤럭시 탭 : 0
내 혼란이 이러한 장치에 벤치마킹하는 것은 큰 차이, 내가 장애인 혼합 렌더링, 가정, 의미를 보여줍니다 성능 비용이 많이 드는 블렌딩 등이 사용 된 것으로입니다/ARM-A57 /는 Adreno와
- 소니 엑스 페리아 Z3 + 내장 퀄컴는 Adreno 305 (430)
이유는 무엇입니까? 차이가 있어야합니다, 맞죠? 사용되는 조각 쉐이더는 매우 간단합니다 :
precision highp float;
uniform sampler2D tex;
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
void main() {
gl_FragColor = v_fragmentColor * texture2D(tex, v_texCoord);
}
상황의 정의가 너무 일반적인 경우는 SO 질문에 적합하기에 적합한 최소한의 작업 샘플을 생산하기 상당히 어렵다 죄송합니다. 여기에 내가 놓치고있는 몇 가지 알려진 문제가 있기를 바란다.
ps : 테스트 한 모든 장치에서 결과 이미지가 예상대로 표시되며 블렌딩이 활성화 된 투명 영역과 비활성화 된 경우 불투명 한 검정색이 표시됩니다. 전체적인 질문은 단지 성과에 관한 것입니다.
어떻게 측정 했습니까? –
저는 그래픽, GPU 등의 전문가는 아니지만, "블렌딩을 사용하지 않는 _ 렌더링은 블렌딩을 사용할 때와 같이 성능이 많이 드는 것과 같습니다." "주변에서 블렌딩이 가능한 _ 렌더링은 ** 더 이상 ** 성능이 뛰어납니다. ** (a) **보다 소리가 좋고 (문제가 아님), ** (b) **는 [해당 장치에서] 사용할 수있는 하드웨어가 있음을 제안합니다. 블렌딩 (blending) "은 렌더링의 정상적인 부분으로 사용되므로 효과적으로 사용할 수 있습니다. – TripeHound
두 경우 모두 드라이버/하드웨어 제한 인 60fps가 표시 될 수 있습니다. 그것은 당신이 성능 차이를보기에 충분히 힘들지는 것을 의미합니다. 차이를보기 위해 많은 (수천?) 이미지를 렌더링 해보십시오. – Dave