Forum: Offtopic eigennen 3d Handheld bauen


von Fan T. (fantasy)


Lesenswert?

Hallo,
mich interessiert, welche Bauteile ich brauche um einen Handheld für 3d 
Spiele zu bauen.

Was er können soll:
auf einem ca 4" Display(ca.600x480px), texturierte(512px) 3d Grafik 
darstellen, mit ca 3000polygonen/model und 1000 objekten.
Gesteuert werden sollte er mit 12 knöpfen. und max 4xaaa Baterien haben.

zur Software Seite: Ich vermute, dass man einen eigennen Bootloader/ 
Kernel oder OS programmieren muß um die Spiele zu verwalten, als 3d 
bibliothek frage ich mich ob assimp funktionieren würde.

ich habe mir bisher, Atmega angeschaut, sie sind günstig und haben fast 
soviel mhz wie eine nintendo 64 GameKonsole, aber was ist mit der GPU? 
ist nimmt man dafür einen zweiten microcontroller und schliesst an 
diesen speicher an, der als grafikspeicher reserviert wird? oder gibt es 
extra microcontroller für 3d grafik, die nur ein paar euros kosten?

Ich finde das Thema sehr Interessant und freuhe mich über Antworten.

von B. S. (bestucki)


Lesenswert?

Hast du schon jemals etwas programmiert oder eine Elektronik aufgebaut? 
Wenn nicht, empfehle ich dir klein anzufangen und das Tutorial dieser 
Seite durchzuackern. Selbst als Profi klatscht man dein Vorhaben nicht 
einfach so mal hin. Ich würde mir dein Projekt im Alleingang jedenfalls 
nicht zutrauen, jedenfalls nicht, wenn es in einem vernünftigen 
Zeitrahmen (< 2 Jahre) fertiggestellt werden soll.

: Bearbeitet durch User
von H-G S. (haenschen)


Lesenswert?

Ich glaube dass man ohne eine 3D-fähige GPU keine Chance hat, denn diese 
sind spezialisiert auf Polygone, Texturen etc.

Die Nintendo Konsolen haben bestimmt die optimale GPU zu ihren (ARM 
?)Chips verbaut.

So ein Polygon in Software zu rendern halte ich für unrealistisch, aber 
vielleicht gehts mit GHz-getakteten Controllern/CPUs.

von Fan T. (fantasy)


Lesenswert?

Ich programmiere Spiele und beschäftige mich abund an mit dem Ardurino 
nano, aber ich habe noch kein Display um selber tests zu machen.

Ich denke der nano schafft auch kein Farbdisplay wie ich das möchte.
Ich habe ein Video gesehen, in dem "AterLux" einen 3d Würfel mit hilfe 
eines ATmega8A darstellet,
www.youtube.com/watch?v=VWVvKVIVqeg
 aber ich vermute, das dieser Test für mich negativ ausfallen würde, da 
das Bild des würfels flackert.

Auch denke ich, für jemanden, der nicht Spiele programmiert meine 
Angaben zu groß sind, da es eigentlich angaben an die Engine sind.

Also wenn bis zu 20 modelle auf dem Bildschirm gezeigt werden könnten, 
wäre ich zufrieden.

Es gibt auch videos mit 2d Dos- Games, könnten solche controller auch 3d 
Grafik darstellen? und was sind das für controller?

zusatz: ein Spiel wie Stunts von Amiga500,
www.youtube.com/watch?v=7hpdj4mAxxM
Währe horror, da sind die Texturen viel zu klein und wenn die Bausteine 
für die Hardware mehr als 10€ kosten, dann bin ich entteuscht, weil 
meine Hardware bestimtt sehr viel teuerer wäre

von Fan T. (fantasy)


Lesenswert?

H-G S. schrieb:
> Ich glaube dass man ohne eine 3D-fähige GPU keine Chance hat, denn diese
> sind spezialisiert auf Polygone, Texturen etc.
>
> Die Nintendo Konsolen haben bestimmt die optimale GPU zu ihren (ARM
> ?)Chips verbaut.
>
> So ein Polygon in Software zu rendern halte ich für unrealistisch, aber
> vielleicht gehts mit GHz-getakteten Controllern/CPUs.

Nakla hat die N64 die passende GPU, einge 3d Konsolen habe ihre GPUs 
sogar koop mit Elektronik firmen selber entwickelt.
Ich finde das so Spannend, dass die für Bestimmte GameLocks(Styles) eine 
perfekt angepasste Hardware entwickelt haben(also nicht nur Nintendo).
Besonders bei der Dreamcast, die angeblich ein flop war, kann ich mir 
vorstellen, dass der jenige, der die Idee hatte, überglücklich war, dass 
seine Konsole gebaut wurde. vielleicht hat er die immer noch und Spielt 
genau die Games, die er immer haben wollte, angeblich werden ja immer 
noch games dafür produziert.

von B. S. (bestucki)


Lesenswert?

Fan T. schrieb:
> Ich programmiere Spiele und beschäftige mich abund an mit dem Ardurino
> nano, aber ich habe noch kein Display um selber tests zu machen.

Sehr gut. Aus deinem Eingangspost war das nicht ersichtlich, deswegen 
die Nachfrage.

Fan T. schrieb:
> Ich denke der nano schafft auch kein Farbdisplay wie ich das möchte.
> Ich habe ein Video gesehen, in dem "AterLux" einen 3d Würfel mit hilfe
> eines ATmega8A darstellet,
> www.youtube.com/watch?v=VWVvKVIVqeg
>  aber ich vermute, das dieser Test für mich negativ ausfallen würde, da
> das Bild des würfels flackert.

Könnte schwer werden, das mit einem ATmega hinzugekommen, wäre aber eine 
schöne Herausforderung. An deiner Stelle würde ich auf einen 
Einplatinencomputer (z.B. RasPi) zurückgreifen, dann hast du schon mal 
eine funktionierende Hardware für einen durchaus guten Preis. Ich denke, 
die Dinger haben auch genug Leistung für dein Vorhaben. Unterstützen 
auch OpenGL und können Filme in Full-HD rendern, HDMI und FBAS Anschluss 
inklusive.

von H-G S. (haenschen)


Lesenswert?

Einfarbige Polygone ohne Texturen sollten auch ohne GPU machbar sein.
Es gibt Formeln/Prozeduren wie man Linien zwischen 2 Koordinaten 
berechnet/zeichnet. Für die einfarbige Fläche gibt es soetwas bestimmt 
auch.
Ich hatte mal so ein Buch in der Hand, habe es aber verkauft.

Schwierig wirds mit Texturen, also diese zu drehen/verzerren etc. damit 
sie auf die Ausrichtung des Polygons angepasst werden.


Also wenn der Amiga so ein flottes untexturiertes 3D-Spiel schafft dann 
müsste ein krasser Controller da ziemlich was machen können  :-)

von Fan T. (fantasy)


Lesenswert?

Auf dem PC werden 3d Darstllungen meist mit HLSL(DirectX), oder HLSL 
programmiert, diese Sprachen sind Grafiknahe Sprachen zum Rendern usw.
Ich muß mich mal informieren, wie sowas ohne diese Programmiert wird.

ein Krasser Microcontroller währe Banana Pi und Odroid, die haben  eine 
400-MP2-GPU von Mali(was auch immer das heisst X)
quelle: 
http://www.pcwelt.de/ratgeber/Die-besten-Raspberry-Pi-Alternativen-im-Ueberblick-Ein-Platinen-PCs-9634864.html

ich denke auf den Raspberrys könnte man das alle laufen lassen, indem 
man linux drauf macht.
Jetzt wird es peinlich: kann jeder raspberry pi ein Display ansteuern 
oder brauche ich das extra bauelemente?

von H-G S. (haenschen)


Lesenswert?

Da gibt es noch das Problem mit dem LCD-Speicher bzw. dann dem 
Bildpuffer.

So ein 640x480 LCD hat etwa 300kB Bildspeicher, und du brauchst den 
doppelt damit du in einem zeichnen kannst während das LCD den anderen 
Puffer anzeigt.
Wo soll dieser Speicher sein, extern oder im Controller ?
Wenn es 16-Bit Farben sein sollen (5R5G5B) dann sind es 300kB mal 16 
Bit.

Dann ist da noch die Sache mit der Bildwiederholfrequenz, es müssten 
wohl über 25/30 Bilder pro Sekunde sein damit es flüssig läuft.

Das heisst es müssten alle etwa. 30ms das neue Bild gezeichnet und der 
Bildpuffer kopiert/gefüllt werden bevor man den aktuellen LCD-Puffer 
wechselt bzw. beschreibt.

von Fan T. (fantasy)


Lesenswert?

ich habe mir mal die vorund nachteile von externen und internen 
Bildpuffer Spicher überlegt.
o Wird der Chip zu heiß im kleinem Gehäuse?
o muß man Mehanismen zum sofortigem löschen des externen speichers 
einbauen?
o wie lange reicht der akku?
o ist externer Speicher billiger als ein microkontroller mit viel 
internem(weil mein 640x480.bmp bild 1.3MB Groß ist und ich dann mal von 
3MB Pufferspeicher aussgehe im controller für <2€, ist bestimmt nicht 
soviel).
ist externer Speicher zu langsam?

Würdet Ihr mir einen günstigen fertigen controller mit einem screen 
empfehlen? der braucht kein HDMI.
den ich studieren könnte.

ps.


Be S. schrieb:
An deiner Stelle würde ich auf einen
> Einplatinencomputer (z.B. RasPi) zurückgreifen, dann hast du schon mal
> eine funktionierende Hardware für einen durchaus guten Preis. Ich denke,
> die Dinger haben auch genug Leistung für dein Vorhaben. Unterstützen
> auch OpenGL und können Filme in Full-HD rendern, HDMI und FBAS Anschluss
> inklusive.
Hat der Hardware, die OpenGL unterstütz? oder ist das in der OS?

von B. S. (bestucki)


Lesenswert?

Fan T. schrieb:
> Hat der Hardware, die OpenGL unterstütz? oder ist das in der OS?

Das weiss ich nicht genau, hab noch nie mit den Dingern gearbeitet. Hat 
jedenfalls ne GPU:
https://jan.newmarch.name/LinuxSound/Diversions/RaspberryPiOpenGL/


Es gibt auch ein LCD, das man direkt anschliessen kann:
https://www.raspberrypi.org/documentation/hardware/display/README.md
Die Doku auf der Seite ist nicht gerade der Hammer...

von Marten W. (goldmomo) Benutzerseite


Lesenswert?

> ich habe mir bisher, Atmega angeschaut, sie sind günstig und haben fast
> soviel mhz wie eine nintendo 64 GameKonsole

Das N64 hat einen NEC-VR4300 (93.75MHz) CPU -> 64Bit MIPS, 5 stufige 
Pipeline (in-order Execution) mit FPU +  L1 I/D Cache, ...)



Nimm einen Raspberry Pi und schau dir OpenGL ES an (google).
Bei deinen restlichen Ideen mangelts (IMHO) an einigen 
Grundlagen/Wissen, es ist möglich aber da brauchts mehr als Fantasy :-)
(aber konkreteren Fragen, wird dir bestimmt geholfen)

von Icke ®. (49636b65)


Lesenswert?

Fan T. schrieb:
> Würdet Ihr mir einen günstigen fertigen controller mit einem screen
> empfehlen? der braucht kein HDMI.

STM32 Discovery:

http://www.ebay.de/itm/STM32F429-Discovery-Kit-32F429IDISCOVERY-1-Stuck-/361623155657?hash=item54326b73c9:g:1CkAAOSw-KFXdRIt

Der Bildschirm hat zwar nur 2,4", zum Testen sollte es aber reichen.
Dürfte ohnehin die bessere Plattform für das Vorhaben sein. Mehr 
CPU-Leistung, mehr RAM, bessere Schnittstellen (u.a. speziell für 
Displayansteuerung).

von Fan T. (fantasy)


Lesenswert?

lustig Marten W.:D

...OK ich schaue mir das mal an und zwischen durch auch wie man ohne 
opengl renderd und danke für euere tollen infos und den schnellen 
überblick.

noch eine schöne Woche euch allen. tschüüüs

edit:  Marten W.,den Nintendo werde ich mir noch mal nur so zum Spass 
genuer angucken und einbishen von einer os träumen :D

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> auf einem ca 4" Display(ca.600x480px), texturierte(512px) 3d Grafik
> darstellen, mit ca 3000polygonen/model und 1000 objekten.

Ich habe ein paar Dinge auf dem Nintendo DS in der Richtung gemacht 
(Sowas wie Wolf3D) und irgendein geniales Köpfchen hat eine recht 
beeindruckende 'Proof of Concept' auf dem DS gemacht (heisst 'Sonic'). 
Aber auf dem DS läuft auch OpenGL mit Hardware Unterstützung.
Aus meiner Erfahrung mit PC Engines (Battlefield 2 und Torque 3D) weiss 
ich, das man für 1000 Objekte mit je etwa 3000 Tris schon ganz schön 
Power braucht. Unsere Mod für BF2 hatte Objekte (Vehikel wie Panzer, 
Schiffe und Autos) mit um die 3000-6000 Tris und bei hundert davon ist 
BF2 einfach zusammengebrochen auf den damaligen Dualcore Maschinen. Eine 
heutiger Quadcore mit guter GPU Unterstützung schafft evtl. 500 solche 
Objekte.
Die im Moment hochgehandelste Engine ist vermutlich die Unreal 4 und 
selbst die wird bei solchen Anforderungen ihre Probleme haben.

