PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 04.07.2014, 17:16   #41
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard AW: Rennspiel-Demo für den NDS

Zitat:
Zitat von goldmomo
Jetzt habe ich noch einige Fragen zu den Tools die du benutzt.
Auf die Tools bin ich in meinem historischen Rückblick 2009 schonmal eingegangen, woran sich auch nicht so viel verändert hat, aber kann man im Detail ja nochmal drauf eingehn.

Zitat:
Zitat von goldmomo
Bei den Texturen gibt es ja 4/16/256 Colors mit Palette dann noch 8/32 Colors mit Palette plus 8/32 Alpha und 4x4 Compressed (sowas wie S3TC). MIP-Mapping gibt es nicht.

Welche Tools verwendest du um zb. DDS / PNG / etc. zu konvertieren?
Ich verwende nur die 4/16/256/16Bit Farben-Formate. Die lassen sich leicht aus dem jeweiligen BMP extrahieren mit meinem kleinen selbstgeschriebenen Tool, dass nicht immer das macht was ich will. Ist etwas unsauber geschrieben.

Ich hab mal gelesen das sich jemand ein GIMP-Plugin geschrieben hat. Wäre wahrscheinlich die bessere Alternative, vor allem für die Formate mit den verschiedenen Transparenzwerten. Die brauch ich aber momentan nicht.

Das komprimierte Format wollte ich mal in mein Tool einbaun, aber das ist mir zu aufwendig und ich seh darin auch keine direkten Vorteile. Außerdem ist die Belegung des Speichers bei diesem Format sehr eingeschränkt und merkwürdig (Textur darf nur in Textur-Slot 0 und Slot 2 sein?).

Zitat:
Zitat von goldmomo
Bei den Polygonen gibt es normale 3 und 4 Punkte Polygone und zusätzlich noch Stripes aus solchen (Prohibited Quads vergesse ich jetzt mal).
Welche 3D Editoren benutzt du? Wie zerlegst du das Ausgangsformat (z.B. .X Files) in das NDS benötigte Format (XYZ ST trennen, Stripes erzeugen). Ich habe mich zwar nicht viel mit 3D beschäftigt, aber das umwandeln war immer ein Grauen, besonders weil viele 3D Programme n-Punkte Polygone benutzten und das Target sie meist als 3 oder 4 Punkte (evtl mit Stripes) braucht, vom Texturezuordnen mal ganz abgesehen.
Ich hab die 3D-Modelle entweder im .dof-Format (Strecken von racer.nl) oder im "NFS HP2"-Format vorliegen. Diese lade ich in den alten ZModeler, bearbeite sie (Schadensmodell aus dem Modell entfernen, Reifen als einzelnes Modell extrahieren, Streckenteile kleiner skalieren) und geb sie als .x-Format aus. Die Programme und Formate arbeiten nur mit Dreiecken. Ich hab auch noch mit keinem Programm zu tun gehabt das mehr als 4 Punkte Polygone verwendet.
Dann wird das ganze mit meinem ModelConverter in C-Dateien umgewandelt (mit Displayliste, Vertices- und Indices-Array). Der "Model_Converter" ist von "DarkKnightEZ" programmiert für "AmplituDS". Der Quellcode war dabei und ich hab ihn mittlerweile um ein paar Optimierungen angepasst.
Am Anfang hat es gereicht einfach alle Dreiecke in eine Displaliste zu packen und anzuzeigen, so hat es auch das original Programm gemacht. Meine Erweiterungen suchen nach Möglichkeiten 2 Dreiecke zu Vierecken und Vierecke zu Stripes zu verbinden und so die Polygon- und Vertices-Anzahl zu senken. Hierbei reicht es einfach ein Dreieck zu nehmen und ein daran anliegendes Dreieck zu finden dessen Texturkoordinaten mit übereinstimmen. Das ganze zu einer Liste Verlängern und man hat einen Quad_Stripe.

Im gbadev-Forum wurde allerdings schonmal behauptet das die normalen glVertex-Funktionen fast so schnell sind wie eine vorher erstellte Displayliste, wenn man die Festkommazahlen-Funktionen und die float2int-Umwandlungen vermeidet. Die Displayliste hat den Nachteil das hier die Normalen schon beim Erstellen festgelegt sind. Wenn man die Normalen nämlich dynamisch berechnet, kann man unterschiedliche Lichtquellen simulieren. Hab ich schonmal ausprobiert und sieht ganz nett aus, brauch ich aber momentan ebenfalls nicht.

