TrumEngine: Entwurf

In diesen Bereich gehören alle Themen, die bei der Entwicklung etwas mit Grafik und Design zu tun haben
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
phpbb forum styles
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

Im Prinzip genau das, ja.
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: Entwurf

Beitrag von TrommlBomml »

ich hab mir das ganze nochma angeschaut und bin zu den schluss gekommen, dass ich einiges nochmal komplett ändern muss, was interna angeht. das scaling ist der auslöser. da es zurzeit extra gekoppelt ist, muss man imma noch was anderes aufrufen, der komplette vertexbuffer muss nochmal neu berechnet werden, das wird man wahrscheinlich nur kaum merken, aber das geht mit shader viel schicker. auch kann ich die animation so genial geschleunigen.

also: ich stelle das um, damit muss die graka min. Shader Model 1.0 können demnächst.
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

das heißt DirectX 8.1 btw. Direct3D 8 fähige Grafikkarten laut: http://de.wikipedia.org/wiki/Shader ?
Rokko hat geschrieben:So hier mal ne Liste mit Karten die keine Pixel Shader unterstützen:

NVIDIA Riva 128
NVIDIA Riva TNT
NVIDIA Riva TNT2 M64
NVIDIA Riva TNT2/TNT2 Pro/TNT2 Ultra
NVIDIA Vanta
NVIDIA Geforce256 DDR/SDR
NVIDIA Geforce2 GTS/Pro/Ultra/Ti200
NVIDIA Geforce2 MX/MX100/MX200/MX400
NVIDIA Geforce4 MX/MX4000
NVIDIA Quadro
NVIDIA Quadro2 Pro
NVIDIA Quadro NVS
NVIDIA Quadro4 280XGL/380XGL/550XGL
NVIDIA Geforce2 Go
NVIDIA Geforce4 Go
NVIDIA Quadro2 Go
NVIDIA Quadro4 500 Go
Können wir für diese Gruppe an Uralt-PCs bzw. Onboardgrafiknotebooks und -barebones einen "Ausfallmodus", sprich ausgeschaltete Fontskalierung und Animationen, implementieren?
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Entwurf

Beitrag von Sir Pustekuchen »

Verschiedene Versionen möchte ich nicht anbieten. Das macht dann alles viel zu kompliziert. Außer TrommlBomml schafft es, durch einen einfachen Schalter, die kompletten Shader abzustellen und den alternativen Weg zu wählen. Aber anonsten machts einfach zu viel Arbeit und braucht zuviel Zeit (wovon ich im Moment wirklich Null habe).

Weiterhin besitzt jede (auch 4 Jahre alte) Onboardgrafikkarte das SM1.0. Wer eine noch ältere hat, der müsste sich dann mal nach was anderem Umschauen oder bleibt bei der aktuellen Alpha4. Jeden glücklich zu machen ist eben sehr schwer. Aber vlt. kann TrommlBomml dies per einfachen Schalter integrieren. Mehrere Views für eigentlich den selben Inhalt, nur um Uraltgrakas zu unterstützen, werde ich nicht einbauen.
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

das meinte ich auch damit ;).
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: Entwurf

Beitrag von TrommlBomml »

SirPustekuchen hat geschrieben:Außer TrommlBomml schafft es, durch einen einfachen Schalter, die kompletten Shader abzustellen und den alternativen Weg zu wählen
naja schaffbar ist es, SirPustekuchen, aber das ist in der einfachheit 1. nicht so schnell zu schaffen, das clever zu lösen wird sowieso recht ne herausforderung. Sodass man das einfach ausschalten kann, muss gut geplant sein, weil ich kein bock hab das an allen ecken durch branching zu überprüfen das würde mir auf die nüsse gehen.
Malle hat geschrieben:So hier mal ne Liste mit Karten die keine Pixel Shader unterstützen:
also Pixelshader brauchen wir vorerst nicht, man kann auch erstmnal alles per vertex machen (== Vertex Shader), was wir für die Animationen usw. sowieso nur benötigen. wobei per pixel doch sehr schön ist, aber wenn dann erstmal nur bei Planeten und schiffen für beleuchtung, sonst wahrscheinlich nicht.

