Hallo 
Wisst ihr zufällig, wie man für die 3D-Welt billboards programmiert? Ich habe mir jetzt mal so ein kleines Progrämmchen zu "world oriented billboards" (oder "viewpoint oriented billboards") geschrieben. Da richtet sich das billboard der Kamera aus. Ist also wie ein Plakat, das der Betrachter immer von vorne sieht, egal wohin er sich bewegt. Siehe z. B. http://www.flipcode.com/archives/clouds.jpg
Ich habe mir hier 2 kleine Klassen programmiert:
- Billboard: dort definiere ich Position, Breite und Höhe
- BillboardGeometry: für die Vertizes
Eine Billboard-Instanz liefert mir dann eine BillboardGeometry-Instanz.
Die Idee war folgende: Normalerweise habe ich für alle Objekte (Kugel, Pyramide, ...) immer nur ein einziges Objekt. Das wird dann irgendwie beliebig transformiert, bis es an der richtigen Stelle im world-space ist. Das kann ich aber bei billboards nur mit der zentralen Position machen, nicht jedoch mit den Vertizes (die das Plakat definieren). Denn die Vertizes müssen dann so ausgerichtet sein, dass die Normale des Plakats immer in Richtung Betrachter geht.
Habe ich das so richtig gemacht? Mir kommt das nämlich fürchterlich kompliziert vor.
Falls sich das wer anschauen will, was ich versucht habe: 'Untitled Post' | TextUploader.com
Wird erst ab Zeile 1194 interessant.
Und die index.html-Datei:
Wisst ihr zufällig, wie man für die 3D-Welt billboards programmiert? Ich habe mir jetzt mal so ein kleines Progrämmchen zu "world oriented billboards" (oder "viewpoint oriented billboards") geschrieben. Da richtet sich das billboard der Kamera aus. Ist also wie ein Plakat, das der Betrachter immer von vorne sieht, egal wohin er sich bewegt. Siehe z. B. http://www.flipcode.com/archives/clouds.jpg
Ich habe mir hier 2 kleine Klassen programmiert:
- Billboard: dort definiere ich Position, Breite und Höhe
- BillboardGeometry: für die Vertizes
Eine Billboard-Instanz liefert mir dann eine BillboardGeometry-Instanz.
Die Idee war folgende: Normalerweise habe ich für alle Objekte (Kugel, Pyramide, ...) immer nur ein einziges Objekt. Das wird dann irgendwie beliebig transformiert, bis es an der richtigen Stelle im world-space ist. Das kann ich aber bei billboards nur mit der zentralen Position machen, nicht jedoch mit den Vertizes (die das Plakat definieren). Denn die Vertizes müssen dann so ausgerichtet sein, dass die Normale des Plakats immer in Richtung Betrachter geht.
Habe ich das so richtig gemacht? Mir kommt das nämlich fürchterlich kompliziert vor.
Falls sich das wer anschauen will, was ich versucht habe: 'Untitled Post' | TextUploader.com
Wird erst ab Zeile 1194 interessant.
Und die index.html-Datei:
Code:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
<script src="js.js"></script>
</head>
<body onload="start()">
<canvas id="glcanvas" width="640" height="480">
Your browser doesn't appear to support the <code><canvas></code> element.
</canvas>
</body>
</html>
Zuletzt bearbeitet: