В (KHR_robustness.txt) такой переход: при включении (проверка надежного буфера) индексы в массиве элементов, которые ссылаются на данные вершин, которые находятся вне объекта буфера вершин включенного атрибута [для OpenGL ES], приводят к неопределенным значениям[для OpenGL] приводит к чтению нуля для соответствующих атрибутов, но не может привести к сбою приложения.
Я не мог знать, при каких условиях будет работать надежный доступ к буферу (если он уже был включен)?
Я пытаюсь изменить индексы [].Позвольте этому индексировать вне связанного массива.Но независимо от того, активирую ли я надежный доступ к буферу или нет, результатом отрисовки является замена неверной индексной точки на точку (0,0,0,0,0,0,1,0). И то и другое не приводит к сбою приложения.
Исходный код
vertexArray[ ]={
-0.5,0.5,0.0,1.0,
-1.0,0.5,0.0,1.0,
-0.5,0.0,0.0,1.0,
-0.5,1.0,0.0,1.0,
}
indices[ ]={
0,1,2
1,2,3,
}
glDrawElements(GL_TRIANGLES,12,GL_UNSINGED_SHORT,0);
Код модификации
vertexArray[ ]={
-0.5,0.5,0.0,1.0,
-1.0,0.5,0.0,1.0,
-0.5,0.0,0.0,1.0,
-0.5,1.0,0.0,1.0,
}
indices[ ]={
0,1,2
1,2,4,
}
glDrawElements(GL_TRIANGLES,12,GL_UNSINGED_SHORT,0);
// indices [6] = 4, в то время как vertexArray [4] находится вне этого массива, я думал в этом случае,произошел доступ из буфера. (Это правильно?)