Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 00:34

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL ohne Rendering Context
BeitragVerfasst: Di Jan 08, 2008 16:58 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Hi Leute,

sagt mal, kann man OpenGL auch ohne Rendering Context nutzen?
Wenn ich z.B. mit einem Konsolenprogramm ein Objekt in eine Textur rendern möchte.

Rein theoretisch dürfte es OpenGL doch ziemlich egal sein, ob der Inhalt des Framebuffers dargestellt wird oder nicht?

dank im voraus

damadmax

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 08, 2008 18:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Nun, wenn du einen framebuffer dann als Rendering Target angibst... Warum nicht? Würde mich auch mal interessieren, dann könnte man die Hardwarebeschleunigung von Grafikkarten für kleine Tools nutzen (z.B. einer Bitmap nen Alphakanal hinzufügen), die in der Konsole laufen und daher kein wirkliches Fenster haben.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 08, 2008 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Mh...dann muss ich mich mal mit den FBOs beschäftigen.

Ich dachte eher daran eine Art web-based-renderer zu machen. Sprich ein Objekt auf einem Webserver zu rendern. Allerdings wird es wohl daran scheitern, dass wohl die wenigstens server eine entsprechende Grafikkarte haben werden :D
Wobei er ja ggf. in den Softwaremodus zurückfallen wird. Wenn der Treiber für irgendeine "billig"-OnBoard-Server-Graka überhaupt über solch eine Funktionalität verfügen wird.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 08, 2008 19:42 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Du könntest ja von vornherein Mesa als "OpenGL-Treiber" laden, sodass er zwangsläufig im Softwaremodus rendert.
Ein anderes Problem dürften aber die Rechte auf dem Server sein, aber das gehört nicht hierher :wink:

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 08, 2008 21:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ohne Render Context (RC) geht es nicht. Denn zum Ansteuern von egal welchen Funktionen wird der benötigt. Ansonsten weiß niemand, dass OpenGL benutzt werden soll. Für einen RC wird zwingend ein Device Context (DC) benötigt. Und ein DC klebt immer an einem Gerät. Also Bildschirm/Fenster.

Allerdings auch Konsolenanwendungen können Fenster erstellen. Nicht jedes Fenster muss aber sichtbar sein. Also mit CreateWindow erstellen und dann hat man ein HWND mit dem man arbeiten kann. So etwas wird man aber auch in jedem Fall mit Mesa benötigen.

Wenn man einen Kontext hat dann wäre da wohl das beste, wenn man mit Frame Buffer Objects arbeitet.

Alternativ zum Frame Buffer Object und dem RC kann man auch ein Windows spezifischen PixelBuffer verwenden. Das ist dann ein Speicherkontext. Man benötigt keinen zusätzlichen Kontext mehr und eventuelle Probleme, weil das Fenster nicht sichtbar ist gäbe es dann vermutlich nicht. Aber ich habe das bisher auch noch nicht gemacht.

PS: Gibt sicherlich noch andere Möglichkeiten. Fallen mir aber gerade nicht ein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 08, 2008 23:38 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
@lord horazont: ist meiner. rechte wären kein problem.

Zitat:
PS: Gibt sicherlich noch andere Möglichkeiten. Fallen mir aber gerade nicht ein.
:D

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 09, 2008 07:32 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Lossy eX hat geschrieben:
Also Bildschirm/Fenster.

Nein, man kann einen DC auch für ein Bitmap haben, wenn man möchte - ein Fenster ist nicht notwendig. Jedenfalls klappte das unter Win3.11 noch wunderbar :lol: Und dann kann man mit dem RC auch blank in ein Bitmap rendern, aber den RC brauchste dann immernoch, aber ne Fenster ist nicht nötig - allerdings wollen nicht alle Grafikkarten in Bitmaps rendern und man muss beim RC erstellen auch die Bitte um das Bitmap mitanfordern - kann das nimmer auswendig, aber man kommt schon dahinter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 09, 2008 08:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ähm. War etwas sehr unglücklich ausgedrückt. ;) Vorher hatte ich ja gesagt Gerät. Es ist theoretisch auch möglich auf einen Drucker zu rendern, denn der hat auch nur einen DC. Aber in diesem Fall (dem klassische Fall) hängt der DC an einem Fenster. Aber ja es wäre auch denkbar in ein Bitmap zu rendern. Nur wie du schon angedeutet hast. Die meisten Treiber unterstützen es einfach nicht (mir ist keiner bekannt). Und dann landet man unweigerlich in der Implementation von Microsoft die zudem gerade mal so OpenGL 1.1 kann. Oder man benutzt gleich Mesa. Allerdings ist da die Frage ob man nicht doch lieber auf Hardwarebeschleunigung setzen will/sollte.

@damadmax: Wobei ich aber so im noch mal drüber lesen gestehen muss, dass ich keine Ahnung habe was du damit eigentlich bezwecken möchtest? Bin zum Anfang davon ausgegangen es soll lokal in der Konsole laufen. Aber Web Based, Client/Server? Es gibt auch diverse Projekte bei denen übers Netzwerk gerendert wird etc. Bzw für Linux in VMs gibt es auch einen OpenGL Treiber der die Aufrufe per TCP/IP zu dem Host Rechner schickt und dann die richtige Hardware benutzt und das Ergebniss wieder zurück zum Treiber schickt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 09, 2008 10:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 25, 2005 17:51
Beiträge: 464
Also in ein Bitmap rendern dürfte doch kein Prob sein?
Das macht man ja in der WinAPI, wenn man das Flackern elemenieren möchte. Man erstellt einen MemDC, zeichnet da rein und blittet das dann in das Fenster. Und ein MemDC erstelle ich ja nun ohne ein Fenster zu haben.

_________________
__________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste


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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]