Hareket eğrisi için Hermite eğrileri kullanmanızı öneririm. Sadece bir başlangıç noktası / hızı ve bir bitiş noktası / hızı verirsiniz ve bu ikisi arasında hoş ve düzgün bir eğri oluşturur. İlk nokta çiftinin bitiş noktasını / hızını sonraki nokta çiftinin başlangıç noktası / hızı olarak kullanın ve kesintisiz uzun ve sarma bir eğriniz var.
Bu, hızı yönetme gereksinimini mükemmel bir şekilde yerine getirir: seçtiğiniz hızlarla zaman içinde bir nokta listesi verirsiniz ve size sorunsuz bir şekilde enterpolasyonlu konum ve hız değerleri verir. Bununla gitmek istiyorsanız, 3D geliştirme uygulamasından ayıklamanız gereken tek şey, istediğiniz yoldaki noktalar ve hızlardır. Bunları, belki de kullanıcı girdisine bağlı olarak çalışma zamanında da oluşturabilirsiniz.
Yönü ayarlamak için bir dizi seçeneğiniz vardır. Uçak her zaman nereye gittiğini gösterecekse (bu mantıklı bir durumdur) geminizin nereye bakması gerektiğini bulmak için Hermite eğrisinden enterpolasyonlu hız vektörünü kullanabilirsiniz. Eğer yukarı vektörü (bir düzlemde hareket ediyorsa veya hangi yönün yukarı olması gerektiğini biliyorsanız) biliyorsanız, üçüncü ekseni çapraz (ön, yukarı) ile hesaplayabilirsiniz ve oryantasyonunuz olur.
Düzlemin bazen yoldaki ön yönden sapması için bir şekilde "sallantılı" bir yönlendirme istiyorsanız, ön yönü istenen yön olarak kullanabilir ve mevcut yön ile istenen yön arasında art arda tek adımlı bir adım atabilirsiniz.
Yolla hiçbir ilgisi olmayan özel yönlendirme istiyorsanız, elbette buna yönlendirme kuaterniyonlarının bir listesini sağlayabilirsiniz. Sonra puanlarınız (nokta, hız, kuaterniyon) olur. Ardından yönelimlerinizi yol boyunca ayarlamak için arka arkaya iki kuaterniyon arasındaki slerp'i kullanabilirsiniz. Slerp'in doğrusal bir enterpolasyon yöntemi olduğunu unutmayın . Ancak, genellikle iyi olmalıdır. Döndürmelerin dikişlerde yeterince düzgün olmadığını bulursanız, kuaterniyonların listesini burada Bölüm 7'de açıklandığı gibi bir Bezier eğrisi ile enterpolasyonlamayı deneyebilirsiniz .
İşte başlamanıza yardımcı olabilecek bazı kaynak kodları. Kuaterniyonların bir listesi (kadro, bezier, vb.) İçin bir dizi pürüzsüz enterpolasyon tekniğine sahiptir.
Herhangi bir sorunuz varsa bize bildirin!