Рисование текста на экране с GLUT не работает вообще - PullRequest
2 голосов
/ 09 февраля 2012

Я не знаю, что я делаю неправильно, это Perl, но это не зависит от языка (метинкс):

Этот пример рисует много снеговиков из примера, который я нашел в сети: (Я перенес это на perl)

Проблема в том, что нет никаких признаков того, что текст отображается.

sub renderScene{
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   
        gluLookAt( $x, 1.0, $z,
            $lx,1.0,$lz,
            0.0,1.0,0.0);
        glColor3f(0.5, 0.2, 0.4);
glMatrixMode(GL_MODELVIEW);     

        #Draw ground
        glBegin(GL_QUADS);
            glVertex3f(-100.0, 0.0, -100.0);
            glVertex3f(-100.0, 0.0,  100.0);
            glVertex3f( 100.0, 0.0,  100.0);
            glVertex3f( 100.0, 0.0, -100.0);
        glEnd();

        for ($i=-3; $i<3; $i++)
        {
            for ($j=-3 ; $j<3; $j++)
            {
                glPushMatrix();
                glTranslatef($i*10.0,0,$j*10.0);
                drawSnowMan();
                glPopMatrix();
            }
        }
        glColor3f(0.5, 0.5, 0.0);
        glRasterPos2f(0.5, 0.5);
        my $strin = "Viva peron carajo!";
        my @string = split('',$strin);
        for my $char(@string){
            glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, $char);
        }

        glutSwapBuffers();
    }

1 Ответ

0 голосов
/ 09 февраля 2012

Ваш код неполный.$x, $z, $lx и $lz не определены, и нет вызовов для настройки матрицы проекции.Таким образом, я могу только предложить:

glRasterPos координаты - это координаты мира / модели.Вы действительно хотели поместить текст близко к началу координат, возможно, в центре снеговика?

Если вы хотите работать с экранными координатами, вы должны установить соответствующую ортогональную "2D" матрицу проекции.Помните, что вы можете перемещать / воспроизводить / воспроизводить матрицу проекции между командами рисования.

Кроме того, начните с отрисовки треугольника / квадрата в текстовой позиции.

...