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

Aktuelle Zeit: Do Jul 10, 2025 08:15

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Silhouetten
BeitragVerfasst: Sa Nov 25, 2006 09:59 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hi, in dem Artikel im Wiki steht folgendes:
Zitat:
Und so geht man vor:

1. Berechnen der Normalen für die Flächen F1 und F2. -> Normalen N1 und N2.
2. Berechnen des Blickvektors V (Betrachterpos - Blickpunkt).
3. Berechnen des Winkels zwischen N1 und V. -> Winkel W1.
4. Berechnen des Winkels zwischen N2 und V. -> Winkel W2.

Wenn nun einer der beiden Winkel W1 oder W2 > 90° und der andere Winkel <= 90° ist, dann ist die Kante zwischen den Flächen F1 und F2 Teil der Silhouette des Körpers.


Bei 2. steht was von Blickpunkt, ist das der Schwerpunkt des Objektes ? der mittepunkt des Polygons ? oder was ist das ? bzw ist der blickpunkt ja doch eigentlich festgelegt durch die kamera rotation, die müsste doch einbezogen werden oder nicht ?

€: achnee das ist wurst ;)


welche flächen müssen berechnet werden, wie geht man am besten durch die einzelnen flächen um möglichst schnell fertig zu werden ?


mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 25, 2006 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Man kann auch für jede Fläche statt nur der Normalen die Ebene berechnen (vorher).

Dann geht man alle Ecken durch und falls die Kameraposition vor der einen Fläche und hinter der anderen ist, gehört diese Ecke zur Silhouette. Eine Ecke muß daher die Ebenen der beiden benachbarten Flächen abspeichern(oder Verweise darauf).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 25, 2006 12:07 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hm verstehe ich noch nicht so ganz, am ende brauche ich ja die eckpunkte (die punkte der silhoutte) also gehe ich alle polygone des objektes durch und prüfe was genau ? ob die normalen abgewandt sind ? dann wären die objekte nicht sichtbar oder ? wenn aber eine fläche sichtbar ist und die andere nicht, dann ist es ein teil der silhouette, aber welche punkte sind davon betroffen ?

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 25, 2006 12:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die entsprechende Struktur muss man sich am anfang generieren. Also z.B.

Edge = record
v0,v1:Vector;
p0,p1 :Plane;
end;

Code:
  1. for i:=0 to Length(Edges)-1 do
  2. if (Plane_Dist(p0,Kamera) * Plane_Dist(p1,Kamera) <0)
  3. begin
  4.   glVertex3f(v0);
  5.   glVertex3f(v1);
  6. end;


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


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 ]