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

Aktuelle Zeit: Di Jul 15, 2025 21:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 14:06 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
Ja mit das mit Licht und Schatten, die sind bei Computergrafik 2 verschiedene Kaffees (bei Lightmaps kann man's in einen schütten). 8 ist das totale Maximum, ältere Hardware hat nur 4 oder 2... oder 0... Aber ältere/uralte Hardware hat keinen Stencil Buffer, keine Shader, keinen Windowmode, blablabla... Wenn du die Normalen für jeden Vertex berechnest (beim Würfel oder eckigen Objekten nicht) dann wird eine bisschen was aus dem GL-Light, aber nicht viel. Ääääh, ne peinliche Frage: werden die Normalen mittransformiert? :oops:

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 19:56 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
In der OpenGL Spezifikation ist ein Minimum von 8 Lichtquellen angegeben - natürlich hat man keine Garantie, dass die auch alle hardwarebeschleunigt sind (auch moderne Karten dürften bei mehr als vier Lichtquellen in die Knie gehen).
Das ist aber immer noch besser, als eine echte dynamische Beleuchtung über eigene Shader - ohne auf diverse Tricks (Lightmaps, 3D-Texturen) zurückzugreifen, hat man bei Per Pixel Beleuchtung meistens eine einzige Lichtquelle, bei zwei Lichtquellen geht die Geschwindigkeit schon arg runter, mehr als zwei (eventuell drei) sind bei gängiger Hardware aufgrund von Shaderbegrenzungen sozusagen nicht möglich (zumindest nicht brauchbar).
Selbstverständlich schaut aber PPL mit der Modellierung kleiner und kleinster Strukturen (die mit Tricks sogar selbst "Schatten" werfen können) viel besser aus, als simples Vertexlighting - nachdem die Erstellung von diversen Bump- und Normalmaps durchaus aufwändig ist (wenn auch zu einem gewissen Grad automatisierbar) halte ich im semiprofessionellen Bereich, bei dem es eher auf Fertigstellung eines Projektes, als auf die Verwendung der neuesten und anspruchsvollsten 3D-Techniken ankommt (Leute wie SoS, die eher an der Materie an sich interessiert sind, nehme ich hier mal aus :wink: ) den Einsatz von OpenGL Licht durchaus für gerechtfertigt.

[edit]
ja, die Normalen werden gesondert mittransformiert
[/edit]

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 20:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Man kann selbst auf einer GF3 drei PerPixel Lichter in einem Renderpass zeichnen. Das ist dann natürlich ohne Bumpmapping und ohne Schatten aber immer noch besser als das Vertex Licht.
Auf einer GF4 sind ca 3 Lichter mit Diffuse+Specular Bumpmapping und Stencil Schatten spielbar. Das sind dann zwar 2-3 Renderpass pro Licht aber durchaus akzeptabel.
Bei der Radeon 9800 spielt es kaum eine Rolle wieviele Pixel verdeckt sind und Stellen im Schatten werden sogar schneller gezeichnet. Man kann also beim gleichen Lichtmodel bleiben und eine hohe Geschwindigkeit erreichen oder man investiert die zusätzliche Leistung in noch bessere Shader.

-> Das simpelste dynamische Licht läßt sich überall anzeigen und das normale Bumpmapping lastet moderne Karten schon gar nicht mehr aus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 20:40 
Offline
DGL Member

Registriert: Do Mai 13, 2004 16:36
Beiträge: 116
Wohnort: Deutsch-Wagram (Österreich)
Das größte Problem mit dem Licht ist aber, die ganzen Lichter zusammenzufügen. PPL ist heute aber schon problemlos möglich.
Das beste Beispiel ist Pandoras Legacy (Zerbst Kompendium, DX9).
Da ist alles dynamisch und es ruckelt nicht. Ich werde in meinem Projekt, wenn es dann weiter fortgeschritten ist, PPL implementieren (oder versuchen).

_________________
Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 20:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wollte nur eins bei dieser Diskussion nicht unerwähnt lassen : Fast alle die hier geschrieben haben sind Hobbyentwickler, deren Projekte sich im Endeffekt dann an Casual Gamer richten. Diese Zielgruppe hat im Normalfall keine moderne Hardware, und man sollte dann seine Projekte zumindest auch auf Grafikkarten lauffähig machen die 3-4 Generation hinter dem aktuellen Entwicklungsstand liegen.

Ansonsten ist PPL-Licht natürlich die Zukunft (dank der Shader) und mit steigender Shaderperformance werden irgendwann auch dutzende Lichter mit Schatten und Bumpamp möglich (auf aktuellen GF-Karten sind Shader unbegrenzt in der Länge, aber die Performance bei >10 Lichtquellen dürfte nicht toll sein). Aber wie gesagt sollte man seine Entscheidung nicht davon abhängig machen was man selbst will (es sei denn man will explizit für neue Hardware entwickeln, siehe Lars Engine), sondern wie die Zielgruppe aussieht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Man kann ja auch gute Kompromisse eingehen wie z.B. HL2. Da werden Bumpmapping und 3 Lightmaps für die verschiedenen Lichtrichtungen benutzt.
Wenn man sich auf GF3/4 beschränken will ,und diese Karten sind ja mittlerweile schon wirklich alt, könnte man ja z.B. die 4 Texturen folgendermaßen verwenden und bleibt bei einem Renderpass:

1) Bumpmap
2) LightVectormap
3) diffuse Texture
4) Lightmap

Dann hat man für statisches Licht einen Renderpass und das läuft ordentlich schnell auf so gut wie allen Karten und sieht dank Bumpmapping gar nicht mal so schlecht aus. Das geht sogar ohne herstellerabhängige Extensions.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 22:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Es kommt auch wirklich auf die Zielgruppe an - für ein Projekt mit 3D-Gantt Charts, die in Echtzeit aus einer Datenbank erstellt werden, verwende ich sogar nur Flat Shaded Polygone - mit zusätzlichen Linienzügen, um Konturen besser herauszubringen - da wären sogar Texturen zuviel, als das Ganze auf praktisch jeder Grafikkarte in einer halbwegs akzeptablen Geschwindigkeit ablaufen muss (abgesehen davon, dass es hier hauptsächlich um eine einfache und klare Darstellung geht) - sowie darum, dass das Ganze wenig Speicher benötigt und praktisch überall läuft.

Für sowas extra einen Shader schreiben zu müssen - bzw. die Polygonschattierung selbst berechnen zu müssen, wäre recht umständlich.
Abgesehen davon könnte man die Transition zu einem eigenen Lichtmodell sogar halbwegs fließend geschehen lassen, als man die ganzen Lichtvariablen in einem Shaderprogramm ebenfalls abfragen kann. So könnte man sogar wunderbar Mix & Match mit OpenGL Licht und eigenen Berechnungen betreiben, auch wenns wahrscheinlich nicht viel Sinn macht, weil die Ergebnisse doch ziemlich unterschiedlich aussehen dürften.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 04, 2004 22:49 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ich habe Diagramme unter Java zu visualisieren und da nehme ich natürlich auch nur Flat Shading. OpenGL kann nicht vorrausgesetzt werden, Punkte einzeln zu zeichnen kann man unter Java eh vergessen und da geht eben nur die Standard Polygon Funktion mit konstanter Farbe.
Allerdings wäre selbst dort ein schöner Phong Per Pixel Shader schon eine schöne Sache wegen den Lichtreflektionen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 05, 2004 09:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Zitat:
Ich habe Diagramme unter Java zu visualisieren

Dazu möchte ich auf Ken Perlins Homepage verweisen (auch bekannt durch Perlins Noise) - also was der mit Java Applets zusammenbringt, ist wirklich beeindruckend, vor allem wenn man sich vor Augen hält, dass es sich dabei um in Java programmierte Softwarerenderer handelt (manche kann man auch downloaden - ich selbst mache nicht viel mit Java, auch wenn ich einige Erfahrung mit Softwarerenderern habe - aber ich denke du könntest hier einige Leute zum Staunen bringen, wenn du öfters mit Java arbeitest :wink: )
http://mrl.nyu.edu/~perlin/

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 05, 2004 10:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Das zwar nicht wirklich flott aber für Diagramme dürfte es doch ausreichen. Sogar ein ZBuffer ist vorhanden, so daß man auch komplexe Geometrie anzeigen lassen kann. Benutzen darf ich fremden Quellcode nicht, aber zum Nachschauen hilft es bestimmt. Vielleicht bekomme ich dann ja doch noch PPL auf die Diagramme.
Man muß dazu sagen, daß nicht wirklich wichtige Daten angezeigt werden, sondern es eher darum geht ein Diagramm zu zeichnen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]