von Fan T. (fantasy)


Lesenswert?

Ich habe von den Valve Games gelesen, dass man die mit der sdk verändern 
darf, aber ich vermute, dass die modelle alle viele Werte haben, flags 
und so.

Ich habe mal mit meinem Laptop(14-r103ng) 4GB Ram, in einem particle 
effekt, die particle durch 2k poly modele ersetzt. die 700 modelle sieht 
man gleichzeitig, bei 27 fps.
hier das Bild:
http://www.bilder-upload.eu/upload/1c590d-1467954849.jpg
zusatz:die modelle sind weiß, weil die ohne textur sind

edit:
Matthias Sch., wenn deine Level etwas mehr an plastität hätten, könnte 
das Level schon 3k polygone habe, ich habe nicht damit gemeint, dass 
alle objekte soaufwändig wären.
Ich wollte aber nicht für eine Konsole coden, weil das Teilen der 
Gamesich mir schwierig vorstelle, ich werde mir das STM32F429 Discovery 
Kit, welches Icke ® vorgeschlagen hat, kaufen, obwohl die Form mir nicht 
zusagt, bin ich damit doch für Monate/ Jahre bedient und wenn ich es auf 
dem schaffe, kann ich es mit anderen Mikrocontrollern versuchen.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> hier das Bild:
> http://www.bilder-upload.eu/upload/1c590d-1467954849.jpg
> zusatz:die modelle sind weiß, weil die ohne textur sind

Naja, wenns nur um sowas geht, kannst du ja mit dem F429 rumspielen. Ich 
hatte mehr an texturierte Modelle, evtl. sogar mit Bump/Normal Maps 
gedacht, was wir für Torque 3D und BF2 natürlich gemacht haben, damits 
gut aussieht.

Fan T. schrieb:
> ich habe nicht damit gemeint, dass
> alle objekte soaufwändig wären.

Ahso, das klang eingangs aber so - 1000 Objekte mit je 3000 Polies/Tris

von Fan T. (fantasy)


Lesenswert?

macht das denn sinn bei bei einem kleinem display wie bem DS, normal 
maps einzusetzen?
sogar das licht würde ich mit einer licht textur im level und dacals bei 
charaktern nehmen

: Bearbeitet durch User
von Fan T. (fantasy)


Lesenswert?

zu der Texturgröße:
das sind Bilder aus meinen Games
http://www.bilder-upload.eu/upload/fe8b93-1467971186.jpg
Und bis auf den helicopter sind das alles 16px;32px und 64px texturen, 
bis auf das Wasser sind auch keine Shader aktivier, ich habe sie auf 
280x370 runterskalliert.
damit komme ich aus aber an einigen Stellen brauche ich doch 1-bis 2 
große Texturen

: Bearbeitet durch User
von Georg B. (diereinegier)


Lesenswert?

Die Displays, die zum Anschluß an µC gedacht sind, haben ihren eigenen 
Speicher (klar, denn der Speicher des µC ist ja meist nicht auf einem 
Bus herausgeführt). Sie sind per parallelem 8-Bit Interface, I2C oder 
SPI angebunden. Diese Anbindung bestimmt die mögliche Bildwiederholrate. 
Falls bei der Demo eines solchen Displays irgendetwas schnell geht, dann 
ist es recht wahrscheinlich, daß vorher in das Display geladene Bitmaps 
angezeigt werden.

Die kleinen (Touch-)Displays für den Raspberry Pi, die z.B. bei 
Watterott oder Adafruit angeboten werden, funktionieren m.W. ähnlich.

Ich würde an Deiner Stelle mit dem Raspberry Pi und Raspian mal 
herumspielen. Der schnelle Closed-Source-Treiber von Broadcom für OpenGL 
ES (also die abgespeckte Mobilversion) ist im Moment noch erste Wahl, 
aber es wird an einem Open-Source-Treiber für volles OpenGL gearbeitet. 
Beide benutzen die sogenannte VPU (==GPU).

