Я загружаю модель glb в Three.js, созданную в SketchUp. Файл можно найти здесь https://www.graviditetsberegner.dk/bpnew.skp
Модель содержит группу, которая называется текст с сеткой. Я хочу отобразить текстуру, содержащую текст здесь. Я использую следующий код:
var modelLoader = new THREE.GLTFLoader();
modelLoader.load("https://www.graviditetsberegner.dk/bpnew.glb", function (gltf) {
model = gltf.scene.clone();
model.scale.set(50,50,50)
scene.add(model);
//Use canvas to draw texture and add it to the model group Text
var textModelMesh = FindMeshWithNameInModel(model, "Text");
var textTexture = CreateCanvasTexture("This is a test");
textTexture.wrapS = THREE.RepeatWrapping;
textTexture.wrapT = THREE.RepeatWrapping;
textModelMesh.material.map = textTexture;
У меня есть две проблемы с кодом:
- Текст зеркальный. В других форматах, таких как dae, текст не отражается
- Текст отображается только тогда, когда я установил wrapS и wrapT на RepeatWrapping. Однако текстура, используемая в SketchUp, должна быть аналогична размерам сгенерированной текстуры на холсте.
Как я могу исправить эти проблемы?
Скрипка, показывающая проблему: https://jsfiddle.net/Lgmds9ce/2/