public class GLMesh extends GLBewegbaresObjekt
Klasse, die ein Mesh im OBJ-Format interpretiert und im bGLOOP-Kontext als Objekt verfügbar macht. Die Klasse unterstützt Mesh-Beschreibungen im Wavefront-OBJ-Format, die von allen gängigen 3D-Modellierungsprogrammen erzeugt werden können.
Zu einer OBJ-Datei gehört häufig auch eine MTL-Datei, die in der OBJ-Datei
referenziert wird und Materialbeschreibungen und Texturen enthält. Alle Referenzen,
sowohl in der OBJ- als auch in der MTL-Datei, beziehen sich relativ zur Position
der jeweiligen Datei. Steht also in foo/material.mtl
eine Referenz
zu einer Textur images/tex1.jpg
, so wird diese unter
foo/images/tex1.jpg
gesucht.
Eine Reihe von Features des Formats, u.a. Bump-Maps, werden nicht unterstützt.
GLObjekt.Darstellungsmodus
Constructor and Description |
---|
GLMesh(String pDateiname)
Erstellt ein
GLMesh -Objekt. |
GLMesh(String pDateiname,
double pMeshMaxScale)
Erstellt ein
GLMesh -Objekt. |
Modifier and Type | Method and Description |
---|---|
double |
gibDurchmesserX()
Gibt die maximale Ausdehnung in x-Richtung des Objekts zurück.
|
double |
gibDurchmesserY()
Gibt die maximale Ausdehnung in y-Richtung des Objekts zurück.
|
double |
gibDurchmesserZ()
Gibt die maximale Ausdehnung in z-Richtung des Objekts zurück.
|
GLTextur |
gibTextur()
Gibt das aktuelle Texturobjekt zurück.
|
void |
loesche()
Löscht das Objekt aus der Szene.
|
void |
setzeDurchsichtigkeit(double pAlpha)
Setzt den Durchsichtigkeitsfaktor des Objekts.
|
void |
setzeQualitaet(int pUnterteilungen)
Anzahl der polygonalen Unterteilungen des Modells.
|
void |
setzeQualitaet(int pBreitengrade,
int pLaengengrade)
Anzahl der polygonalen Unterteilungen des Modells.
|
void |
setzeSelbstleuchten(double pR,
double pG,
double pB)
Setzt die Farbwerte der Farbe, in der das Objekt "leuchtet".
|
void |
setzeSichtbarkeit(boolean pSichtbar)
Stellt ein, ob das Objekt in der Szene sichtbar ist.
|
void |
setzeTextur(GLTextur pTextur)
Legt die übergebene Textur auf das Objekt.
|
void |
setzeTextur(String pTexturBilddatei)
Legt die übergebene Textur auf das Objekt.
|
drehe, drehe, drehe, dreheDich, dreheDich, gibX, gibY, gibZ, resetSkalierungUndRotation, rotiere, setzeDarstellungsModus, setzePosition, skaliere, skaliere, verschiebe
gibFarbe, setzeFarbe, setzeGlanz, setzeMaterial, setzeSichtbarkeit
public GLMesh(String pDateiname, double pMeshMaxScale)
GLMesh
-Objekt. Dazu wird eine Mesh-Datei
im Wavefront-OBJ-Format verwendet.
Abbildung: Ein Beispiel für ein Mesh in bGLOOP mit Anzeige eines
das Modell umfassenden Quaders im Linienmodus
. Die
Abmessungen des Quaders wurden mit den gibDurchmesser?
-Befehlen
ermittelt (s.u.)
pDateiname
- Dateiname der OBJ-Datei. Eventuell weitere benötigte Textur-Dateien
werden in einer in der OBJ-Datei referenzierten MTL-Datei beschrieben. Hier
sind alle Angaben relativ zum Ort der jeweiligen Datei zu verstehen, in der die Angabe
gemacht wird.pMeshMaxScale
- Maximale Ausdehnung des Models in eine der drei
Hauptkoordinatenrichtungen
public GLMesh(String pDateiname)
GLMesh
-Objekt. Dazu wird eine Mesh-Datei
im Wavefront-OBJ-Format verwendet.pDateiname
- Dateiname der OBJ-Datei. Eventuell weitere benötigte Textur-Dateien
werden in einer in der OBJ-Datei referenzierten MTL-Datei beschrieben. Hier
sind alle Angaben relativ zum Ort der jeweiligen Datei zu verstehen, in der die Angabe
gemacht wird.public double gibDurchmesserX()
public double gibDurchmesserY()
public double gibDurchmesserZ()
public void setzeQualitaet(int pBreitengrade, int pLaengengrade)
pBreitengrade
- Anzahl der Unteilungen horizontalen ScheibenpLaengengrade
- Anzahl der Unteilungen vertikalen Scheibenpublic void setzeSelbstleuchten(double pR, double pG, double pB)
GLLichtobjekt
. Diese verwendet jedoch eine
Lichtquelle, von der in OpenGL in der Regel nur insgesamt 8 pro Szene zur Verfügung
stehen.pR
- Rotanteil, zwischen 0 und 1pG
- Grünanteil, zwischen 0 und 1pB
- Blauanteil, zwischen 0 und 1public void setzeQualitaet(int pUnterteilungen)
pUnterteilungen
- Anzahl der horizontalen und vertikalen
Scheiben in der UnterteilungsetzeQualitaet(int,int)
public void setzeTextur(GLTextur pTextur)
pTextur
- Ein GLTextur
-Objektpublic void setzeTextur(String pTexturBilddatei)
pTexturBilddatei
- Ein Dateiname einer Bilddatei (.jpg
oder .png)public GLTextur gibTextur()
null
zurück gegeben.GLTextur
-Objektpublic void setzeDurchsichtigkeit(double pAlpha)
pAlpha
- Ein Wert zwischen 0 (komplett durchsichtig) und 1
(vollständig opak)public void loesche()
GLObjekt
public void setzeSichtbarkeit(boolean pSichtbar)
pSichtbar
- Wenn true
, so wird das Objekt
gerendert, wenn false
, dann nicht.