Grafikenginedesign (OOP mit OpenGL)
-
LiquidAcid schrieb:
spl@t schrieb:
Bin leider erst in Kapitel 3, aber Vertex Arrays wurden bereits behandelt, und dazu wurden C-Arrays benutzt, was nützt mir da also dieses Buch?
Sowas wie ein C-Array gibt es nicht. Arrays funktionieren sowohl unter C als auch unter C++ genau gleich. Deshalb kapier ich nicht was hier immer diese ominösen C-Arrays sollen...
c array: typ name[zahl];
c++ array :vector<typ> name;
-
otze schrieb:
c++ array :vector<typ> name;
Ein Vector ist kein Array, sonst würde er ja nicht Vector heissen. Obwohl man einen STL Container natürlich als Vertexbuffer nehmen könnte. Man muss halt nur sicherstellen dass die Daten linear im Speicher existieren. Das wäre ja afaik nur bei Vector der Fall (und auch nur wenn der Datentyp nicht bool ist).
cya
liquid
-
Wenn du nicht weißt, was es C-Array sein soll, dann tut mir das sehr Leid.
Und ein Vector ist durchaus ein (dynamisches) Array, der Name ist gleichgültig.
Übrigens komme ich mit C++ meiner MEinung nach durchaus "zu Rande". Das mit den Funktionen ist schon klar, wenn ichs mir mal überlege. Aber warum kein sizeof(Vectorklasse) als Stride angeben, das machts sauberer.
-
LiquidAcid schrieb:
otze schrieb:
c++ array :vector<typ> name;
Ein Vector ist kein Array, sonst würde er ja nicht Vector heissen. Obwohl man einen STL Container natürlich als Vertexbuffer nehmen könnte. Man muss halt nur sicherstellen dass die Daten linear im Speicher existieren. Das wäre ja afaik nur bei Vector der Fall (und auch nur wenn der Datentyp nicht bool ist).
Die Klasse ist auch kein vector, immerhin ermöglicht sie keine punktberechnung im n dimensionalen raum
, das zum thema namen.
jetzt mal ernsthaft:
vector ist (fast) genausoschnell wie ein array,es leistet funktionell her genau dasselbe wie ein array,der einzige unterschied zu nem array ist, dass die daten nicht an einem stück hängen-was aber auch ein vorteil sein kann, und in anbetracht der enormen funktionalität des vectors nicht ins gewicht fällt, ergo trägt der Vector zu recht den namen "c++ array".
-
Du kannst ja gerne neue Namen für bereits existente Dinge einführen, aber der STL Container Vector bleibt ein Vector für mich. Ein C++ Array funktioniert genauso wie ein Array in C.
Und offensichtlich hört man mir hier auch nicht richtig zu. Ich habe doch grade betont, dass der STL Vector einer der wenigen (der einzige?) Container ist bei dem die Daten linear im Speicher existieren. Jetzt wird mir hier schon wieder widersprochen. LOL, irgendwie isses doch merkwürdig.
@splat: OK, wie du willst. Aber ich werde hier kein weiteres Grundlagenwissen vermitteln. Das mußte dir dann schon selbst aneignen.
cya
liquid
-
naja, lassen wir das mit den Arrays lieber
LiquidAcid schrieb:
@splat: OK, wie du willst. Aber ich werde hier kein weiteres Grundlagenwissen vermitteln. Das mußte dir dann schon selbst aneignen.
Das finde ich ehrlich sehr schade. Ich bin mir sicher dass du mir noch auf einige Fragen Antworten geben könntest. Meinst du nicht dass das für einem dummen kleinen Flamewar übertrieben ist? Sollte ich etwas arrogant reagiert haben, tut mir das Leid.
Was halten denn die anderen Erfahrenen hier von der Aufteilung der Engine in genannte Bereiche? Wie macht ihr sowas?
Mag sein dass ich noch zu schlecht für sowas bin, aber mich interessiert das jetzt halt. Lasst euch doch nicht alles aus der Nase ziehen
-
Im Übrigen gibt es Programmiersprachen, in denen das "Array" "Vector" oder "Feld" heißt... Soviel dazu.
-
Sind wird hier denn im BASIC Forum???
*gg*
-
Na das Konzept die Vektorenklassen per Array hintereinander zu packen hat aber
auch einen _sehr_ großen Nachteil:Man muss für jede Flag-Kombination eine eigene Klasse erstellen. Bei bis zu 8
Texturkoordinaten, XYZ-Koordinaten, Normalenvektor, Farben, etc. kommt da eine
gigantische Menge zusammen.Außerdem hätte das vererben von einem Basis-Vektor noch den Vorteil, dass man
sämtliche anderen Klassen (Engine, Objekte, VertexBuffer) mit diesem füttern
kann. Schließlich wird dann jeweils auf die richtige Ursprungs-Klasse zuge-
griffen.Also: Wie macht ihrs? Würde mich über weitere Beiträge freuen, da ich selbst
gerade an dieser Stelle hänge. Denn wenn man sich hier falsch entscheidet...Bei Irrlicht und OGRE bin ich was das angeht noch nicht weit genug durchge-
siegen. Irrlicht hat zwei Vektor-Klassen, die aber max. ein Tex-Koor-Set
abdecken und OGRE hat nur eine Basis-Vektor-Klasse. Da muss ich noch was
übersehen haben...
-
Juhuu, ich WUSSTE doch, dass sich auch noch andere für dieses Thema interessieren MÜSSEN
Jetzt fehlen nurnoch die Antworten
-
*push* :p