Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kdo je autorem výstavy obrazových fotografií „Očima Hanse Christiana Andersena“?

V dnešní soutěži hrajeme o:



Vykreslenie textu v scene

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Vykreslenie textu v scene

Autor: timwood

23:32:32 04.09.2011

aha. jasne:). Uz to funguje. dik. Vedel som ze nejak tak by to ist mohlo, ale s OpenGl robim len kratko, neviem este co a ako. Cakal som v tom bude nejaky zadrhel:)

Citovat příspěvek

 

Re: Vykreslenie textu v scene

Autor: nou

21:01:57 03.09.2011

no kreslenie musis prerobit takto. proste na vykreslovanie textu potrebujes
Orrtho projekcnu maticu. kym pre normalnu scenu perspektivnu.

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,h,0);
glMatrixMode(GL_MODELVIEW);

//tu kreslit text

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60, (GLfloat)w / (GLfloat)h, 1.0, 1000.0);
glMatrixMode(GL_MODELVIEW);

//tu kreslit 3D scenu.

Citovat příspěvek

 

Vykreslenie textu v scene

Autor: timwood

19:23:58 03.09.2011

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

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: