Saya mencoba membuat bola quad berdasarkan artikel , yang menunjukkan hasil seperti ini:
Saya dapat membuat kubus dengan benar:
Tetapi ketika saya mengonversi semua poin sesuai dengan rumus ini (dari halaman yang ditautkan di atas):
x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0));
y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0));
z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0));
Sphere saya terlihat seperti ini:
Seperti yang Anda lihat, tepi kubus masih mencuat terlalu jauh. Kubus berkisar dari -1
hingga +1
semua sumbu, seperti kata artikel itu.
ada yang tahu apa yang salah?
Jawaban:
Anda salah menuliskan formula.
Anda memodifikasi yang asli
x
dan menimpanya. Kemudian Anda memodifikasiy
berdasarkan bukan pada yang aslix
tetapi yang dimodifikasix
. Kemudian Anda memodifikasiz
berdasarkan versi modifikasi dari keduanya .Pertahankan yang asli, dan hitung ini:
Gunakan dx, dy dan dz sejak saat itu.
sumber