Da kann mann dann jedes HDMI-Display anschließen und Input-Pins für 
Knöpfe gibt es auch genug.

Beim Stromverbrauch bin ich mir aber nicht so sicher. Man kann sicher 
auf einen Raspberry Pi Zero mit einem Core heruntergehen, aber ein 
HDMI-Display dürfte 4 AA(A) Zellen schnell leersaugen, oder? Mußt Du mal 
ein bißchen mit den Displays, die in Deinem Budget liegen, herumrechnen. 
Oder gleich auf das offizielle 7"-Display und einen fetten Akkupack 
setzen...

Du solltest auf jeden Fall einkalkulieren, daß Du manche Entscheidung 
für Hard- oder Software u.U. mehr als einmal revidieren mußt. Aber das 
ist ja nichts Neues für Dich: die Bilder die Du hochgeladen hast, sehen 
auf jeden Fall nicht nach dem ersten Programmierversuch aus.

Vielleicht fängst Du einfach erstmal damit an, auf (D)einem PC Linux zu 
installieren und OpenGL zu programmieren, wenn Du das nicht schon längst 
getan hast. Dieses Wissen ist auf dem Raspberry Pi dann direkt 
wiederverwertbar.

von Fan T. (fantasy)


Lesenswert?

Danke für die Antwort,

Bei hdmi/TMDS habe ich gelesen, dass da eine übertragung von 1,65 Gbit/s 
möglich sind, ich nehme an, dass das ein guter Orientierungskrise zum 
suchen meiner Platine ist.
ich gucke mir mal später an, wieviel speichen nun ein voller bildaufbau 
hat, Dein Hinweis mit dem darstellen von bildern aus dem display 
speicher, finde ich super. Du hast recht, es ist nicht mein erster code 
und ichnehme an solche tricks kann man für das grafische interface ode 
menue, nutzen. vielleicht passt auch ein font darein.

OpenGL bzw WebGL habe ich auch schon offt daran gedacht mich endlich 
richtig damit zu befassen.

Trotztdem hätte ich auch gerne ein Gerät, auf dem ich das testen kann, 
am desten wäre ein emulator und ein Gerät, jenachdem.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> macht das denn sinn bei bei einem kleinem display wie bem DS, normal
> maps einzusetzen?

Nö. Das bezog sich auf BF2 und Torque3D. Bei Smartphones und DS(i) würde 
ich das nicht machen wollen.

von Fan T. (fantasy)


Lesenswert?

Matthias S. schrieb:
> Fan T. schrieb:
>> macht das denn sinn bei bei einem kleinem display wie bem DS, normal
>> maps einzusetzen?
>
> Nö. Das bezog sich auf BF2 und Torque3D. Bei Smartphones und DS(i) würde
> ich das nicht machen wollen.

Ich habe nicht gesehen, was Ihr gemacht habt, würdest Du bitte einen 
Link posten.
Für Modelle mit Spitzenqualität braucht man viel Übung und gekaufte 
Assets, passen oft nicht zusammen und sogar mit allen shadern(normalmap, 
beleuchtung, blur,ssoa,foc unschärfe usw.) gehen sie einfach in der 
Menge unter.

: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

Fan T. schrieb:
> OpenGL bzw WebGL habe ich auch schon offt daran gedacht mich endlich
> richtig damit zu befassen.

Finde ich gut. Aber nicht das veraltete OpenGL 1.0 mit den glBegin und 
glEnd blöcken, sondern mindestens 2.0 oder GLES.

Das grundkonzept ist recht simpel. Das Hauptprogramm erstellt Buffer und 
Texturen, compiliert Shader und reicht diese an die Grafigkarte 
durchreicht. Die Grafigkarte führt die Shader aus u d zeichnet damit ein 
Bild in einen Buffer.

Der Ablauf ist dann normalerweise, dass 3D objekte als Ansammlung von 
Dreiecken betrachtet werden. Von diesen nimmt man die Eckpunkte, die 
werden dann Verteces genannt. Wenn viele 3ecke sich eckpunkte teilen, 
speichert man alle nir einmal, und macht noch eine Liste mit Indizies, 
also eine Liste der Positionen wo sich die Verteces der Dreiecke in der 
Vertex liste befinden. Die beiden Listen sind dann der Vertex und der 
Index Buffer. Beispiel:
1
0       1
2
  +---+
3
  |a /|
4
  | / |
5
  |/ b|
6
  +---+
