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

Aktuelle Zeit: Sa Jul 19, 2025 02:24

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Aug 02, 2005 16:00 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Hallo,
um die Geschwindigkeit beim Schattenwurf ein bisschen zu optimieren möchte ich bei jedem schattenwerfenden Objekt überprüfen, ob zPass-Schatten genügen oder zFail-Schatten benutzt werden müssen. Dazu will ich überprüfen, ob sich die Kamera im Schattenvolumen befinden könnte, und zwar wenn sich die Kameraposition in dem Zylinder befindet, der sich aus dem Radius der Boundingsphere ergibt und von der Sonne (unendlich entferntes Licht, deshalb reicht ein Lichtvektor) wegzeigt. (Siehe Skizze). Die Höhe des Zylinders spielt dabei erstmal keine Rolle.
Nun fehlt mir leider die Idee, wie ich das ins Programm übertragen könnte :(

Danke für die Antworten.

BTW: Wofür ist das dritte Kästchen unter dem Antwortsfeld?


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 02, 2005 17:43 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du musst eine senkrechte von der Kamera auf den Vektor berechnen und die länge dieser Strecke mit dem Radius des Cylinders vergleichen.
Dabei kannst du den Vektor des Cylinders als Normalenvektor einer Ebene annehmen in der die besagte Strecke liegen muss.

Aus dem Stehgreif kann ich dir aber auch keine Formeln sagen. Ich würde dir raten dein Tafelwerk und das CompGeo Script (Links->General) mal anzugucken. Vielleicht hilft dir das weiter...

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 02, 2005 18:04 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
das dürfte sich relativ einfach über Vektorgeometrie lösen lassen.
Du musst dafür lediglich den Abstand von der Kameraposition zur Geraden die aus dem Mittelpunkt der Boundingsphere und dem Lichtvektor gebildet wird errechnen und mit dem radius der sphere vergleichen.
Für den Abstand Punkt grade gibt es mehrere Formeln, eine möglichkeit ist
Code:
  1. d=sqrt(sqr(x0-P)-sqr((x0-p)*a/|a|))

wobei x0 der aufpunkt der graden (mittelpunkt der Sphere in deinem fall), a der Richtungsvektor der geraden (bei dir Lichtvektor) und P der Punkt von dem man den Abstand wissen will (also Kameraposition in deinem fall) ist.
Die Formel sollte so stimmen, kann aber keine Garantie gebn, is schon ne weile her, das ich mich damit beschäftigt hab
Falls diewieder erwarten nicht klappt kannst du es sonst noch mit der versuchen:
Code:
  1. d=sin(arccos((|a*(x0-P)/(|a|*|x0|)|))*|x0|


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 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.014s | 16 Queries | GZIP : On ]