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

Aktuelle Zeit: Mi Jul 16, 2025 16:43

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



Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mo Mai 14, 2012 15:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Vinz hat geschrieben:
Meinst Du man sollte wissen, wie OpenGL aus den Vertices und den Matrizen die man ihm gibt, die einzelnen Pixel schafft.
Da hab ich nämlich noch nicht so den Durchblick.
Wie man die Polygone irgendwo hinkrigt ist mir aber klar, und dass die Normalen die Farbwerte entsprechen verändern usw.


z.B. aber doch eher Sachen wie Kamera, Culling, Blending etc. halt einfach ersma nen bissl rumspielen :)
Vinz hat geschrieben:
Aber um seine Vektoren zu verschieben,rotieren etc muss man doch nach wie vor irgendwie mit Matrizen arbeiten, oder?
Gibts da dann vorgefertigte Funktionen oder muss man die 4x4 Matrizen jedes mal selber schreiben.
Kleines Bsp für einen GLTranslate-Ersatz wäre hilfreich.


Jein, es gibt zwar einige Bibliotheken speziell für OGL die sowas machen. Da aber jede halbwegs brauchbare Mathe Bibliothek Helper für
Matrizen hat sollte man eher diese nehmen und dann einfach loadmatrix verwenden.

Vinz hat geschrieben:
Wofür brauche ich eig Shader zwingend? Oder ist es für komplexe Projekte bloß handlicher.
Soweit ich mitbekommen hab, ist es damit leicht, mehr Detail reinzubringen (Tesslation), was gibt es sonst noch?


Shader oder GPU-Kernel sind einfach nur kleine Programme die von der GPU ausgeführt werden. Die GPU bietet halt den großen Vorteil bzw Nachteil das sie sehr gut Parallel arbeiten kann. Zwingend erforderlich sind sie z.B. für komplexe Operation bei einzelnen Pixeln (z.b. einfach mal Bloom), da nur die GPU aus o.g. Grund genug Power bietet.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mo Mai 14, 2012 16:06 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
yunharla hat geschrieben:
Vinz hat geschrieben:
Meinst Du man sollte wissen, wie OpenGL aus den Vertices und den Matrizen die man ihm gibt, die einzelnen Pixel schafft.
Da hab ich nämlich noch nicht so den Durchblick.
Wie man die Polygone irgendwo hinkrigt ist mir aber klar, und dass die Normalen die Farbwerte entsprechen verändern usw.


z.B. aber doch eher Sachen wie Kamera, Culling, Blending etc. halt einfach ersma nen bissl rumspielen :)
Vinz hat geschrieben:


Alpha-Blending klappt bestens, Kamera mach ich mir mittlerweile selber, Culling bisher nur in Bezug auf Blickrichtung.

Also ich hab schon n kleines Game mit etwas Physik sogar, so isses nicht, gibt halt noch kein Ton und alles sieht sehr mathematisch aus (keine Modelle).

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mo Mai 14, 2012 22:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Gibts da dann vorgefertigte Funktionen oder muss man die 4x4 Matrizen jedes mal selber schreiben.
Kleines Bsp für einen GLTranslate-Ersatz wäre hilfreich.

In einem größeren Projekt reichen die alten OpenGL-Mathefunktionen vorne und hinten nicht. Sie sind einfach zu unhandlich weil es keine fertigen Klassen für Vektoren und Matrizen gibt. Gerade in C++ kann man aber Operatoren überschreiben und damit wirklich deutlich übersichtlicheren Code produzieren. Da schreibst du eben einfach nur noch "Matrix * Vektor" statt einer 4x4 Doppelschleife.
=> Entweder selbst was schreiben oder eine Library suchen die das benötigte kann...bzw. eine Kombination aus beidem ;)
Naturgemäß empfehle ich da natürlich mein CoolMath.

Beispiele was man mit Shadern so anstellen kann finden sich im Wiki-Artikel Shader. Echte Beispielshader findest du in der Shadersammlung.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 16, 2012 14:26 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
Ok, da ihr mich etwas verwirrt habt, muss ich jetzt noch ein paar allgemeine Fragen stellen:


"C und Pointer" oder "C++ und Objekte" oder "beides"? Was braucht man? Wozu genau?

Ab welcher Version von OpenGL kann ich Shader verwenden, ab welcher fallen meine vertrauten Befehle (Translate,Rotate..) weg, oder besser in welchen Versionen kann ich beides verwenden?
OpenGL 4 scheidet übrigens aus, da meine GK das nicht kann.

Wie langsam sind die alten Befehle, verglichen mit Shadern?
Wenn ich einen Shader in mein Programm einbringen will, dass mit den alten Befehlen läuft, wie geh ich ran? Geht es überhaupt?
Möchte Shader möglichst langsam eilaufen lassen.
Ich hätte gerne per Pixel Beleuchtung, ist die als ersten Shader zu empfehlen?

schönen Gruß

Vinz

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 16, 2012 17:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Vinz hat geschrieben:
Ab welcher Version von OpenGL kann ich Shader verwenden, ab welcher fallen meine vertrauten Befehle (Translate,Rotate..) weg, oder besser in welchen Versionen kann ich beides verwenden?
Pixel und Vertexshader gehen auf jeden fall ab OpenGL 2.0, schon vorher aber mit den passenden Erweiterungen GL_ARB_vertex_shader und GL_ARB_fragment_shader (und eventuell mehr).