Texturzuordnen ist einfach. Ein 3D-Modell auf dem NDS darf nur 1 Textur benutzen, d.h. alle Teile die eine andere Textur benutzen muss man als extra Modell extrahieren und einzeln anzeigen.

Animationen krieg ich mit meinen momentanen Einstellungen so nicht hin, aber das braucht ein Rennspiel auch nicht.
Jim ist offline   Mit Zitat antworten
Sponsored Links
Alt 16.09.2014, 22:06   #42
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard AW: Rennspiel-Demo für den NDS

Nachdem ich nach dem letzten Zwischenbericht hier wieder vermehrt programmiert habe und einige größere Schritte nach vorne machen konnte versuch ich das nochmal. Die aktive Programmierphase ist nämlich wieder etwas abgeflacht und ich hab mich mit anderen Dingen beschäftigt.

Das wichtigste das ich wohl erwähnen muss ist, dass ich eigentlich kein großes Speicherplatzproblem für meine Texturen habe (solange man es mit der größe und Anzahl der Farben übertreibt). Deswegen fällt das zwischendurch nachladen komplett raus. Zu viel Zusatzaufwand und verbrauchte Rechenzeit.
Aber ich hab jetzt die Texturverwaltung der libnds und des NDS besser verstanden. Das kann man auch hoffentlich bei den Screenshots sehen für die dieser Post hauptsächlich gedacht ist. Ich hab bei wichtigen Texturen die Auflösung hochgedreht und mehr Grafikmodelle eingebaut, hauptsächlich sind das die Brücken und der Dunlpbogen die über die Strecke gehen.
Damit bin ich dann bei knapp 5000 Vertices zu Spitzenzeiten. 5/6 von dem was maximal geht. Es würde also mehr gehen, aber die Displaylisten mit DMA in den FIFO zu schieben dauert relativ lange und ist damit der Begrenzer.

In der "libnds/include/nds/arm9/videoGL.h" steht fürs Displaylistenkopieren folgender Code:
Code:
void glCallList(const u32* list) {
    sassert(list != NULL,"glCallList received a null display list pointer");

    u32 count = *list++;

    sassert(count != 0,"glCallList received a display list of size 0");

    // flush the area that we are going to DMA
    DC_FlushRange(list, count*4);

    // don't start DMAing while anything else is being DMAed because FIFO DMA is touchy as hell
    //    If anyone can explain this better that would be great. -- gabebear
    while((DMA_CR(0) & DMA_BUSY)||(DMA_CR(1) & DMA_BUSY)||(DMA_CR(2) & DMA_BUSY)||(DMA_CR(3) & DMA_BUSY));

    // send the packed list asynchronously via DMA to the FIFO
    DMA_SRC(0) = (u32)list;
    DMA_DEST(0) = 0x4000400;
    DMA_CR(0) = DMA_FIFO | count;
    while(DMA_CR(0) & DMA_BUSY);
}
Mindestens eine while-Schleife sollten man ja rauslassen können, am besten die letzte dann kann man, während kopiert wird, noch was anderes machen, aber bei meinen bisherigen Versuchen flog mir das ganze immer um die Ohren (wie oben steht: "... FIFO DMA is touchy as hell"). Wenn der Kopiervorgang unterbrochen wird und in der Grafikpipline unvollständige Kommandos landen hängt sich die ganze Grafikeinheit einfach auf und lässt sich nicht mehr neustarten. Wahrscheinlich startet die libnds für irgendwas in der Zwischenzeit den DMA0, aber wo das sein könnte hab ich noch nicht rausgefunden.

Und damit hier noch die versprochenen Bilder:

Jim ist offline   Mit Zitat antworten
Alt 18.09.2014, 15:48   #43
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Rennspiel-Demo für den NDS

Soweit wirklich sehenswert. Würd mich sehr über ein Video "in Action" freuen :3
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
RARE für den NDS!!!!!!!! nDS Spiele (Nintendo DS) 138 03.09.2006 11:47
Was ist das beste Rennspiel für den DS??? krebsman1990 Spiele (Nintendo DS) 8 27.04.2005 22:58
Neues Rennspiel für den N-Gage Iceman N-Gage Foren 4 16.07.2004 18:02
Das beste Rennspiel für den GBA! Muke Spiele (GBA) 16 19.01.2004 19:57
Bestes Rennspiel für den GBA Tobias Spiele (GBA) 22 29.09.2003 11:59


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:12 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231