three.js привязанные к вершинам

#three.js #textures

#three.js #Текстуры

Вопрос:

Я пытаюсь присвоить значения вершинам плоской геометрии. Каждая грань должна иметь свои собственные значения для вершин. Насколько я понимаю, я должен использовать атрибут «BoundTo», и он отлично работает, если я привязываю его к граням или вершинам. Но я не могу заставить это работать с привязкой к faceVertices. Мой код:

 ...
a_other_uv: {
    type: 'v2',
    boundTo: 'faceVertices',
    value: map.cellCover.getEmptyUVs()
},
...
  

К каждой грани применяются 2 текстуры. Этот код отлично работает, если привязан к граням или вершинам.

Комментарии:

1. Что такое «не работает»? Что getEmptyUVs() возвращает?

2. Хорошо, теперь это работает, если я использую type: «v3» (хотя и странным образом), но если я использую type: «v2», то этот атрибут полностью игнорируется. getEmptyUVs() возвращает массив массивов (длина первого равна количеству граней, второй массив содержит ТРИ.Vector2).

3. Ага. Загляните в setMeshBuffers() в WebGLRenderer.js , и если вы выполните поиск по faceVertices , вы увидите, что поддерживаются только v3 и v4 . Это необходимо исправить… Но что в этом «странного» v3 ? Не могли бы вы, пожалуйста, быть более наглядными?

4. В своих шейдерах я использую переменную типа vec2, но отправлял ТРИ.Vector3. если я отправлю Vector2, то все будет работать нормально, даже несмотря на то, что для типа в js script установлено значение «v3», но в шейдерах были отправлены «vec2» и THREE.Vector2.

5. Извините, я понятия не имею, о чем вы говорите… Используйте vec3 везде и установите третьему компоненту значение ноль. Это работает так, как ожидалось?