und naja, ich denke, dass Shader Model 1.0 das aller aller aller aller aller mindeste ist. selbst mit 2.0 wird kaum interesse an dem spiel vergehen.
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Entwurf

Beitrag von Sir Pustekuchen »

Das denke ich eben auch. SM1.0 ist wirklich schon alt.

Von meiner Seite aus müsste das mit dem Einbauen dann relativ schnell von statten gehen. Ich habe alle, bis auf ein paar Mainviews, schon auf GDI+ umgestellt. Danach würde ich erstmal nur die Planetenansicht auf Direct3D umstellen. Die Galaxieansicht vielleicht auch noch. Dies kommt dann darauf an, in wie weit das Linienzeichnen in Direct3D funktioniert. Ansonsten ist die View auch schon auf GDI+.

Die Auflösung der Galaxiemap wurde verdoppelt. Die Schiffssymbole werden nun als Grafiken, nicht mehr als Fonts, angezeigt. Dadurch erhalten wir bunte Icons und können wesentlich dynamischer reagieren. Mit TrommlBommls AnimSprite Klasse könnte wir diese Icons sogar die ganze Zeit rotieren lassen. Aber das ist dann vielleicht zuviel des Guten ;-). Da hätte ich auch gleich mal eine Frage an TrommlBomml, wie er dies lösen würde. Um die Galaxiemap zu vergrößern, muss auch das Hintergrundbild vergrößert werden bzw. es wird beim Anzeigen gestreckt. Mit der GDI ist das Laden und Anzeigen von Grafiken bis 4000px mal 4000px kein Problem. Nur das initiale Laden der Grafik dauert ein klein wenig. Könnte es da Probleme mit Direct3D geben? Oder Arbeitet Direct3D sogar noch wesentlich schneller?

Nebenbei bin ich auch gerade dabei, die Views in einzelne Klassen auszulagern. Bis jetzt ist nur jede SplitterView eine eigene Klasse. Innerhalb eines Splitters existiert aber nur eine Anzeigeklasse. Verschiedene Draw-Funktionen sind dann für das Zeichnen der einzelnen Menüs verantwortlich. Jetzt benutze ich eine Klasse, wodurch dynamisch die Views in einem SplitterWindow gewechselt werden können. Dadurch können wir dort auch spezielle Views auf Direct3D umstellen, andere auf GDI+, andere sogar bei GDI lassen. Damit können wir Schritt für Schritt die Ganze Sache umstellen. Außerdem tat so ne Codeüberarbeitung und Neustrukturierung auch mal dringend Not. Der Mainviewcode kommt noch aus meinen Programmieranfangszeiten und die Mainview-Class besteht aus mehreren Tausend Codezeilen ;-)
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

das Flottensymbol im gerade ausgewählten Sektor oder der gerade ausgewählten Flotte rotieren zu lassen wär in der Tat was Feines..
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: Entwurf

Beitrag von TrommlBomml »

SirPustekuchen hat geschrieben:Da hätte ich auch gleich mal eine Frage an TrommlBomml, wie er dies lösen würde. Um die Galaxiemap zu vergrößern, muss auch das Hintergrundbild vergrößert werden bzw. es wird beim Anzeigen gestreckt. Mit der GDI ist das Laden und Anzeigen von Grafiken bis 4000px mal 4000px kein Problem. Nur das initiale Laden der Grafik dauert ein klein wenig. Könnte es da Probleme mit Direct3D geben? Oder Arbeitet Direct3D sogar noch wesentlich schneller?
das kommt auf die grafikkarte an, die aktuellen unterstützen bis 4094x4096 afaik. da viele ältere nur bis 2048x2048 unterstützen könnte das probleme geben. durch skalierung und den filtern (das lässt sich noch feiner machen, zurzeit is linear, nichma anisotropisch).
Zum laden: Direct3D wird denke auf jeden fall nicht schneller laden können als GDI, weil der flaschenhals ist hier immer die Festplatte, nicht der algorithmus oder der RAM.
Wenn du so etwas wie detaillierte maps haben willst und sicher belioben willst (das hoffe ich das du das tust), müsste man da ein bissle tricksen und die graik dann aufteilen, z. b. auf 1024x1024 teile, das können so ziemlich alle. je nach detailstufe.
SirPustekuchen hat geschrieben:Dadurch erhalten wir bunte Icons und können wesentlich dynamischer reagieren. Mit TrommlBommls AnimSprite Klasse könnte wir diese Icons sogar die ganze Zeit rotieren lassen. Aber das ist dann vielleicht zuviel des Guten .
nein, das is doch geil ^.^ dazu hab ich euch das doch programmiert. spielereien müssen sein, ihr habt jetz direct3D :mrgreen:
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

