Сколько нормальных?
Вопрос
если вы вычисляете нормали многоугольника для его рендеринга в WebGL, используете ли вы нормаль для каждого индекса в массиве индексов или для каждой вершины в массиве вершин?
Решение
Каждая вершина.Вершина в смысле WebGL (который такой же, как OpenGL ES и другие предшественники) на самом деле не является точкой в пространстве, а скорее комбинацией атрибутов.Одним из них почти всегда является местоположение (хотя в необычных случаях у вас его может и не быть), а другие обычно представляют собой такие вещи, как вектор нормали, цвет, координаты текстуры и так далее.
Массив индексов, напротив, представляет собой смещение в массивы атрибутов вершин.Поэтому, когда вы указываете индекс (скажем) 1 в массиве индексов, это сокращение для "вершины, созданной путем объединения первого местоположения в буфере местоположений, первой нормали в буфере нормалей, первого цвета в буфере цветов и первой координаты текстуры в буфере координат текстуры".
Самой нелогичной вещью для меня, когда я изучал это, было отделение вершин от мест, которые они случайно занимают.Нет никаких причин, по которым две вершины не могут иметь одинаковое местоположение.
Другие советы
в Примечания здесь, Пользователь рассчитывает их для каждой вершины.