DreiDe - 3D Engine basierend auf OpenGL
Übersicht BlitzMax, BlitzMax NG Codearchiv & ModuleGehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
Vertex |
So, Aug 21, 2005 14:37 Antworten mit Zitat |
|
---|---|---|
So, der 100ste Post in diesem Thread
http://vertex.art-fx.org/dreide257.zip Mit Unterstützung von komprimierten Texturen und neugeschriebenen DDS Loader. Komprimierte Texturen lassen sich mit: MyTexture.AddRenderMode(DDD_TEXTURE_COMPRESSED) MyTexture.SetPixmap(MyPixmap) MyTexture.SetFilter(..., ...) laden. Der DDS Loader ist genauso einfach zu handeln: MyTexture = DDSLoader.Load("test.dds") MyTexture.SetFilter(..., ...) Übrigens ist SetFilter essentiell! Wenn OpenGL kein Filterparameter besitzt, so wird die Textur ohne Fehlermeldung einfach nicht angezeigt. Das hat mich fast mehrere Stunden gekostet. Was kann der DDS Loader? - Komprimierte Texturen mit DXT1, DXT3 und DXT5 komprimierung - Unkomprimierte Tetxuren(RGBA8888, RGBA5551, RGBA4444, RGB888, RGB565) - MIPMaps - Cubemaps Er ist aber noch Beta, weil a) bei mir manche Seiten von einer Cubemaps textur falsch geladen wurden, b) manchmal dennoch ein paar Farbkanäle vertauscht sind. Das Problem ist, das die DDS Dateien, die ich von NVIDIA's Cg Tutorial habe, scheinbar falsche Farbkanalmasken beinhalten. http://developer.nvidia.com/ob...ities.html http://developer.nvidia.com/ob...ugins.html Weiterhin gefällt mir mein Entitysystem nicht. Die Transformationen scheinen ein großer Falschenhals zu sein. Problem ist, OpenGL arbeitet mit transponierten Matrizen. A^T x B^T = (B x A)^T (das ^T steht für transponiert). Folglich muss ich alle Matrizen andersherum multiplizieren da A x B != B x A. Das führt dazu, das ich alle Parents eines Entitys in einer Liste laden muss, und diese dann umkehren mit MyList.Reverse. Das ist alles Verschwendung von Performance. Zumal Lists alles andere als performant programmiert wurden. Gibt es zur Transformationen irgendwelche Verbesserungsvorschläge? mfg olli |
||
vertex.dreamfall.at | GitHub |
fliege |
Mo, Aug 22, 2005 19:17 Antworten mit Zitat |
|
---|---|---|
Unterstüzt es denn auch Animationen an Meshes? Denn das wäre ja der Oberhammer
Würde mich freuen, wenns schon drinn ist... Fliege |
||
Wer weiß was kommt.. ? |
Dreamora |
Mo, Aug 22, 2005 19:23 Antworten mit Zitat |
|
---|---|---|
Nein | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Vertex |
Di, Aug 23, 2005 0:39 Antworten mit Zitat |
|
---|---|---|
Die erste Animation mit DreiDe wird sicher nur ein MD2 Model sein Ferien sind bald vorbei, letzte Zeit war ich viel Unterwegs, also fehlt es sicher bald wieder an Zeit. Naja mal schauen. Sooo schwer wäre Animation ja garnicht, Problem ist mal wieder die Performance. Gibt noch so viele Dinge, Licht, Terrain, Schatten, Kollisionserkennung usw.
Naja habe mir ersteinmal jetzt ein Buch bestellt zum Thema. Ich hoffe, da kann ich noch nützliches entnehmen. mfg olli |
||
vertex.dreamfall.at | GitHub |
Vertex |
Do, Aug 25, 2005 22:11 Antworten mit Zitat |
|
---|---|---|
Ok, es soll doch ein MD3 Model sein
Das buch geht sicherlich wieder zurück Ich komme langsam nichtmehr weiter mit dem MD3 Format: Code: [AUSKLAPPEN] editiert
Code: [AUSKLAPPEN] editiert
(MAX_QPATH ist z. Z. 64 Byte) Was läuft schief? Ich habe zum Test in Milkshape ein einfaches Triangle erstellt. Code: [AUSKLAPPEN] VertexNum X Y Z
00 0.00 9.75 41.75 01 0.00 3.50 -23.75 02 0.00 28.00 -1.75 Heraus kam dann: Code: [AUSKLAPPEN] 00 1014.25 0.0 41.75
01 3.5 0.0 1000.25 02 28.0 0.0 1022.25 Die Texturkoordinaten sowie die VertexIndices liest er korrekt. Einige Koordinaten scheinen ja richtig zu sein, bloß falsch plaziert. Bloß warum? Code: [AUSKLAPPEN] typedef struct {
short xyz[3]; short normal; } md3XyzNormal_t; vs. Code: [AUSKLAPPEN] Stream.Seek(Offset+MD3Surface.OffsetVertices)
For Vertex = 1 To MD3Surface.NumVertices Surface.SetVertexPosition(Vertex-1, Float(Stream.ReadShort())/64.0, .. Float(Stream.ReadShort())/64.0, .. Float(Stream.ReadShort())/64.0) Stream.ReadShort() Next Der lange Code wird nach Erfolg dann entfernt. Danke schonmal für die Hilfe! mfg olli |
||
vertex.dreamfall.at | GitHub |
- Zuletzt bearbeitet von Vertex am Do, Aug 25, 2005 23:17, insgesamt 2-mal bearbeitet
Justus |
Do, Aug 25, 2005 22:14 Antworten mit Zitat |
|
---|---|---|
Ich hab zwar keinerlei Ahnung von dem Zeug, aber ich muss dir an dieser Stelle mal meinen fetten Respekt zollen:
Das ist echt fett |
||
Vertex |
Do, Aug 25, 2005 23:20 Antworten mit Zitat |
|
---|---|---|
Justus, danke
Sooo, der blödeste Fehler der überhaupt auftreten kann ist geschehen(und gefixed). Die Vertexkoordinaten waren Signed Shorts, mit Stream.ReadShort liest man jedoch nur Unsigned Shorts. Meine Fresse, soetwas muss mal wieder mir passieren. Naja hier der Alphatest: Textur und Animation event. sogar morgen schon. mfg olli |
||
vertex.dreamfall.at | GitHub |
Vertex |
Sa, Aug 27, 2005 16:49 Antworten mit Zitat |
|
---|---|---|
So, wie versprochen habe ich nun Quake 3 MD3 Model Support drin:
http://vertex.art-fx.org/dreide258.zip http://vertex.art-fx.org/dreide_examples258.zip http://vertex.art-fx.org/dreide_examples258bin.zip Also die MD3 Models unterstützen Animation und Skins. In Gegensatz zu anderen Loadern nutze ich nicht SMoothNormals (bzw. UpdateNormals in B3D) sondern berechne die Normals aus dem ersten Frame. Normalerweise müsste man sie für jeden Frame neu berechnen, bringt aber nicht viel denke ich. md3demo.bmx in den exmaples zeigt, wie man die Models laden kann. MyModel = TMD3Model.Load("MyModel.md3", "MyModel.skin") der Skin ist optional. Es gibt auch keine Fehler, wenn er mal eine Textur nicht laden konnte. Die Anzahl der Frames bekommt man mit MyModel.CountFrames() heraus. Einen Frame setzt man mit MyModel.SetFrame(). Zwischen den Frames wird linear interpoliert. Gibt ihr also 3.8 so bezieht er Frame 3 und 4 ein, wobei mehr Gewichtung auf Frame 4 liegt. mfg olli |
||
vertex.dreamfall.at | GitHub |
Black |
Sa, Aug 27, 2005 18:16 Antworten mit Zitat |
|
---|---|---|
Naja, wenn du nur die Normalen der ersten Frame benutzt, kann es zu falschen Belichtung kommen, wenn sich während der Animation ein Triangle dreht. (Wenn du jetzt zum Beispiel ein Model hast, dass sich dreht kann es passieren, dass es so aussieht als würde sich die Lichtquelle mitdrehen.) | ||
Vertex |
Sa, Aug 27, 2005 18:24 Antworten mit Zitat |
|
---|---|---|
Naja mal schauen, wenn es keine großen FPS-Einbusen gibt, dann werden noch die Normals interpoliert.
mfg olli |
||
vertex.dreamfall.at | GitHub |
Vincent |
Sa, Aug 27, 2005 18:36 Antworten mit Zitat |
|
---|---|---|
kannst du ja optional machen, das die normalvektoren aktualisiert werden. | ||
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt ! |
Vertex |
So, Sep 11, 2005 13:29 Antworten mit Zitat |
|
---|---|---|
So, das Mathmodule wird langsam fertig. Ich konnte z. B. bei den Transformationen den Rechenaufwand auf 6% extreme verringern. Das hat jetzt auch die meiste Zeit gekostet, denn nicht alles was auf dem Blatt Papier gut aussieht, lässt sich Problemlos umsetzen.
Aufgrund, das ich genau andersherum zu OpenGL arbeite sind jetzt auch Parent/Child Transformationen sehr viel schneller. Die Child Position lässt sich nun mit der lokalen Parent Matrix und der lokalen Child Matrix einfach verrechnen. Früher musste man eine Transformationsliste aus den ganzen Parents aufbauen. Weil man nun auch schneller die globale Position eines Entitys berechnen kann, kann ich nun auch Depthsorting(wichtig für die korrekte Darstellung von transparenten Entitys) einbauen. Ich arbeite nun noch an einem Frustumtype, der prüfen kann, ob Bounding Volumes in einem Frustum liegen. Bounding Volumes sollen auch Parent/Child sein, das heißt, man kann eine große Bounding Box um ein großes Level legen, und dann die Levelräume wiederum in Bounding Boxen unterteilen. Ist das Level nicht im Frustum, braucht man auch nicht die Levelräume auf sichtbarkeit zu prüfen. Das ganze erspart unheimlich an Rechenzeit. mfg olli |
||
vertex.dreamfall.at | GitHub |
Vertex |
Mo, Sep 19, 2005 23:30 Antworten mit Zitat |
|
---|---|---|
Wird bald ein neues Update kommen. Es gab z. B. Fehler unter Mac weil hier Big statts Little Endian Byte Order(hoch lebe Motorola!) verwendet wird.
TPrimitive.CreateQuad, TPrimitive.CreateDisc(Segmente), TPrimitive.CreateCube(SubSurfaces), TPrimitive.CreateCylinder(Segmente, Caps), TPrimitive.CreateSphere(Segmente) geht schon TPrimitive.CreateCone(Segmente) fehlt noch. Naja mal schauen, werde noch ein paar Sachen optimieren und debuggen bevor ein neues Update hochgeht. Das größte war jetzt ersteinmal das Mathmodule. mfg olli |
||
vertex.dreamfall.at | GitHub |
tft |
Di, Sep 20, 2005 7:36 Antworten mit Zitat |
|
---|---|---|
Hi...
cool...... binn gespannt auf mer. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Gombolo |
Mi, Sep 21, 2005 21:33 Antworten mit Zitat |
|
---|---|---|
Weiss jemand warum Bmax mir einen Compilerfehler meldet bei der Funktion GetUniformLocation ?
BMax Version 1.09 |
||
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/ |
bruZard |
Do, Sep 22, 2005 8:35 Antworten mit Zitat |
|
---|---|---|
Schonmal versucht auf 1.10 zu updaten? | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Gombolo |
Do, Sep 22, 2005 15:18 Antworten mit Zitat |
|
---|---|---|
Hab ich gerade gemacht. Geht trotzdem nicht. | ||
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/ |
Vertex |
Do, Sep 22, 2005 15:36 Antworten mit Zitat |
|
---|---|---|
Bitte Syncmods durchführen, da nur im neuen GLEW-Module die Funktion glGetUniformLocation deklariert ist.
Arbeite z. Z. am Frustum, mal schauen ob ich das heute noch fertig bekomme... mfg olli |
||
vertex.dreamfall.at | GitHub |
Vertex |
So, Sep 25, 2005 16:16 Antworten mit Zitat |
|
---|---|---|
OK, Frustumclipping ging doch nicht auf Anhieb, wie ich es mir erwünscht habe Naja das schiebe ich mal noch ein bischen vor mir weg.
Die ersten Schritte zum QUake3 BSP Levelloader: (q3dm17.bsp sieht ihr hier) Lightmaps und Texturen konnte er schon laden. Ich weiß noch nicht, ob ich die Levels mit DreiDe Sachen aufbaue(Leafs = Meshs, Faces = Surfaces) oder das ganze etwas optmierter umsetze ... mfg olli |
||
vertex.dreamfall.at | GitHub |
jungle |
Mo, Sep 26, 2005 9:07 Antworten mit Zitat |
|
---|---|---|
@vertex:
an dieser stelle möchte auch ich dir meinen respekt zollen ....wirklich fett das...... hast du nicht lust wieder eine neue version zum downloaden online zu stellen jGL |
||
In der Realität ist die Wirklichkeit ganz anders.
| P3 550Mhz | P90Mhz | AMD 1Ghz | XP 2600@3200Mhz l P2 400Mhz | Dual XP 2000Mhz | |
Gehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group