Zdravim
Pokusam sa vykreslit bitmapovy text do 3D sceny. Skusal som rozne tutorialy, a funguju. Ibaze problem je ten, ze ono to vykresluje text len ak mam Reshape funkciu takuto:
[code]
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 1000.0);
gluOrtho2D(0,w,h,0);
glMatrixMode(GL_MODELVIEW);
}
[/code]
Teda mam pouzite [bold]gluOrtho2D(0,w,h,0);[/bold]. Takto to funguje, ale 3D scena sa nezobrazuje. Ak tam dam gluPerspective(..) tak je to naopak, scena sa zobrazuje, ale text nie :)
[bold]Ako to spojit dokopy, aby to vykreslovalo spolu ? (resp. kde robim chybu)[/bold]
Funkcia pre kreslenie textu:
[code]
void drawBitmapText(char *string,float x,float y,float z)
{
char *c;
glRasterPos3f(x, y,z);
for (c=string; *c != '\0'; c++)
{
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10, *c);
}
}
[/code]
Tuto funkciu volam v display() takto:
[code]
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glColor3f(0,1,0);
[bold]drawBitmapText("kkkdghjdghjjfdhdfdh",10,10,0);[/bold]
glPushMatrix();
if( camera_on )
{
camera();
printf("xpos:%f ypos:%f zpos:%f xrot:%f yrot:%f\n", xpos, ypos, zpos, xrot, yrot);
}
pipe();
if( grid_on )
{
grid();
}
if( cross_on )
{
cross();
}
glPopMatrix();
glutSwapBuffers();
angle++;
}
[/code]
Zdravim
Pokusam sa vykreslit bitmapovy text do 3D sceny. Skusal som rozne tutorialy, a funguju. Ibaze problem je ten, ze ono to vykresluje text len ak mam Reshape funkciu takuto:
[code]
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 1000.0);
gluOrtho2D(0,w,h,0);
glMatrixMode(GL_MODELVIEW);
}
[/code]
Teda mam pouzite [bold]gluOrtho2D(0,w,h,0);[/bold]. Takto to funguje, ale 3D scena sa nezobrazuje. Ak tam dam gluPerspective(..) tak je to naopak, scena sa zobrazuje, ale text nie :)
[bold]Ako to spojit dokopy, aby to vykreslovalo spolu ? (resp. kde robim chybu)[/bold]
Funkcia pre kreslenie textu:
[code]
void drawBitmapText(char *string,float x,float y,float z)
{
char *c;
glRasterPos3f(x, y,z);
for (c=string; *c != '\0'; c++)
{
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10, *c);
}
}
[/code]
Tuto funkciu volam v display() takto:
[code]
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glColor3f(0,1,0);
[bold]drawBitmapText("kkkdghjdghjjfdhdfdh",10,10,0);[/bold]
glPushMatrix();
if( camera_on )
{
camera();
printf("xpos:%f ypos:%f zpos:%f xrot:%f yrot:%f\n", xpos, ypos, zpos, xrot, yrot);
}
pipe();
if( grid_on )
{
grid();
}
if( cross_on )
{
cross();
}
glPopMatrix();
glutSwapBuffers();
angle++;
}
[/code]
Citovat příspěvek