Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 08.03.2003, 12:41 Titel: Landschaftsrendering |
|
|
Ich Programmiere mit VC++6 in DirectX9 und habe folgendes Problem:
Wie kann ich meine Daten in die Form bringen das ich mit den Daten Landschaften ähnlich Morrowinds erstellen und rendern kann (ich meine die Texturüberläufe, alles andere geht bei mir)
Danke im Voraus. |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 10.03.2003, 15:09 Titel: |
|
|
Erköär mal welche klassen du für dein Terrain hast und welche Funktion die haben und wie der Rendervorgang von statten geht, ich denke ich kann dir da helfen... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 14.03.2003, 20:06 Titel: |
|
|
Ich habe bis jetzt nur mit einer Struktur gearbeitet. Und die ganzen Aufgaben wurden in einer anderen Routine benutzt. Zum Zeichnen mit der simplen Funktion DrawPrimitive. Die Struktur enthält unter anderen die Anzahl der Vertexe die Vertexe(Normale,Koordinaten und 3 Texturkoordinatensets) dann die Position der Landschaft die benutzten Texturen. Ich will es aber jetzt in Klassen umschreiben und es so machen das geniale Texturvermischungen zu stande kommen. Ich glaube das hat etwas mit Multitexturing zu tun weiss aber nicht wie ich es machen soll und mit Pixelshader will ich für so etwas blödes nicht unbedingt verwenden. |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 15.03.2003, 10:23 Titel: |
|
|
Acha, du hast einen Mega-Vertexbuffer für das gesamte Terrain? Also ich denke das du das mit den Texturen per Texturblending realisieren kannst.
Du machst z.B. 2 Erdschichten: Eine normale Grasebene und eine Weit oben fürs Gebirge. Jede dieser Schichten hat nun min. 2 Texturen eine "Normale" Textur und eine Steigungs textur. Wenn du jetzt gucken willst, welche Textur ein Triangle hat, dann musst du kucken in welche Erdschicht es aufgrund seiner Höhe fällt, und musst dann über dessen Steigung einen transparent wert errechnen, mit dem du dann die Steigungstextur auf die Normale Textur blendest. je höher die Steigung, desto höher der Transparent wert. Du müsstest dann pro Transparenzwert und Erdschicht einen Indexbuffer der Triangles machen, denke ich.
Das sieht aber unter Umständen ein bissl beschissen aus.
Du könntest auch einen Anderen Weg nehmen:
Du hast pro Erdschicht mehrere Texturen:
- Normale Textur
- Steigungs Textur
- Übergang Steigung - Normal
- Übergang Normal - Steigung
Dann natürlich noch eine für den Übergang von Schicht 1 zu 2.
Du musst dann nur gucken, in welcher Schicht das Dreieck liegt, und welchen Steigungswert das Dreieck hat. Ab einem Bestimmten schwellenwert hat es dann entweder die normale- oder die Steigungs- oder eine der Übergangstexturen. Dann musst du natürlich wieder Indexbuffer anlegen...
Hoffe du hasst einigermaßen verstanden was ich gemeint hab und hoff auch das es dir weitergeholfen hat |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.03.2003, 15:44 Titel: |
|
|
Verstanden habe ich das schon aber ich glaube das ich da probleme mit dem Speicher bekommen könnte (der Heap war bei mir bei grossen Landschaften schon öfters voll).
Geht das auch mit nur einer einzigen Erdschicht ? 2 wären aufgrund von speicherproblemen schwierig zu realisieren. Oder kennst du eine andere Möglichkeit speicher bereit zu stellen (momentan nutze ich für die Terrainstrukturen den malloc Befehl).
Trotzdem danke werd ich mal probieren wenn ich mal wieder Zeit habe. |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 15.03.2003, 17:42 Titel: |
|
|
Du wirst doch nicht deine ganze Landschaft im Speicher haben??? Also das würd ich auf keinen Fall so machen. Ich würd immer nur nen Teil der Landschaft in dem Speicher laden... überleg dir das mal |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.03.2003, 21:22 Titel: |
|
|
Es ist ja auch eigentlich nur ein kleiner Ausschnitt. Es kommt eben nur drauf an wie gross die Landschaft ist. Ich habe die grösse schon erträglich verringert weil ich sonst selbst den kleinsten maulwurfshügel angezeigt hätte. |
|
Nach oben |
|
|
kaepteniglo Mini JLI'ler
Anmeldedatum: 17.03.2003 Beiträge: 1
Medaillen: Keine
|
Verfasst am: 19.03.2003, 09:40 Titel: |
|
|
Er vergaß zu sagen das er Texturen überall anzeigen und vermischen möchte zum Beispiel als Sand, Gras oder Strassen und nicht nur um die Höhenstufen wie Berge und Flachland vermischen zu lassen. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.03.2003, 17:55 Titel: |
|
|
Genau so meine ich das. |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 24.03.2003, 19:15 Titel: |
|
|
Also es geht um das Rendern EINES Vertexbuffers mit MEHREREN Texturen??? Für jede Textur nen Indexbuffer. dann durch die Texturen loopen, Textur i setzen, den Vertexbuffer mit dem Indexbuffer i rendern... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 28.03.2003, 17:58 Titel: |
|
|
Ich hab die Lösung schon gefunden und es ging auch ohne eine loop sondern mit einem TextureStatement der den Alphawert des Vertexes ausnutzt. Sieht nun schon ziemlich geil aus bei 50*50 Vertexpunkten. Nach dem Optimieren hatte ich sogar eine unglaubliche Leistungssteigerung von 500%. Mit deiner Methode beim loopen (sowas ähnliches hab ich auch mal versucht) hatte ich gerade mal 11 FPS (keine gute GraKa im Laptop).
Kann ja mal bei gelegenheit ein Screenshot zeigen.
Nun will ich der Landschaft einen Vertexbuffer für Gras verpassen, mal sehen was wird. |
|
Nach oben |
|
|
|