Avatar billede baxos Nybegynder
19. november 2003 - 15:40 Der er 7 kommentarer og
1 løsning

OpenGL ZeroHero - Object i OpenGL

Nu sad jeg lige og lavede den der aktitle Lave et 3D spil

er nu færdig MEN jeg kan ikke finde ud af hvordan jeg så indsætter et billede af en mand der bare skal stå stille 

Hjælp hvordan?
jeg har prøvet
  glBegin(gl_Quads);
  glVertex3f(0.5,2,5);
  glVertex3f(-0.5,-2,-5);
  glVertex(5,10,10);
  glVertex(6,7,8);
  glEnd;
og i FormCreate

  Context := SetupContext(Form1);
    Gulv_ID := LoadTexture('C:\Gulv.Bmp');
  Vaeg_ID := LoadTexture('C:\Væg.Bmp');
  Loft_ID := LoadTexture('C:\Loft.Bmp');
robber_ID := LoadTexture('C:\robber.jpeg);
  Application.OnIdle := Idle;
Avatar billede soreno Praktikant
19. november 2003 - 15:44 #1
Du mangler at placere texturens kordinater på dine kanter (vertices).

F.eks. noget ala (copy/paste fra c++, så du skal selv rette syntaksen):
      glTexCoord2f(1, 1); glVertex3f( 1.0f, 1.0f, -1.0f);
      glTexCoord2f(1, 0); glVertex3f( 1.0f,-1.0f, -1.0f);
      glTexCoord2f(0, 0); glVertex3f(-1.0f,-1.0f, -1.0f);
      glTexCoord2f(0, 1); glVertex3f(-1.0f, 1.0f, -1.0f);


Desuden skal du "binde" den texture du vil benytte med:
glBindTexture(GL_TEXTURE_2D, texture[0]);

Som måske skal oversættes til:
glBindTexture(GL_TEXTURE_2D, Gulv_ID);

Og du skal være sikker på at textures er enablet.
Det gøres med:
glEnable(GL_TEXTURE_2D);

Samlet må det blive noget ala dette:
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, Gulv_ID);
glTexCoord2f(1, 1); glVertex3f( 1.0f, 1.0f, -1.0f);
glTexCoord2f(1, 0); glVertex3f( 1.0f,-1.0f, -1.0f);
glTexCoord2f(0, 0); glVertex3f(-1.0f,-1.0f, -1.0f);
glTexCoord2f(0, 1); glVertex3f(-1.0f, 1.0f, -1.0f);
Avatar billede soreno Praktikant
19. november 2003 - 15:47 #2
Der mangler lige et begin og en end.
Muligvis bør du også sætte farven til "hvid".


glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, Gulv_ID);
glBegin(GL_QUADS);
  glColor3f(1.0f, 1.0f, 1.0f);
  glTexCoord2f(1, 1); glVertex3f( 1.0f, 1.0f, -1.0f);
  glTexCoord2f(1, 0); glVertex3f( 1.0f,-1.0f, -1.0f);
  glTexCoord2f(0, 0); glVertex3f(-1.0f,-1.0f, -1.0f);
  glTexCoord2f(0, 1); glVertex3f(-1.0f, 1.0f, -1.0f);
glEnd();
Avatar billede baxos Nybegynder
19. november 2003 - 16:54 #3
Soreno  Standerd farvne er jo hvid i OpenGL
Avatar billede soreno Praktikant
19. november 2003 - 17:04 #4
Ja, men lige så snart du skal vise flere ting (evt. med andre farver) kan det være smart at angive farven.
Avatar billede zerohero Nybegynder
19. november 2003 - 21:05 #5
Hej Baxos,

Grunden er, at du bruger Jpeg filer. I min artikel bruger jeg kun BMP filer. Du kan sagtens konventere en Jpeg til en BMP i Delphi. Der et godt eksempel i Delphi's hjælpe-fil!
Avatar billede zerohero Nybegynder
19. november 2003 - 21:08 #6
Baxos du har rét. I dit tilfælde gør det lige meget, om du definere farver eller ej. Da du kun bruger textures ;))
Avatar billede baxos Nybegynder
04. december 2003 - 21:37 #7
Smid da lige et svar! ;)
ps zerohero jeg skulle sige fra en i Dark AGe oF camelot du har stjålet hans nick ;)
Avatar billede zerohero Nybegynder
04. december 2003 - 22:08 #8
Her et svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester