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

Aktuelle Zeit: Di Jul 15, 2025 19:14

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: Sa Mär 12, 2011 18:26 
Offline
DGL Member

Registriert: Mo Feb 14, 2011 09:59
Beiträge: 5
Hi,

ich habe eine Frage bezüglich dieses Paramters bei VBOs. (GL_T2F_N3F_V3F )
Und zwar übergebe ich hier, wenn ich das richtig sehe pro Punkt eine Normale.
Wie macht das Sinn, wo sich Normalen doch eigentlich auf Flächen beziehen sollten?

Mfg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: Sa Mär 12, 2011 19:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Mathematisch richtig. Aber bei OpenGL nutzt man die zusätzlichen Informationen um über die Fläche hinweg ggf. über die drei Normalen zu interpolieren. Damit kann man bei der Beleuchtung einen Rundungseffekt erzeugen (Smooth Shading).

greetings

_________________
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: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: Sa Mär 12, 2011 19:59 
Offline
DGL Member

Registriert: Mo Feb 14, 2011 09:59
Beiträge: 5
Birgt das dann nicht die Gefahr das folgendes passiert:
(Ich habe versucht es in einem vereinfachenden Bildchen darzustellen.)
Dateianhang:
Vektorenproblem.jpg


Die drei schwarzen Striche stellen jeweils eine Fläche dar (Seitenansicht).
Der oberste schwarze Strich hat zwei im Bild sichtbare Aufspannpunkte.
Von diesen gehen Normalenvektoren (in rot) aus.
Die Normalenvektoren würden allerdings nur zu den beiden Flächen links und rechts unten passen,
denn wenn man aus ihnen eine Normale für die Fläche oben interpoliert erhält man die blaue Normale,
welche in die falsche Richtung zeigt.


Edit: Oder rechnet Opengl zusätlich noch die richtige Normale der obigen Fläche aus und interpoliert linke rote Normale -> echte Normale -> rechte rote Normale?


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: Sa Mär 12, 2011 22:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wofür brauchst du denn die echte Normale der Fläche? Entweder du machst Smooth Shading, dann interpolierst du über die Normalen aller Punkte jeweils, oder du machst Flat Shading, dann wird die Normale des ersten Punktes genommen. Wenn du keinen Indexpuffer benutzt teilen sich die Dreiecke ja die Punkte nicht. Ansonsten musst du da natürlich drauf achten.

greetings

_________________
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: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: So Mär 13, 2011 10:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Es werden immer die Normalen der drei Vertices eines Dreiecks interpoliert. Wie du diese Normale setzt bleibt dir überlassen. Üblicherweise setzt man die Normale auf den normalisierten Durchschnitt der Normalen aller am Vertex beteiligten Dreiecke. Dies ergibt den besagten "Smooth Shading"-Effekt. Wenn man möchte kann man die Normalen der Dreiecke noch gewichten, etwa Anhand des aufgespannten Winkels des jeweiligen Dreiecks oder auch dem Flächeninhalt der Dreiecke.

Der Winkel in deinem Beispiel ist sehr spitz. Hier würde man normalerweise keinen "Smooth Shading"-Effekt wollen. Dies kann man verhindern indem man entsprechende Vertices einfach doppelt aber mit unterschiedlichen Normalen in das Mesh aufnimmt.

=> Man kann also gezielt für jeden Vertex festlegen ob man Smooth- oder Flah-Shading möchte.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: GL_T2F_N3F_V3F zu viele Normalen
BeitragVerfasst: So Mär 13, 2011 22:42 
Offline
DGL Member

Registriert: Mo Feb 14, 2011 09:59
Beiträge: 5
Danke für die Erläuterung.
(Ist mir nun klar.)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.007s | 14 Queries | GZIP : On ]