겉으로보기에는 무해한 데이터로 기본 요소를 그릴 때 범위를 벗어납니다. 나는 (크기에 대해 앞에서 사과한다) :오류가 발생했습니다 : GL_INVALID_OPERATION : glDrawElements : 버퍼 오류에 대한 범위를 벗어났습니다.
const vertexColourData = [
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0/*,
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 1.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
1.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
0.0, 0.0, 1.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0,
1.0, 1.0, 0.0, 1.0*/
],
vertexPositionData = [
-1.0, -1.0, +1.0,
+1.0, -1.0, +1.0,
+1.0, +1.0, +1.0,
-1.0, +1.0, +1.0,
-1.0, -1.0, -1.0,
-1.0, +1.0, -1.0,
+1.0, +1.0, -1.0,
+1.0, -1.0, -1.0,
-1.0, +1.0, -1.0,
-1.0, +1.0, +1.0,
+1.0, +1.0, +1.0,
+1.0, +1.0, -1.0,
-1.0, -1.0, -1.0,
+1.0, -1.0, -1.0,
+1.0, -1.0, +1.0,
-1.0, -1.0, +1.0,
+1.0, -1.0, -1.0,
+1.0, +1.0, -1.0,
+1.0, +1.0, +1.0,
+1.0, -1.0, +1.0,
-1.0, -1.0, -1.0,
-1.0, -1.0, +1.0,
-1.0, +1.0, +1.0,
-1.0, +1.0, -1.0/*,
-1.0, -1.0, +1.0,
+1.0, -1.0, +1.0,
+1.0, +1.0, +1.0,
-1.0, +1.0, +1.0,
-1.0, -1.0, -1.0,
-1.0, +1.0, -1.0,
+1.0, +1.0, -1.0,
+1.0, -1.0, -1.0,
-1.0, +1.0, -1.0,
-1.0, +1.0, +1.0,
+1.0, +1.0, +1.0,
+1.0, +1.0, -1.0,
-1.0, -1.0, -1.0,
+1.0, -1.0, -1.0,
+1.0, -1.0, +1.0,
-1.0, -1.0, +1.0,
+1.0, -1.0, -1.0,
+1.0, +1.0, -1.0,
+1.0, +1.0, +1.0,
+1.0, -1.0, +1.0,
-1.0, -1.0, -1.0,
-1.0, -1.0, +1.0,
-1.0, +1.0, +1.0,
-1.0, +1.0, -1.0*/
],
vertexNormalData = [
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0/*,
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, +1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, 0.0, -1.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, +1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
0.0, -1.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
+1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0,
-1.0, 0.0, 0.0*/
],
vertexIndexData = [
0, 1, 2,
0, 2, 3,
4, 5, 6,
4, 6, 7,
8, 9, 10,
8, 10, 11,
12, 13, 14,
12, 14, 15,
16, 17, 18,
16, 18, 19,
20, 21, 22,
20, 22, 23/*,
24, 25, 26,
24, 26, 27,
28, 29, 30,
28, 30, 31,
32, 33, 34,
32, 34, 35,
36, 37, 38,
36, 38, 39,
40, 41, 42,
40, 42, 43,
44, 45, 46,
44, 46, 47*/
];
마지막 배열을 제외하고 모두 주석 처리를 제거하면 모두 정상적으로 작동한다. 이 경우 색상, 일반 및 위치 데이터가 두 배나 많으며 두 번째 절반은 사용되지 않은 상태로 유지됩니다. 내 수학 잘못이고 내가 볼 수없는
ERROR :GL_INVALID_OPERATION :
glDrawElements
: range out of bounds for buffer
:
나는 효과적으로 나는 다음과 같은 오류가 발생, 놀이로 마지막 정점을 가져 오는, 그러나,vertexIndexData
배열의 마지막 절반의 주석을 해제합니다. 누구든지 아이디어가 있습니까?
업데이트 : 이것은 정점 인덱스 데이터의 실제 값과 아무 관련이 없습니다. 다음을 시도하면 ...
vertexIndexData = [
0, 1, 2,
0, 2, 3,
4, 5, 6,
4, 6, 7,
8, 9, 10,
8, 10, 11,
12, 13, 14,
12, 14, 15,
16, 17, 18,
16, 18, 19,
20, 21, 22,
20, 22, 23,
0, 1, 2,
0, 2, 3,
4, 5, 6,
4, 6, 7,
8, 9, 10,
8, 10, 11,
12, 13, 14,
12, 14, 15,
16, 17, 18,
16, 18, 19,
20, 21, 22,
20, 22, 23/*,
24, 25, 26,
24, 26, 27,
28, 29, 30,
28, 30, 31,
32, 33, 34,
32, 34, 35,
36, 37, 38,
36, 38, 39,
40, 41, 42,
40, 42, 43,
44, 45, 46,
44, 46, 47*/
];
... 나는 다시 같은 삼각형을 그릴 것이라고 생각합니다. 동일한 오류가 발생합니다. 따라서 불만은 버텍스 인덱스 데이터 버퍼의 크기와 관련이 있습니다.
[WebGL의 버퍼 범위를 벗어나는 일반적인 원인은 무엇입니까?] (https://stackoverflow.com/questions/32447641/what-is-common-cause-of-range-out-of- bounds-of-buffer-in-webgl) – Andreas
안녕하세요. 예, 답변을 살펴 보았지만 도움이되지 않습니다. 위의 데이터는 여기에 설명 된 세 가지 범주 중 하나에 속하지 않는 것으로 보입니다. –
뭔가 처음에는 나를 놀라게한다 : 6 개의 꼭지점이 있지만 'vertexIndexData'에는 23보다 큰 인덱스가 포함되어있다. 이것은 분명히 "바운드"이다. 내가 놓친 것이 있는가? –