7
2       3
8
Verteces:
9
0 1
10
1 1
11
0 0
12
0 1
13
Indeces:
14
0 1 2 <- Dreieck a
15
1 3 2 <- Dreieck b

Die Daten übergibt man dann der Grafigkarte.
Die wichtigsten Shader sind Vertex und Fragment shader. Der Vertex 
shader bekommt die Verteces der gegebenen Buffer, er wird für jedes auf 
der GPU neu ausgeführt. Er berechnet & gibt den Positionsvertex zurück, 
mit welcher die Grafikpipeline die Fragmente (=pixel) auf dem Bildschirm 
berechnet, die im Dreieck liegen. Der Fragment shader wird für jedes 
dieser Fragmente aufgerufen. Dieser gibt entweder die Farbe des 
Fragments zurück, oder verwirft dieses. So wie zu den Positions Verteces 
noch weitere Werte wie Farben gehören können, kann der Vertex Shader 
diese auch Verarbeiten, und derartige Werte dem Fragment Shader 
weitergeben. Die Zusammengehörenden Werte der Verteces, die das Dreieck 
bilden, zudem das Fragment gehört, werden dann so Interpoliert, das der 
wert eines Fragments stärker gewichtet wird, je näher das Fragment dem 
Vertex relativ zu den anderen ist.
Beispiel:
1
1     2
2
+-----+
3
a  b  c
4
1 und 2 sind die Verteces, a, b und c stellen Fragmente dar. Fragment a bekomt die Werte von Vertex 1. Fragment c die von Vertex 2, und Fragment b bekommt von beiden den Durchschnitt.

Das sind die Basics, wie OpenGL und Direct3D arbeiten. Der witz ist, 
dass theoretisch die berechnungen für alle Verteces und alle Fragmente 
gleichzeitig gemacht werden können.

von Fan T. (fantasy)


Lesenswert?

Also erstmal nochmal zur Hardware: Ich könnte den Raspberry,
(vielleicht wird es ein Zero, muß aber noch wegen der VPU gucken)
vielleicht auch ohne Baterie testen, wenn ich sowieso mehrmals die 
Hardware wechseln werde.
wenn ich ein Handy LCD Display nehme, mu ich das bestimmt auch nicht 
löten, weil es meist die passenden fpc stecker erhältlich sind, zum 
löten müsste ich die Dräte erst auseinander schneiden, aber das ist bei 
den gebogennen total schwierig.
Ich habe mal rumexperementiert und auchnebenbei defekte Gamecube 
Gamepads gekauft, von denen ich ein paar wieder verkauft habe, wenn ich 
nach diesen geldern gehen würde wäre mein Budget ehr klein, aber ich 
habe auch ein 4-Draht SPI raspbarry display für 5€ gesehen
http://www.ebay.de/itm/2-2-Seriel-SPI-TFT-LCD-Modul-Display-Anzeige-m-SD-Slot-f-Arduino-Raspberry-/162085314458?hash=item25bd099f9a:g:3PMAAOSwUfNXSV~u

zu OpenGL:

Daniel A. schrieb:
on Vertex 2, und Fragment
> Der witz ist,
> dass theoretisch die berechnungen für alle Verteces und alle Fragmente
> gleichzeitig gemacht werden können.
sehr interessant, werden dann einfach alle farbwerte zwischen 2 Farben 
berechnet und dann durch die anzahl der Pixel, die zwischen 2 verticies 
liegt dividiert? hehe

hey Jungs ich wünsche euch schonmal ein schönes wochenende, werde bei 
meiner Familie sein, es ist zu spannden aber sonst sehe ich überall 
nichts mehr als computer. zzG1)

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> Ich habe nicht gesehen, was Ihr gemacht habt, würdest Du bitte einen
> Link posten.

Ich war bei XWW2:
http://www.moddb.com/mods/experience-ww2

eine WW2 Mod für (ursprünglich) BF1942 und dann für BF2.

Wir haben dann umgesattelt auf Torque3D, haben aber nie jemanden 
gefunden, der Animationen für diese Engine machen konnte.
http://www.garagegames.com/

von Fan T. (fantasy)


Lesenswert?

Seltsam, dass ihr das nicht geschafft habt,... braucht es ein 
spezieelles callada format? Ich frage, weil in blender callada(Default) 
steht, oder werden die Animationen als extradatei geladen?

von Fan T. (fantasy)


Lesenswert?

