Aşağıdaki kod ile OpenGL'de iki boyutlu yarım uçağı işlemek çalışıyorum at puanla: BuradaOpenGL: Üçgenler sonsuza
void renderHalfplane(double *x, double *n)
{
glPushMatrix();
double theta = -360.0 * atan2(n[0], n[1])/(2.0*PI);
glTranslated(x[0], x[1], 0);
glRotated(theta, 0, 0, 1.0);
glBegin(GL_TRIANGLES);
glVertex4d(0.0, 0.0, 0.0, 1.0);
glVertex4d(1.0, 0.0, 0.0, 0.0);
glVertex4d(0.0,-1.0, 0.0, 0.0);
glVertex4d(0.0, 0.0, 0.0, 1,0);
glVertex4d(-1.0,0.0, 0.0, 0.0);
glVertex4d(0.0,-1.0, 0.0, 0.0);
glEnd();
glPopMatrix();
}
Ben iki köşeler ile üçgenleri çizmek için homojen koordinatlar kullanıyorum "sonsuzluk."
Bu kod bilgisayarımda bir çekicilik gibi çalışır, ancak bir kullanıcı, kendileri üzerinde doğru bir şekilde oluşturmadığını bildirir: sonsuz bir yarım düzlem yerine iki (sonlu) üçgen görürler.
W-coordinate 0 tanımlanmamış davranışımı kullanmam mı gerekiyor? OpenGL'nin bazı sürümlerinde çalışan bir şey mi? Khronos OpenGL özelliklerini incelemeyi denedim, ancak w koordinat 0 ile ilkellerin oluşturulmasının ele alındığı bir bölüm bulamadım.
Kullanıcınızın cihazı nedir? – Bahbar
Kullanıcıya göre Mesa OpenGL sürücüleri ile Ubuntu çalışan bir dizüstü bilgisayar kullanıyor. Ubuntu ile bir masaüstüm var ama kodu orada test ettiğimde sorun yok. – user168715
w = 0 kullanmanız çok garip. Farklı grafik kartı sürücülerinde test etmelisiniz. – Luca