Three.js текстурирование изображения в Google colab работает не так, как ожидалось

#three.js #google-colaboratory

#three.js #google-colaboratory

Вопрос:

Я пытаюсь использовать реализацию TensorflowGraphics Three.js в Google colab можно применить изображение к сетке, но, хотя он может обрабатывать изменение цвета, когда я пытаюсь загрузить изображение, он не работает, и я не уверен, что происходит не так.

Вот код:

 context = threejs_visualization.build_context()
default_material = context.THREE.MeshPhongMaterial.new_object({
  'map':context.THREE.ImageUtils.loadTexture(samplesfn   "missing_tex.png")
})
default_material['vertexColors'] = context.THREE.NoColors

mesh["material"] = default_material
_ = threejs_visualization.triangular_mesh_renderer(mesh, width=100, height=100)
 

threejs_visualization.triangular_mesh_renderer предоставляется по адресу https://github.com/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/threejs_visualization.py

Я знаю, что проблема не в том, что изображение не может быть загружено должным образом, так как в том же файле OpenCV может его загрузить.

Любая помощь приветствуется.

Ответ №1:

Я никогда не использовал этот синтаксис, но я считаю, что вы должны иметь возможность изменять цвет материала, просто изменяя .color свойство вместо того, чтобы иметь дело с цветами вершин:

 default_material = context.THREE.MeshPhongMaterial.new_object({
  'map':context.THREE.ImageUtils.loadTexture(samplesfn   "missing_tex.png"),
  'color': 0xff9900 // Set to orange
});
 

Осветительные устройства

Фонматериал должен быть освещен подсветкой, если вы собираетесь использовать map свойство. Материалы обычно не светятся сами по себе, им нужен свет, чтобы вы их видели. Смотрите Здесь демонстрацию простой настройки освещения

Если вы хотите, чтобы ваша текстура «светилась», а не отражала свет, задайте для вашей текстуры emmissiveMap свойство, вместо map .

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

1. на самом деле я уже могу правильно изменить цвет, проблема в том, что при настройке карты с текстурой происходит сбой

2. А, понятно. Вы добавили освещение в свою сцену? Кроме того, вы получаете какие-либо ошибки консоли, в которых говорится, что изображение не удалось загрузить?

3. Я не добавлял никаких источников света, и нет, это не говорит о том, что изображение не удалось загрузить

4. А, вот и ваша проблема. Вы можете добавить подсветку или сделать текстуру излучающей. Смотрите выше, я расширил свой первоначальный ответ.