Bir SphereGeometry
, ve CanvasTexture
kullanarak basit bir WebGL 3D Panorama uygulaması oluşturdum. Şimdi, SphereGeometry
'un belirli bölümleri üzerinde "HotSpots" ekleyerek sahneyi hayata geçirmeyi düşünüyorum. Sorun şu ki, DOMElements
değişikliğinin nasıl güncelleneceğini anlamak, böylece konumlarının güncellenen Camera
konumunun yansımasıdır. Temel olarak, Camera
dönerken, çeşitli DOMElements
, kameranın dönme yönüne göre içeri ve dışarı hareket edecektir. Ben döndü PerspectiveCamera
camera.rotation
kullanarak <div>
<canvas>
için absolute
ve translating
X
ve Y
pozisyon konumlandırma çalıştı ama gerçekten işe yaramadı;THREE.js SphereGeometry DOMElements kullanarak panorama noktaları
#TestHotSpot {
/* not sure if using margins is the best method to position hotspot */
margin-top: 50px;
margin-left: 50px;
width: 50px;
height: 50px;
background: red;
position: absolute;
}
JavaScript
/**
CONFIG is my stored object variable; it contains the PerspectiveCamera instance
code is being called inside of my RequestAnimationFrame
**/
config.camera.updateProjectionMatrix();
config.controls.update(delta);
document.getElementById("TestHotSpot").style.transform = "translate("+ config.camera.rotation.x +"px, "+ config.camera.rotation.y +"px)";
Here da istenen etkinin canlı örneğidir
CSS: İşte benim JS & CSS implentation bu.
Bu sorunu çözmek için en iyi çözüm ne olurdu? Bunu çalıştırdığımda, DOMElements
'un yalnızca hafifçe hareket ettiğini fark ettim; Ben de SphereGeometry
boyunca onlar (örneğin, "arkasında" konumlanarak yerleştirildi nereye onlar gerçekten hesapta almayacağını fark Camera
;! Gerçekten karmaşık
THREE.js
motoru için herhangi bir eklenti kullanmak mutluyum yanı sıra. herhangi öğreticiler takip önceden yanıtlarken için çok teşekkür ederiz!
Merhaba @serious_s, cevabınız için çok teşekkürler! Bunların cssObject'e nasıl girdiğine dair bazı dokümanlar bulmaya çalıştım ama boş verdim. Nasıl kullanılacağını açıklayan bir kod snippet örneğiniz var mı? Hala biraz kafam karıştı - üzgünüm! – lindsay
Tekrar merhaba! Daha fazla araştırma yaptıktan sonra, cevabınızı şimdi anlıyorum - yardımlarınız için teşekkürler! Upvoted. – lindsay
Düşünmüyorsanız, lütfen araştırmanızı paylaşın, ne tutku veya okuma yaptınız, başka ne buldunuz, belki de bu süreci anlamak için bana yardımcı olabilecek birkaç iyi bağlantınız var mı? Paylaşman istenebilecek ilgili bilgiler için teşekkür ederiz. – lowtechsun