#three.js #html5-video #aframe
Вопрос:
Я сталкиваюсь со следующей проблемой: <a-videosphere material="repeat: ..."
не работает шов, в то время как он работает с простым a-video
тегом.
Я пытаюсь создать полусферу и отобразить на ней левую половину равноугольного видео.
material="side: back; shader: flat; repeat: 0.5 1;"
geometry="primitive: sphere; radius: 100; thetaStart: 0; thetaLength: 180; phiStart: 0; phiLength: 180; segmentsWidth: 64; segmentsHeight: 64"
Повторение материала не поддерживается видеосферами? Есть ли какой-нибудь обходной путь?
Комментарии:
1. Интересно, что это работает,
<a-sphere>
если я использую :<a-sphere material="src: #video_sphere; side: back; shader: flat; repeat: 0.5 1;" geometry="primitive: sphere; radius: 100; thetaStart: 0; thetaLength: 180; phiStart: 0; phiLength: 180; segmentsWidth: 64; segmentsHeight: 64" etc... >
2. Я думал
material
, что это установка значений текстуры передvideotexture
использованием, понятия не имею, почему<a-sphere>
это работает, но в любом случае вы всегда можете получить доступ к нижележащемуTHREE.js
слою и установить все, что вам нужно
Ответ №1:
Вы всегда можете получить прямой доступ к текстуре видео, и там установите repeat
значение:
// custom component declaration
AFRAME.registerComponent("foo", {
init: function() {
// wait until the texture is loaded
this.el.addEventListener("materialtextureloaded", e => {
// grab the texture
const tex = e.detail.texture;
// set the repeat value
tex.repeat.set(0.5, 1);
})
}
})
// <a-videosphere foo></a-videosphere>
Проверьте это в этом глюке
Комментарии:
1. Я вижу только черную полусферу без каких-либо текстур в вашем примере с глюком.
2. @Kory75 вы мобильный, iOS или macOS?