E-on zamanımın bir döneminde Vue ürün serisinin gizemlerini korudum .
Sana söyleyebilirim, seni birkaç gün sürecek, tam zamanlı.
Bazı kütüphane veya süper akıllı bir yol bulamazsanız, klasik yol, tıklattığınızda farenin koordinatını pencerede elde etmektir, bu görünüm penceresine göreceli bir koordinatsa, x ve y'yi genişlik ve yüksekliğe bölebilirsiniz, [0,1] aralığında bir vektör (float 2d) elde eder. x ve y için [-0.5, 0.5] aralığına girmek için (0.5,0.5) çıkarın.
Ardından, x ve y'yi x ve y ışını gibi kullanarak bu koordinattan bir ışın yaparsınız ve z'yi odak mesafesine ayarlarsınız. bazen en boy oranı bu operasyonda eşek bir ağrıdır. Biraz uğraşma ve deneme hatası sizi düzeltir.
Daha sonra, oluşturduğunuz veya blender veya diğer DCC'de modellenmiş bir ağınız varsa veya birbirinizle eklemlenebilecek kafes parçaları olan gizmos elemanlarınızla kesişimini kontrol etmeniz gerekir ... Bu kafes parçasını bir ışın / üçgen kesişme sorgusu.
Ya da varsa, ışın / silindir, ışın / küre gizmo görünümünüze ve parçalarınıza göre.
Çarpıştıkları ilkeye dönüşüm matrisi uygulayabilen kavşak rutinlerine sahip olmalısınız . Gizmo'nuz hareket ettiği hizmet nesnesiyle çeviri yapacak, dönecek ve kameraya olan mesafenin tersi ile ölçeklenecek, böylece ekranda sabit bir projeksiyon boyutu kalacak şekilde son derece önemlidir.
Sonra etkileşim kısmı var, en kolay fare ilk "fare aşağı" olay ve mevcut "Fare hareket" konumu, saf 2D olarak nokta delta almak ve bu delta mevcut eksen hareketi olarak kullanmaktır k
ampirik olarak karar verdiğiniz bazılarıyla çarpılır . Dahili birimlerinize göre piksel veya mevcut yakınlaştırma ölçeği vs.
Son adım, gizmo'nun matrisini manipüle edilen nesneye uygulamaktır, böylece onu takip eder.
Size söylüyorum, bu cehennemde bir yolculuktur ve boş zamanlarınızda bir haftadan fazla beklerseniz. Alanı tamamen keşfediyorsanız birkaç hafta. Hafta sonlarınız başka etkinliklerle meşgulse bir aydan fazla :)
Sizin için ışın / üçgen kavşak sorgusu yapmak için intel'den Embree 2.0'ı indirmenizi öneririm, bu yüzden kodlama konusunda endişelenmenize gerek yok. Ya da blender'dan kodu acımasızca kopyalayabilir / yapıştırabilir ve uyarlayabilirsiniz ... Sanırım Apache lisansına geçtiler mi? Yasal olarak mümkün olmalıdır.