Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
also folgendes will ich machen (so im sinne von 3ds max oder hier der spieleditor von ZornGL, sascha willems):
weiss jemand wie das gescheit initialisierbar ist mit den 4 bildschirmen. Hierfür werde ich sehr warscheinlich mit standartdelphi fahren und nicht mit sdl...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Du wolltest wohl 4 "Viewports" sagen, nicht vier Bildschirme. Dache beim Lesen des Titels schon an Multi-Monitor-Support. Aber zum Thema : In meinem Editor (damals, iss ja schon lang her) war nur die 3D-Ansicht ein OpenGL-Fenster, die anderen einfache GDI-Fenster. Kann man heute getrost genauso machen, dann ber besser mit GDI+.
Wenns jedoch 4 OpenGL-Viewports sind unterscheidet sich nichts von ner Anwendung mit einem Fenster, sprich man erstellt für jedes Fenster (sind ja MDI-Childs) einen eigenen RC und rendert die nacheinander durch. Allerdings sind RC-wechsel recht aufwendig und man muss etwaige Ressourcen die man in mehreren RCs zeigen will sharen (wglShareLists). Besser ists dann wie z.B. bei 3DMax, wo es nur ein Windowsfenster gibt und dann alle 4 Ansichten in dieses Fenster gerendert und mit glScissor geschnitten werden. Gibts aber mit Sicherheit schon einige Threads zu diesem Thema hier auf DGL.
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
also wäre es das beste einfach einen rendercontext zu haben und dann die fenster einzeln zu rendern? ist zwar auch ein bisschen nervig, wegen den ganzen abgrenzungen, aber sollte grundsätzlich gehen.
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
stichwort gdi und gdi+, wo ist da überhaupt der unterschied und vor allem, wie kann man in delphi umstellen ob man nun das eine oder das andere nutzen will ? oder wird automatisch wenn windows gdi+ unterstützt das genommen von der winAPI ?
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Du solltest dir mal Blender ansehen.
Blender hat ein Context, der über das ganze Fenster geht.
Eine Klassenstruktur gibt dann an, wie oft das Bild geteilt wurde, welche Ausmaße es hat und eigene Ansichtsdaten(Wireframe, Kamerapos,...). Damit kannst du dir viel Arbeit ersparen, da du keine extra 2d Funktionsliste für nicht 3D fenster brauchst.
Kleiner Tipp am Rande, wenn es ein eigener Editor wird, dann solltest du ein CodeBlock implementieren der es erlaubt ein Fenster in Engine Modus zu schalten. So kannst du dann immer deine aktuelle Engine nutzen um dir das Resultat an zu sehen.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Extrawurst hat geschrieben:
stichwort gdi und gdi+, wo ist da überhaupt der unterschied und vor allem, wie kann man in delphi umstellen ob man nun das eine oder das andere nutzen will ? oder wird automatisch wenn windows gdi+ unterstützt das genommen von der winAPI ?
GDI+ kann einiges mehr als das normale GDI und ist auch schneller, siehe dazu MSDN, da gibts mehr Infos zu. Für GDIPlus braucht man extra Header, gibts auch für Delphi (einfach googeln, k.a. wo ich meine her hab). Gibts allerdings erst ab WindowsXP, ältere Windowsversionen brauchen dann ne extra dll, die man der Anwendung beilegen kann.
Registriert: Di Feb 01, 2005 15:59 Beiträge: 14 Wohnort: nähe Stuttgart
Nochmal zum Thema mehrere Viewports:
Also kann man sagen das man auf jeden Fall die höchste geschwindigkeit erhält wenn man alles in einem Render-Context macht, und damit halt die größen-Änderung der fenster selber implementieren muss, anstatt mehrere Fenster zu nehmen und für jeden einen eigenen RenderContext bereit stellen muss?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, wie ich ja bereits oben gesagt habe ist der Wechsel des RCs so ziemlich die aufwendigste (und damit verlangsamenste) Aktion die unter OpenGL möglich ist, und abgesehen davon muss man dann auch für jeden RC Ressourcen etc. verwalten.
Ja, wie ich ja bereits oben gesagt habe ist der Wechsel des RCs so ziemlich die aufwendigste (und damit verlangsamenste) Aktion die unter OpenGL möglich ist, und abgesehen davon muss man dann auch für jeden RC Ressourcen etc. verwalten.
Ist Framerate so wichtig, bei nem Leveleditor???
Ressourcenmanagement ist ja auch nicht das Prob, wenn man eh ne Klasse dafür hat, ob man nun eine oder vier Instanzen anlegt ... .
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest dir wirklich überlegen ob du maximale Frameraten willst. Bei einem Editor der primär zum modellieren da ist, und nicht zum Spielen, ist eine Prozessorlast >60% nicht angebracht. Und auch mit 50FPS kann man flüssig drehen und Zoomen. Ein Timer wäre da sicherlich nicht verkehrt.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.