Vinz hat geschrieben:
Wie langsam sind die alten Befehle, verglichen mit Shadern?
Da spielen eher die VBOs eine Rolle als die Shader, ich denke nicht, dass man bzgl. Shader vs. Fixed Pipeline da eine definitive Antwort geben kann. Zumal man bei aktuelleren Karten fast davon ausgehen können dürfte, dass die „Fixed Pipeline“ auch nur durch Shader emuliert wird.

Vinz hat geschrieben:
Wenn ich einen Shader in mein Programm einbringen will, dass mit den alten Befehlen läuft, wie geh ich ran? Geht es überhaupt?
Ja, das geht. Pixel+Vertexshader ersetzen nur die Transformation und Farbberechnung der Vertices bzw Fragmente. Du kannst also ohne Probleme alle alten OpenGL-Funktionen verwenden, aber deine Beleuchtung in nem Fragmentshader machen. Die alten OpenGL-Matrizen stehen dir auch im Vertexshader zur Verfügung.

Vinz hat geschrieben:
Möchte Shader möglichst langsam eilaufen lassen.Ich hätte gerne per Pixel Beleuchtung, ist die als ersten Shader zu empfehlen?
Ach, so schlimm sind die garnicht ;). Mein Tipp: Bau dir ein kleines Programm wo du ein oder zwei objekte mit ner Textur hast und live den Shader editieren kannst (also mit Texteingabefeld oder einem Button oder einem Hotkey um den Shader neu von der Festplatte zu laden). Dann kannst du im Betrieb rumexperimentieren und sparst dir viel Zeit und kannst schön lernen :).
Ansonsten ist Per Pixel Lighting wohl das einfachste (nach einfach Texturierung oder konstante Farbe) was du bekommen kannst, ja.

grüße

_________________
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: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 16, 2012 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
zum rumspielen kannst du auch nen guten Videoplayer wie MPC (kp ob VLC mitlerweile auch schon nen Shadereditor hat) verwenden, dann merkste relativ schnell wies funktioniert :)

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 16, 2012 18:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
"C und Pointer" oder "C++ und Objekte" oder "beides"? Was braucht man? Wozu genau?

Also C++ ist eine Erweiterung von C die es dir erlaubt Objekt-Orientiert zu programmieren.
Wikipedia hat geschrieben:
Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee dabei ist, Daten und Funktionen, die auf diese Daten angewandt werden können, möglichst eng in einem sogenannten Objekt zusammenzufassen und nach außen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich manipulieren können.

=> mehr hier: http://de.wikipedia.org/wiki/Objektorie ... rammierung
Das ganze lässt sich nicht mal schnell eben erklären. Es gibt eigentlich massiv Literatur dazu, da sollte sich im Netz was finden lassen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 23, 2012 08:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Coolcat hat geschrieben:
Zitat:
"C und Pointer" oder "C++ und Objekte" oder "beides"? Was braucht man? Wozu genau?

Also C++ ist eine Erweiterung von C die es dir erlaubt Objekt-Orientiert zu programmieren.
Wikipedia hat geschrieben:
Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee dabei ist, Daten und Funktionen, die auf diese Daten angewandt werden können, möglichst eng in einem sogenannten Objekt zusammenzufassen und nach außen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich manipulieren können.

=> mehr hier: http://de.wikipedia.org/wiki/Objektorie ... rammierung
Das ganze lässt sich nicht mal schnell eben erklären. Es gibt eigentlich massiv Literatur dazu, da sollte sich im Netz was finden lassen.


Ergänzend dazu noch:
Du kannst alle 3, nennen wirs mal GCC Sprachen, ohne größere Probleme untereinander mischen (vorausgesetzt dein Compiler versteht sie). In vielen Fällen ist dies sogar unbedingt notwendig, und bietet sogar eine ganze Reihe von Voteilen. Problem ist allerdings das es für ObjC keine/kaum Literatur zur Sprache gibt, sondern immer nur zu den
Frameworks.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 23, 2012 09:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Sehr lange Zeit war der c++ compiler nur ein übersetzer in c, denn alle c++ codes können in c wieder gegeben werden. C++ erspart nur tonnenweise code schreiben, wenn man objekt orientiert in c programmieren will. Die heutigen c++ compiler sind eigenständige compiler, die wesentlich effizienter binary code generieren können, als es erst nach c und dann von c nach binary code zu kompilieren.

Im Info Studium hat man in der regel 1-3 semester, in denen man in die Themen schnuppert und parallel noch kurse für oop, software design, betriebssystem spezifische entwicklung.
Danach hat man ein gronen überblick aber programmieren kann man noch nicht ... .

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 23, 2012 11:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
yunharla hat geschrieben:
Du kannst alle 3, nennen wirs mal GCC Sprachen
Meinst du Java, Fortran und C++? Oder Ada, Go und c? Oder Obj-C++, Obj-C und Lto? Diese neun Sprachen frisst mein gcc (= gnu compiler collection) nämlich ;)

_________________
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: Re: Problem mit Schleifen in OpenGL
BeitragVerfasst: Mi Mai 23, 2012 12:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
<.< C w/e-Sprachen dann halt, btw gehens mal lieber vom gemeinsamen Nenner aus dann sinds nur 5 (Java hat sich auch verabschiedet):P

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 6 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.009s | 15 Queries | GZIP : On ]