Frage

Ich bin versucht, einen verchromten Würfel in GLUT / OpenGL zu machen und ich bin nicht sicher, wie es zu tun.

Ich sah ein „Materialien Table“ in einem Lehrbuch auf die „Chrome“ als Wesen zeigte: Ambient: (0,25, 0,25, 0,25), Diffuse: (0,4, 0,4, 0,4) und Specular:. (0.774597,0.774597,0.774597)

Meine Frage ist, wie kann ich einen einfachen Würfel erstellen und anwenden, dieses Material / Textur, um es in Glut / OpenGL?

Do I "glutSolidCube ()" verwenden? Wenn ja, wie bewerbe ich mich dann auf die Chrom Textur, um es?

kann GLUT / OpenGL Menschen zeigen Sie mir in die richtige Richtung?

War es hilfreich?

Lösung

Dies sollte so einfach sein wie der Aufruf von glMaterialfv() vor glutSolidCube() .

Ich habe OpenGL nicht seit der Schule getan, aber hier einige Anzeigeschleife Code aus einem alten Projekt, das eine Kugel verwendet, die Sie auf dem richtigen Weg bekommen sollte:

_Ambient[CHROME][0] = 0.25f;
_Ambient[CHROME][1] = 0.25f;
_Ambient[CHROME][2] = 0.25f;
_Ambient[CHROME][3] = 1.0f;
_Diffuse[CHROME][0] = 0.4f;
_Diffuse[CHROME][1] = 0.4f;
_Diffuse[CHROME][2] = 0.4f;
_Diffuse[CHROME][3] = 1.0f;
_Specular[CHROME][0] = 0.774597f;
_Specular[CHROME][1] = 0.774597f;
_Specular[CHROME][2] = 0.774597f;
_Specular[CHROME][3] = 1.0f;
_Shininess[CHROME] = 76.8f;


void Display()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glPushMatrix();
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, _Ambient[CHROME]);
    glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, _Diffuse[CHROME]);
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, _Specular[CHROME]);
    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, _Shininess[CHROME]);
    // Translations...
    glutSolidSphere(_Radius, _Slices, _Stacks);
  glPopMatrix();

  glFlush();

  glutSwapBuffers();
}

Andere Tipps

Haben Sie bei Umgebungs-Mapping geschaut? Sie mögen Ihr Objekt Licht von anderen Objekten in der Umgebung zu reflektieren, so dass Sie im Grunde eine Textur anwenden, wie die Umgebung aussieht und Texturkoordinaten basierend auf Normalen erzeugen. Dadurch wird die Oberfläche eines gespiegelten Aussehen verleihen. Sie können OpenGL automatisch generieren Textur für jeden Vertex-Koordinaten basierend mit glTexGen .

NeHe tutorial 23 deckt diese mit einer Kugel-Mapping. Sie können auch Ihre eigenen Texturkoordinaten pro-Vertex-oder pro Pixel unter Verwendung von GLSL erzeugen. hier ein Tutorial , dass auf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top