#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
везде и установите третьему компоненту значение ноль. Это работает так, как ожидалось?