JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Normal Vektoren

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 24.01.2007, 20:05    Titel: Normal Vektoren Antworten mit Zitat

Ich möchte nun in mein Spiel Licht einbauen.
Hab eine Licht Qulle deviniert und Material vergeben genau wie im Buch.
So wenn ich nun diesen einfachen Würfel da hinen stelle funst das auch ganz gut.
So nun habe ich einige Elmente die ich aus einer .x datei ausgelesse werden und da ist dieser normal vektor net angegeben wie kann ich mir den berechnen oder bestimmen lassen.
Im Buch steht dazu nur: S 422

Im Falle der Vorderseite des Würfels wird der Normalvektor auf 0.0f, 0.0f, -1.0f) gesetzt so und wie so und weshalb und wie man das macht ist egal.

Könnte mir bitte jemand erklären wie sich dieser Wert zusammen setzt und was er bestimmt und wie man ihn bestimmt wäre schon wenn man das an einem Beispiel erklären würde thx

ps hab nach Licht gesucht und nix darüber gefunden
wenn es eine erklärung schon gibt bitte um Link
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 24.01.2007, 20:09    Titel: Antworten mit Zitat

Dein Schreistil ist grausam, ohne Punkt und Komma.^^

Der Normalvektor ist wichtig zur Lichtberechnung, da er quasi die Ausrichtung der Fläche beschreibt.
Theoretisch kannste das net berechnen, weil die vorgegeben sein müssen, aber manchmal kann man es doch.
Von einem Dreieck kann man mit dem Vektorprodukt einen Normalvektor berechnen.
Zwischen mehreren Dreiecken kann man das dann noch interpolieren, damit die Beleuchtung runder aussiehst.
Aber wenn du das selber berechnen möchtest, müsstest du am besten schon n bissle tiefer in die Materie einsteigen.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dr. Best
Senior JLI'ler


Alter: 34
Anmeldedatum: 17.06.2004
Beiträge: 269
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.01.2007, 20:37    Titel: Antworten mit Zitat

Da du von *.x files redest nehm ich mal an, dass du die D3DXMesh Klasse verwendest. In diesem Fall kannst du die Funktion D3DXComputeNormals von D3DX verwenden. Hier ist auch eine Einführung in die Verwendung von Lichtquellen in Direct3D. Könnte evtl. ganz hilfreich für dich sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 24.01.2007, 20:47    Titel: Antworten mit Zitat

es heißt Normalenvektor soweit ich weißWink

http://de.wikipedia.org/wiki/Normalenvektor

Ein Normalenvektor einer Ebene ist ein Vektor, der senkrecht auf dieser Ebene steht.
Die vordere Seite des Würfels stellt quasi eine Ebene dar. Die Seiten des Würfels sind parallel zu den Koordinatenachsen, d.h. die Vorderseite ist nur auf x- und y-Achsen beschränkt. Jetzt brauchst du einen Vektor der zu dieser Vorderseite senkrecht steht, dann ist es logisch, dass es ein Vektor sein wird, der entweder auf einer oder der anderen Seite der Fläche steht, also entweder in negative oder positive z-Richtung zeigt.
Es muss also ein Vektor (0,0, + - beliebiger_wert _sein) sein.

Nach DX-Definition brauchst den negativen Wert. Und wieso unbedingt 1? Weil für viele Berechnungen es einfach vorteilhaft ist, wenn ein Normalenvektor die Länge 1 hat. Ein Vektor mit der Länge 1 wird als Einheitsvektor bezeichnet. Um einen Einheitsvektor zu bekommen, muss man den (Normalen)Vektor durch seine Länge teilen, wobei die Länge nach Pythagoras berechnet wird: Länge = Wurzel(x^2 + y^2 + z^2)

Und so kommt man dann auf n0 = (0, 0, -1 ) Wink

MfG Maxim
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 25.01.2007, 17:06    Titel: Antworten mit Zitat

ok also der NormalenVektor gibt also an wohin das Dreieck gugt dann kann man das doch berechnen in dem ich mir anguge wie rum die punkte bennant sind aber das kann ich doch net mit 1 oder -1 angeben.
Gibt es eine Internet Seite wo das erklärt ist mit Bildern am besten ich glaube ich bin ein bischen schwer von Begriff

zu Maxim bei meinem Beispiel (dem ersten Viereck aus dem buch) sind doch alle Kanten Parallel zu den Ursprungs diagonallen.

zu DR Best ich benutze zwar x File lade diese aber einseln aus. Also Objekt für Objekt. Ich finde dies besser da ich so auf meine Spiel internen Sachen besser eingehen kann

Hoffentlich kennt jemand eine gute Internet Seite zu dem Thema
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 25.01.2007, 17:38    Titel: Antworten mit Zitat

Faller hat Folgendes geschrieben:

ok also der NormalenVektor gibt also an wohin das Dreieck gugt dann kann man das doch berechnen in dem ich mir anguge wie rum die punkte bennant sind aber das kann ich doch net mit 1 oder -1 angeben.


also, natürlich kann man es berechnen. aber du brauchst den normalenvektor für die beleuchtung. willst du in jedem frame, den normalenvektor neu berechnen?

1 und-1 sind nur spezialfälle

Faller hat Folgendes geschrieben:


zu Maxim bei meinem Beispiel (dem ersten Viereck aus dem buch) sind doch alle Kanten Parallel zu den Ursprungs diagonallen.



??? hab ich was anderes geschrieben? Ich verstehe dich nicht, was dein Problem ist?
Wenn du eine Rechnung brauchst, kann ich dir das gerne vorrechnen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 25.01.2007, 19:21    Titel: Antworten mit Zitat

ich habe eine Karte (ein raum den ich aus menem eigen editor zusammen geschustert habe) und nun will ich da Licht rein bauen also das man den spieler als Schatten sieht.
Und ich will mir nun berechnen wie dieser Normalvektor aussieht.
Und dafür möchte ich ihn verstehen ok
Hier ist mal ein Dreick von dem möchte ich mal erklärt bekommen wie ich auf den Normalenvektor komme

immer x,y,z
punkt a ( -1.0f, -1.0f, 0.0f,)
Punkt b ( 0.0f, 1.0f, 0.0f)
Punkt c ( 1.0f, -1.0f, 0.0f)

Maxim ich wäre dir sehr dankbar wenn du es mir an diesem Beispiel mal erklärst wie ich auf den Normalenvektor komme
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 25.01.2007, 19:53    Titel: Antworten mit Zitat

Hier gibts 2 Artikel dazu:

http://gamedev.de/index.php?name=News&file=article&sid=31
http://www.gamedev.de/modules.php?op=modload&name=News&file=article&sid=173&mode=flat&order=0&thold=-1
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 25.01.2007, 20:39    Titel: Antworten mit Zitat

ok habs thx
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum