우리가 사용하는 렌더러를 WebGL2로 업데이트 할 수있는 기회를 얻었습니다. 렌더러를 가능한 한 이전 버전과 호환되도록하기 위해 우리는 (업그레이드 전에했던 것처럼)로드 된 확장을 추적하고 그러한 확장이 승격되었다하더라도 확장을 에뮬레이트합니다. 렌더러는 확장과 관련된 몇 가지 작업을 수행합니다. 바깥에서 모든 것이 아주 투명합니다.WebGL2의 프로모션 된 확장 목록 전체
원활하게 작동하게하려면 전체 프로모션 광고 확장 목록이 필요합니다. 블로그를 거의 찾지 못했지만 그 목록은 완전하지 않습니다. GitHub에서 찾은 다른 목록은 실제로 승격되지 않았거나 삭제 된 중복 확장자가 있기 때문에 잘못 보입니다. 나는 문서에서 많은 것을 발견하지 못했다.
그래서, 나는 몇 가지 경험적 연구를 발견 :
// 12 extensions were promoted in WebGL2 without surprises
[
'ANGLE_instanced_arrays',
'EXT_blend_minmax',
'EXT_frag_depth',
'EXT_shader_texture_lod',
'EXT_sRGB',
'OES_element_index_uint',
'OES_standard_derivatives',
'OES_texture_float',
'OES_texture_half_float',
'OES_vertex_array_object',
'WEBGL_depth_texture',
'WEBGL_draw_buffers',
]
는 특히 내 목록에없는
OES_texture_float_linear
및
OES_texture_half_float_linear
확장에 대한 걱정. WebGL2의 구현 나는 로컬로
OES_texture_float_linear
을 가지고 있지만,
OES_texture_half_float_linear
은 가지고 있지 않지만, WebGL은 그 둘 모두를 가지고 있습니다. 나는 WebGL1 문맥에서
OES_texture_float_linear
이 조금 다르게 행동한다는 것을 알고 있기 때문에 나의 직감은 문제가있을 수 있다고 말한다.
또한 disjoint_timer_query
확장으로 이상한 일이 발생했습니다. 그 확장은 부분적으로 병합되었습니다. WebGL2 컨텍스트에는 해당 확장의 일부 속성이 있습니다. Chrome에 disjoint_timer_query_webgl2
이라는 이름을 가진 getQueryObject
을 제외한 모든 속성이 있지만 Firefox에서는 disjoint_timer_query
확장자가 WebGL2 컨텍스트에서 계속 사용할 수 있습니다.
그럼 목록이 완성 되었습니까? 특히, OES_texture_half_float_linear
이 목록에 있어야합니까? 그리고 그 이유는 비슷합니까? OES_texture_float_linear
은 머물렀습니까?
감사합니다.
-
그래서 최종 답변은 (아마도)해야한다 :
// 14 extensions were promoted in WebGL2
[
'ANGLE_instanced_arrays',
'EXT_blend_minmax',
'EXT_frag_depth',
'EXT_shader_texture_lod',
'OES_element_index_uint',
'OES_standard_derivatives',
'OES_texture_float',
'OES_texture_half_float',
'OES_vertex_array_object',
'WEBGL_depth_texture',
'WEBGL_draw_buffers',
/* with caveats */
'EXT_sRGB',
'OES_texture_half_float_linear',
'EXT_disjoint_timer_query',
]
는 마지막 세 확장이주의로 승진했다 유의하시기 바랍니다. 내선
EXT_sRGB
은 상수
SRGB_ALPHA
을 잃었습니다. 확장자
OES_texture_half_float_linear
이 승격되었지만, 유사하게는
OES_texture_float_linear
이 승격되지 않았습니다. 확장자
EXT_disjoint_timer_query
부분적으로 승격되었습니다. 해당 확장의 일부 속성은 WebGL2 컨텍스트에서 표시되고 다른 속성은
EXT_disjoint_timer_query_webgl2
확장으로 이동되었습니다. 또한 현재 (2017.05.16) Firefox WebGL2 컨텍스트에는 여전히
EXT_disjoint_timer_query
개의 확장명과
EXT_disjoint_timer_query_webgl2
확장자가 없습니다.
float 텍스처를 필터링하는 것과는 달리 필터링 반 플로트 텍스처가 향상되었습니다. 그 맞습니까? disjoint_timer_query 확장은 어떤가요? 목록에 있어야할까요? 파이어 폭스와 크롬은 서로 다른 견해를 가지고있는 것처럼 보입니다. 그렇죠? – wandalen
정확함,'OES_texture_half_float_linear'이 승격되었습니다. 'OES_texture_float_linear'는 ** 승격되지 않았습니다 **. 나는'EXT_disjoint_timer_query' 확장에 대해 모른다. [확장 자체] (https://www.khronos.org/registry/webgl/extensions/EXT_disjoint_timer_query/)에 따르면 WebGL1에서는 명시 적으로 허용되지 않습니다. WebGL2의 경우 [EXT_disjoint_timer_query_webgl2] (https://www.khronos.org/registry/webgl/extensions/EXT_disjoint_timer_query_webgl2/) – gman
Firefox의 표준과 모순 된 것처럼 보입니다. 그럼에도 불구하고 파이어 폭스 방식은 나를 위해 논리적으로 보인다. – wandalen