Guten Morgen,
ich wollte am Wochenende eigentlich nichts mit Computern machen, aber 
ich denke Spät abends kann ich mich zurückziehen, und online gehen um 
einwenig was zu lernen :)
Und nachdem ich in meinem ersten thread:
Beitrag "Re: eigennen 3d Handheld bauen"
so viele hilfreich Tips bekommen habe, dachte ich mir, dass ich noch ein 
thema aufmache.

Ich würde gerne besser erkennen welche Microcontroller für meine Wahl am 
geeignet sind( es soll ein handheld für 3d Grafik werden)

Bisher weiss ich soviel. die Chips haben Power + - Ground, manche haben 
integrierte USB schnittstellen.
Es gibt Daten in und out, die werden vermutlich mit Dioden nur in eine 
Richtung funktionieren.
Dann haben die eine Takt frequenc und manche internen buffer.
die Controller gehören einer übergeordneten Familie an, wie arm und für 
manch gibt es schon fertige Compiler, andere brauchen eine extra lib - c 
, die Software bekomme ich beim Hersteller wenn es sich um im 
Fachgeschäft erhältliche chips handelt und nicht um etwa um einen Chip 
aus einer PSP oder einem Gameboy.
Aber es gibt auch Menschen, die Ihre eigene Bibliothek zum kompelieren 
für die Architektur schreiben, dafür braucht man aber eine Lizenz vom 
Hersteller.
Microcontroller wie Raspberry Pi Zero haben SPI Anschlüsse für ein LCD 
Display.

Es gibt aber soviele Chips im handel und ich nicht meine Zeit mit 
bildhen laden verschwendem möchte, weürde ich gerne Wissen, welche Daten 
noch interessant sind und ob die oben beschriebennen Annahmen richtig 
sind.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> Seltsam, dass ihr das nicht geschafft habt,... braucht es ein
> spezieelles callada format? Ich frage, weil in blender callada(Default)
> steht, oder werden die Animationen als extradatei geladen?

Nee, da ist schon Collada, aber Torque3D geht z.B. von einer recht 
ungewöhnlichen Avatar Grundposition aus. In so gut wie allen Engines ist 
das der 'Jesus am Kreuz', während Torque da eine Position a là 
'schussbereiter GI' benutzt. Dann muss bei allen Waffenanimationen der 
komplette Player mit geriggt werden und ergibt eine schier endlose Zahl 
von Animationen - immerhin sinds in unserer Mod etwa 20 Waffen gewesen.
Ich bin kein grosser Animator und habe mich deswegen erstmal nur mit den 
Avataren beschäftigt, was auch ganz gut geklappt hat, aber bei den 
Waffen habe ich dann das Handtuch geschmissen. Ich bin eher Modeller, 
Coder, AI Fuzzy und Texturentyp und bei Animationen nur rudimentär 
begabt. Das C++ allerdings von Torque war sehr brauchbar und Schiffe in 
die Engine zu bringen (gibts sonst in T3D nicht) habe ich in einer Woche 
gemacht, plus  grundlegende AI und unserem 'Conquest' Gamemode.

von Fan T. (fantasy)


Lesenswert?

ging es nicht, die Animationen per code zu interpolieren? Dass kann doch 
jede Engine, oder?

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> ging es nicht, die Animationen per code zu interpolieren? Dass kann doch
> jede Engine, oder?

Nee, das geht nicht. Bei T3D sind das Sequenzen mit 1/30 Sekunde pro 
Frame und man blickt auch nicht durch. Du kannst nämlich nicht etwa die 
Waffe mit in die Szene importieren, sondern bewegst nur einen Haufen von 
Dummies durch die Gegend. Das ist etwas ungeschickt und z.B. bei BF2 
viel einfacher und übersichtlicher, aber auch da wird nicht per Code 
interpoliert, sondern in 3DSMax Framesequenzen gemacht. Max selber kann 
dann allerdings zwischen Keyframes interpolieren.

Merkwürdig ist bei T3D auch, das selbst die Lenkung von Rädern (Autos) 
und die Federung derselben Animationen sind - da muss man sich erstmal 
dran gewöhnen und ist gar nicht zu vergleichen mit z.B. FarCry oder BF2, 
wo sowas per Skript/Code gemacht wird.

: Bearbeitet durch User
von Fan T. (fantasy)


Lesenswert?

