2016-03-24 12 views
2

Bir "yörünge yoğunluğuna" yaklaşmaya çalışıyorum, her pikseli yazılan toplam sayının sayılması için ek bir karıştırmaya sahip bir FBO'ya sunarak.GL_LINE öğesi başına kaç piksel yazılacağını belirlemenin bir yolu var mı?

Sorun şu ki (1) büyük yer değiştirmeli öğelerin daha uzun satırlar nedeniyle daha fazla sayılacağı ve (2) bir çizgi çizmek için kullanılan piksel sayısının da kaynaklanmasının neden olduğu bir nesne var. çizginin açısı.

Her öğe için çizilen piksellerin sayısını, çizgiyi çizmek için kullanılan piksel sayısına göre ağırlıklandırmak istiyorum. Bunu başarmanın bir yolu var mı? En kötü durumda, nitelik olarak uzunluk ve açı gönderebilir ve piksel sayısını tahmin edebilirim. Bunu yapmanın daha iyi bir yolu var mı? Ya da ne yapmak istediğimi gerçekleştirmek için iyi bir alternatif yolu var mı?

cevap

2

GL_SAMPLES_PASSED sorgusunu kullanabilirsiniz.

GLuint q; 
glGenQueries(1, &q); 
glBeginQuery(GL_SAMPLES_PASSED, q); 
glDrawArrays(GL_LINES, 0, 2); 
glEndQuery(GL_SAMPLES_PASSED); 
GLint num_pixels; 
glGetQueryiv(GL_SAMPLES_PASSED, GL_QUERY_COUNTER_BITS, &numPixels); 
printf("num_pixels = %d", num_pixels); 
glDeleteQueries(1, &q); 
İlgili konular