오류가
bindAttribLocation: index out of range
코드가 너무 많은 속성을 사용하려고하는 것이 좋습니다. GPU가 지원하는 속성의 수를 확인하려면
maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
8 WebGL 구현이 지원해야하는 최소값입니다.
는 bindAttribLocation
에 대한 그 오류는 값 bindAttribLocation
라는 코드를 의미합니다> = maxAttributes
가장 일반적인 3D 애플리케이션을 위해 그들이 위치를해야하기 때문에 조금 놀라운
은, 법선, 텍스처 아마도 다음 접선, binormals, 정점 좌표 그림 물감. 그것은 단지 6 가지 속성입니다. 텍스처 좌표의 두 번째 또는 세 번째 세트는 평범하지는 않지만 그보다 드물게 보인다. 여전히 오류 메시지가 제안하는 것입니다.
단지 그것의 지옥을 위해 나는 Score Rush (turbulenz 게임)을 점검했다. 0, 1, 2가 아닌 이유는 무엇입니까?하지만 가장 좋은 8 가지 속성을 지원하는 기기에서는 7이 가장 높은 속성이기 때문에 실패 할 것입니다.
업데이트 : turbulenz의 출처를 살펴 보았습니다. 현재 설계된대로 16 개의 속성이 필요합니다. 0에서 15까지의 각 속성에 특정 용도를 제공합니다. 예를 들어, 텍스처 좌표의 첫 번째 세트는 항상 속성 8로 이동합니다 (텍스처가 사라지는 것을 보는 이유입니다). 첫 번째 세트의 탄젠트는 항상 속성 14로 이어집니다.다음은 재 설계 또는 간접의 일부 금액 미만 16 개 속성을 GPU에서 작동하도록해야합니다 할당
SEMANTIC_POSITION = 0;
SEMANTIC_POSITION0 = 0;
SEMANTIC_BLENDWEIGHT = 1;
SEMANTIC_BLENDWEIGHT0 = 1;
SEMANTIC_NORMAL = 2;
SEMANTIC_NORMAL0 = 2;
SEMANTIC_COLOR = 3;
SEMANTIC_COLOR0 = 3;
SEMANTIC_COLOR1 = 4;
SEMANTIC_SPECULAR = 4;
SEMANTIC_FOGCOORD = 5;
SEMANTIC_TESSFACTOR = 5;
SEMANTIC_PSIZE0 = 6;
SEMANTIC_BLENDINDICES = 7;
SEMANTIC_BLENDINDICES0 = 7;
SEMANTIC_TEXCOORD = 8;
SEMANTIC_TEXCOORD0 = 8;
SEMANTIC_TEXCOORD1 = 9;
SEMANTIC_TEXCOORD2 = 10;
SEMANTIC_TEXCOORD3 = 11;
SEMANTIC_TEXCOORD4 = 12;
SEMANTIC_TEXCOORD5 = 13;
SEMANTIC_TEXCOORD6 = 14;
SEMANTIC_TEXCOORD7 = 15;
SEMANTIC_TANGENT = 14;
SEMANTIC_TANGENT0 = 14;
SEMANTIC_BINORMAL0 = 15;
SEMANTIC_BINORMAL = 15;
의 목록입니다.
모바일 크롬을 원격 디버깅하여 콘솔이 잘못된 점에 대해 유용한 힌트를 제공했는지 확인하려 했습니까? https://developers.google.com/chrome-developer-tools/docs/remote-debugging – Anton
예, 시도했는데 WebGL에 대한 몇 가지 오류가 발생했습니다. https://lh6.googleusercontent.com/ -45B9-1PMRnc/UtBjH2BGNYI/AAAAAAAAAII/7QvxiD1Q71Q/s1600/error2.png. 이미지를로드하는 것과 같이 POT- 치수 또는 무언가가 깨지는 것 같습니다. – Eric