cube mit 8 vertices
Übersicht

Boris1993Betreff: cube mit 8 vertices |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo liebe Forummitglieder
ich habe seit gestern angefangen mich mit Blitzmax zu beschäftigen. ich habe auch schon einen würfel mit OpenGl erstellt der aus 6 quads besteht(also 24 Vertices). Nun ist meine Frage, wie kann man es schaffen, dass man einen würfel mit nur 8 vertices zum funktionierne bekommt? war das verständlich ausgedrückt? ![]() danke schonmal für antworten ich wünsch euch noch ein erholsames wochenende ![]() |
||
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gar nicht. Du kannst in einer Datei 8 Vertices speichern, aber du musst 24 mal glVertex* aufrufen.
ZEVS |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach die Vertices wiederverwenden dann gehen auch 8. | ||
Farbfinsternis.tv |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit dem immediate Mode (glBegin/glEnd) geht das nicht, da man Vertices nicht wiederverwenden kann. Du musst dafür Vertex- und Indexarrays (bzw. -buffer) verwenden. Siehe dazu glVertexPointer/glDrawElements. | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok schau ich mir mal an danke | ||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habs geschafft der würfel dreht sich ![]() hat jemand noch verbesserungsvorschläge? Code: [AUSKLAPPEN] '-----Initialisierung----- GLGraphics 1024, 768 glEnable GL_DEPTH_TEST glMatrixMode GL_PROJECTION glLoadIdentity() glFrustum -0.1, 0.1,-0.1, 0.1, 0.1, 100 glMatrixMode GL_MODELVIEW glLoadIdentity() '-----Variablen----- Local rcube:Float Local vertices:Float[] Local indices:Int[] vertices = [1.0, 1.0, 1.0,-1.0, 1.0, 1.0,-1.0,-1.0, 1.0, 1.0,-1.0, 1.0, 1.0,-1.0,-1.0, 1.0, 1.0,-1.0,-1.0, 1.0,-1.0,-1.0,-1.0,-1.0] indices = [0, 1, 2, 3, 0, 3, 4, 5, 0, 5, 6, 1, 1, 6, 7, 2, 7, 4, 3, 2, 4, 7, 6, 5] '-----Hauptschleife----- While Not KeyHit(KEY_ESCAPE) glClear GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT glLoadIdentity() glTranslatef 0.0, 0.0,-7.0 glRotatef rcube, 0.0, 1.0, 0.0 glEnableClientState GL_VERTEX_ARRAY glVertexPointer 3, GL_FLOAT, 0, vertices glDrawElements GL_QUADS, 24, GL_UNSIGNED_INT, indices glDisableClientState GL_VERTEX_ARRAY rcube:+0.5 Flip Wend End |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte benutze den Edit Button und erstelle keine Doppelposts, danke. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nope, sieht super aus.
Wenn du tatsächlich was verbessern willst: 1) Vermeide solche ellen langen array-zuweisungen. Mach lieber mehrere zeilen (zb mit .. um die zuweisung in der nächsten zeile fortzusetzen) 2) Schreibe lieber direkt einen File-loader und erschaffe ein TCube object (zb) ^^ Aber nee, sieht gut aus. So wirds gemacht, so passts (wenn ich mich nicht verlesen habe). Die einzige nächst bessere stufe wäre ein VBO, aber das bringt nur bei vielen vertices einen vorteil. (VBO: Die vertex-positionsdaten werden in den Ram der Grafikkarte geladen und ihr wird nur gesagt, wo sie anfängt zu zeichnen. So müssen die daten nicht erst an die grafikkarte gesendet werden - speedboost. Aber wirklich nur, ab ein paar hundert vertices, sonst ist das ersparnis so gering, das ein einfacher print-aufruf schon mehr ausmacht ^^) |
||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok danke für die tipps
ich denke mal dann werd ich demnächst so ein vbo brauchen ich hab mir nämlich das ziel gesetzt eine voxelengine wie die von minecraft oder cube worlds zu schreiben aber das wird eh noch dauern ich geh in kleinen schritten vor und muss erstaml noch die grundlagen lernen^^ wenn jemand noch weitere vorschläge hat zum beispiel was für eine voxelengine nützlich wär zu lernen oder so immer her damit ![]() eine gute nacht allen |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nachteil von einem 8 Vertex Cube ist natürlich, dass man ihn nicht vernünftig texturieren kann, da jede ecke nur eine Textur Koordinate hat. | ||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh das is natürlich blöd^^ is es denn unmöglich noch vernünftig zu texturieren oder nur schwieriger? | ||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie willst du das anstellen, wenn du an jeder ecke nur eine Textur Koordinate hast? Spätestens an der stelle, wo die Textur zu ende ist, hörts auf. | ||
![]() |
AnniXa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Boris1993 hat Folgendes geschrieben: Oh das is natürlich blöd^^ is es denn unmöglich noch vernünftig zu texturieren oder nur schwieriger?
Es ist unmöglich. ![]() Das mindeste was man für einen texturierten Würfel an Verticles braucht ist 12, dann hat man an den Seiten 4 gleiche gespiegelte Flächen, und oben und unten jeh einzelne Flächen welche an der gespiegelte Flächen auf der Grafik anliegen müssen. Für ein Würfel ohne gespiegelte Flächen mit "individuellen" Seiten sind jedoch 24 Verticles nötig. Ansonsten gibt es noch diese "klappwürfel" uv map mit 14verticles, welche jedoch unter umständen sehr viel platz auf der textur benötigt. |
||
|moonForge|
Ich bin Pokémon Meisterin seit 1998! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group