가능한 경우 WebGL에서 중간 정밀도 사용하기

일마리 헤익키넨

실제 OpenGL ES 2.0 하드웨어에서 WebGL을 테스트한 Opera의 친구들은 참고하시기 바랍니다. 많은 데모와 애플리케이션에서는 실제로 보증되지 않는 경우에도 프래그먼트 셰이더에서 높은 정밀도를 사용합니다.

프래그먼트 셰이더의 고음 (Highp)은 OpenGL ES 2.0 사양의 선택적 부분이므로 일부 하드웨어는 이를 지원하지 않습니다. 지원하더라도 성능 저하가 발생할 수 있습니다. 보통 mediump를 사용하면 충분하므로 애플리케이션이 휴대기기에서도 작동할 수 있습니다.

실제로 프래그먼트 셰이더가 이전에

precision highp float;

다음과 같이 변경하면 문제가 해결될 것입니다.

precision mediump float; // or lowp