Sollte das nicht auch wieder ohne AnimSprite gehen mit dem drehenden Flottensymbol? So à la SetCenterPivot und fturn, halt nur um die z-Achse statt y-Achse. Die AnimSprite Klasse ist ja mehr für komplexere Animationen zuständig, die man sich im Bildbearbeitungsprogramm vorher zurechtschustert.

Ich wüsste nämlich im Moment kein nichtkommerzielles Programm, was mir aus einem 2D-Bild eine Bildfolge generiert, in der eine solche Rotation abgebildet wäre. Natürlich kann man die mittels Perspektivische Transformation in gimp manuell generieren, aber das sieht erstens nicht schön aus wegen der Verpixelung dabei und 2. ist es mit der Maus nicht leicht zu handhaben. Werte eingeben kann man da ja nicht..
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Entwurf

Beitrag von Sir Pustekuchen »

Mittels Paint.NET kann man so etwas machen. Unter Ebenen -> Rotationszoom. Nur wenn das Bild um fast 90° rotiert wurde, müsste man es etwas plastischer erscheinen lassen. Dann müsste man die einzelnen Bilder nur noch abspeichern und zu einer Bildfolge zusammensetzen lassen. Fertig ists...
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: Entwurf

Beitrag von TrommlBomml »

aqllgemien wollt euch euch sagen, dass ich dieses WE nicht da bin, ich fahr zur dusmania, damit ihr bescheid wisst. ab montag bin ich wieder für euch da, ciao :)
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6948
Registriert: Montag 13. November 2006, 15:16

Re: Entwurf

Beitrag von Malle »

Viel Spaß! Ich fahr für ne Woche ans Meer in Urlaub :D

Sollten dort übrigens Programmierer mit Spezialgebiet KI oder prioritisierte Verhaltenmuster (für die Kampftaktiken im Kampfalgo) rumlaufen, gleich mit einsammeln :mrgreen:
TrommlBomml
Supporting Programmer
Supporting Programmer
Beiträge: 45
Registriert: Montag 2. Juni 2008, 19:58
Wohnort: nahe berlin

Re: Entwurf

Beitrag von TrommlBomml »

eine kleine zwischenmeldung:

ich habe nun meine letztendliches konzept für die umsetzung mit shadern gefunden und bin eifrig am werkeln, nur hat irgendwie D3D keine lust da drauf :D. auch ist es wirklich enorm performance bringend, wenn das ganze klappt. warum das nicht klappt, können mir zurzeit nichtmal meine kollegen im spieleprogrammierer.de forum sagen. aber ich bleibe dran, gehen MUSS es. *kopfkratz* is garantiert wieder nur son plöder fehler wo man sich an den kopp fasst!
"Man kann zu laut Musik hören, aber nicht zu laut Metal!"

"Religionskriege sind Konflikte zwischen erwachsenen Menschen, die sich darum streiten, wer den cooleren, imaginären Freund hat."
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Entwurf

Beitrag von Sir Pustekuchen »

Wahrscheinlich. Aber helfen kann ich dir da leider nicht.

Ich habe dafür den RC1 von einem anderen wichtigen Projekt für die Uni heute fertiggestellt. Das ist mein persönlicher guter Wochenabschluss ;-)

Wenn dann dein Code wirklich richtig performant ist, na dann können sich die BotE Spieler auf ne hübsche Oberfläche freuen.
Antworten

Zurück zu „Grafik und Design“