Also ich würde ein Multiplayerparkur machen, bei dem das Level die die 
"waffe" ist.
Der erste Am ziel hat gewonnen und im level könnte man objekte 
verschieben und aktivieren um den anderen den perkur zu erschweren. man 
kann da auch reaktions zeit brauchen um erfolgreich zu werden und eine 
vorahnung haben, welches podest unter den füssen verschwindet oder 
welche wege sich, durch das verändern des Level, durch die spieler, 
kreuzen werden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> Der erste Am ziel hat gewonnen und im level könnte man objekte
> verschieben und aktivieren um den anderen den perkur zu erschweren.

Für sowas schau dir mal die RAPID Collision Library an.
http://gamma.cs.unc.edu/OBB/
Die habe ich mal auf den Nintendo portiert und läuft prima zur 
Kollisionserkennung, sowohl damit man nicht durchs Terrain fällt als 
auch für Wände usw.
Du fütterst die Library mit den Tris deiner Welt und einem vereinfachten 
Kollisionsmodell des Players. Anfragen an RAPID beantwortet die Library 
dann entweder sehr schnell mit 'no Collision' oder mit der Anzahl der 
Kollisionen. Denkbar wäre auch eine Erweiterung, um Kollisionen mit 
verschiedenen Materialien zu erkennen.
Bei mir war das einfach, da ich praktisch nur Boden und Wände hatte. 
Meine Player Kollision hatte immer die gleiche Orientierung und ich habe 
(war einfacher) beim Umdrehen die Welt gedreht. So wusste ich immer, wo 
der Player kollidiert (vorne hinten rechts links unten) und habe dann 
einen kleinen Gegenimpuls auf die Bewegung des Spielers gegeben. So 
konnte man auch Abhänge hoch und runterlaufen. Sogar ducken hatte ich 
mit drin.

Kollision erledigt. Die Level habe ich damals mit 3DSMax und einem 
kleinen selbstgeschriebenen Exporter gemacht. Die Material ID habe ich 
für die Art der Textur genommen (Wände/Boden)

: Bearbeitet durch User
von Fan T. (fantasy)


Lesenswert?

hm, ich wollte eigentlich gerne in c oder java programmieren, aber die 
haben den c support eingestellt

und kann sein, obwohl das system sogar mit 90 MHz R8000 CPU, 512 MB 
läuft, dass es zu genau ist?
aber habe das nicht verstanden, weil da steht
"... RAPID is a OBB tree...
und ich habe gelesen:
OBB-Kollisionserkennung. OBB bedeutet 'oriented bounding box' 
(ausgerichtete Begrenzungsbox) und stellt eine rechteckige Box
also doch nicht für polygonale erkennung?

Ausserdem konnte ich dann die cov.ps Datei nicht lesen.

die gab es hier zu:
ERRATA: The equations for the "infinitely densely" sampled triangles in 
the second column of page 173 (of the SIGGRAPH '96 publication) are 
incorrect. Here are the correct equations, but notice that we are using 
the variable A for the area of a triangle, and the variable m denotes 
the centroid of a triangle (which are different usages from those in the 
paper).

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fan T. schrieb:
> hm, ich wollte eigentlich gerne in c oder java programmieren, aber die
> haben den c support eingestellt

Nee, da verwechselst du irgendwas - den Code in C gibts gegen eine 
Anfrage per Mail an die Jungs, aber notfalls habe ich auch das Original 
hier für MSVC und auch die an den Nintendo angepasste Version. (Version 
2.0.1)

Für den DS habe ich die Endungen auf *.cpp umgestellt und den ganzen 
Code für RAPID in eine Datei gepackt. Ausserdem alle 'double' auf 
'float', damits schneller geht. Ich habe RAPID nur ein wenig erweitert, 
damit es nach X Kollisionen zurückkehrt, denn mir reichte meistens schon 
eine Kollision für meinen 'Wolf3D' Tester.
Als Projekt Grundlage habe ich damals Code von den
http://drunkencoders.com
benutzt, die schon OpenGL und z.B. Tastenabfragen gut gelöst hatten. 
Dazu brauchte man allerdings eine Karte für DS Slot 2 und Homebrew 
Software, das war bei mir die R4. Bei mir hat man den Spieler nie 
gesehen, deswegen gabs auch keinen Avatar.
Das sind Dinge, die du für den STM32 noch brauchst. Als Grundlage für 
eigene Projekte auf dem F429 ist Uwe B. immer eine gute Anlaufstelle:
http://mikrocontroller.bplaced.net/wordpress/?page_id=2736

der für alle möglichen Dinge auf dem F429 Disco schon nette Libraries 
gemacht hat. OpenGL ist da allerdings nicht bei.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.