Guten Morgen!
Ich denke, wenn ich schon mal schreibe, kann ich ja mehrere fragen stellen.
1. Ich hab mit dyn. Lichtern rumgespielt und bei ner Kugel funktioniert das auch alles(Mat-eigenschaften/Light-eigenschaften). Allerdings belichtet der bei zwei quad-Flächen, die senkrecht zueinander stehen(verschiedene Winkel zur Lichtquelle), gleich! Vielleicht kennt diesen Fehler ja jemand.
2. Gibts irgendwie ne bessere Methode des Belichtens als dynamische Lichter. Also wenn ich das Prinzip der Lightmaps richtig verstanden hab, blendet man da nur ne Licht-Textur über die Raumtextur. Da müsste ich für überall Licht-Texturen erstellen. Gibts ne Möglichkeit das so zu machen, wie die kommerzielen Programme(bsp: UT)?
3. Wie funktioniert Kollisionserkennung? Also nur, damit der Spieler bei einer Bewegung nicht durch die Wand oder den Boden kann. Gibts da gute Tuts, die ihr mir empfehlen könntet?
4. Hat jemand eine Ahnung, wie man ein Programm realisieren kann, das die Maps aus einer Datei lädt? Also ich bin mit diesem Programm(1000x umgeschrieben) jetzt soweit, dass es Körper/Flächen, Texturadressen aus einer Datei liest und anfangs läd, dann beim Rendern immer zeichnet. Die Bewegung durch die Welt funktioniert gut und der Mouseview sieht klasse aus. Doch ich hab das Gefühl, dass ich das falsch angegangen bin, also mit den falschen Techniken. Ich hab im Programm nur Prozeduren und Arrays/Variablen.
Also wenn jemand weiss, wie's besser geht, kann er es mir schreiben. Ein Link wäre auch cool.
So, ich hoffe ich nerv euch damit nicht allzusehr! Ich bedanke mich schon mal im Vorraus!
Registriert: Sa Nov 02, 2002 18:06 Beiträge: 299 Wohnort: Dresden
zu 1. Könntest du vielleicht einen Screenshot hochladen. Vielleicht stimmt auch was nicht mit den Normalen oder die Quads sind sehr nah an der Lichtquelle.
2. Lightmaps sind O.K. Die sind zwar nicht dynamisch, aber du kannst mehr als 8 verwenden. Vor einiger Zeit hat SoS mal ein Lightmap-Projekt auf der Basis eines guten Tutorials gemacht. Verwende am besten mal die Suche.
3. DIe einfachste Variante ist Linie-Dreieck Kollision (Sample auf sulaco.co.za). Die ist aber für "echte" Spiele viel zu langsam. Eine gute Methode für Kollsionsabfragen sind BSP-Trees (Tutorial auf zfx.info). BSP hat auch noch andere Vorteile (Z-Sort, entfernen nicht sichtbarer Dreiecke...)
4. Kommt auf das Format an. Eigenrlich musst du deine Level-Daten ja blos in einen Array laden. Doch wenn alles ein bisschen komplexer wird, musst du auch die Art, wie du deine Daten speicherst ändern (z.B. BSP oder Octree)
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Danke für die Antwort, HomerS!
Ich werde noch ein bisschen dranrumschrauben und mal nach den Tutorials und dem Lightmapprojekt suchen.
Zu 4:
Ich hab das 3d-prog so aufgebaut, dass praktisch alle Arbeit von einer Unit gemacht wird. Sie muss nur mit dem DC des Formulars und der zuladenden Level-Datei INITialisiert werden. Im OnIdle Event wird dann die Renderprozedur aufgerufen und alle Objekte werden gezeichnet(Displaylisten hab ich leider noch nicht hinbekommen).
Im Ladeprozess werden die Daten mittels TStrings geladen und in Arrays verpackt. Ein stinknormales Quadrat hat aber schon diese Arrays:
Das sind schon verdammt viele Arrays und selbst da kann man rel. wenig einstellen. Was meinst du mit BSP-Baum und Octree? *g* Was bedeutet das überhaupt? Ich würde mal gerne wissen, wie man so eine Engine am besten aufbaut!
Fürn ersten Versuch reichts auch so, wie du's gerade machst (könntest auch einen Array of TQuad machen und TQUad als einen record mit diesen ganzen Werten).
Octrees und BSP sind Optimierungstechniken. Zu Octrees gibt's eine Einführung bei den Tutorials. BSP ist da meiner MEinung nach schon schwieriger. Hier gibt's ein Tut dazu.
Is aber recht happig. Ich würde dir erstmal raten was einfacheres (Napalm Bomer-Tutorial) zu machen.
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Mitglieder in diesem Forum: Google [Bot] und 4 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.