AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DirectX - Rechteck kippen / an einer Seite strecken
Thema durchsuchen
Ansicht
Themen-Optionen

DirectX - Rechteck kippen / an einer Seite strecken

Ein Thema von XoRiC · begonnen am 16. Mär 2010 · letzter Beitrag vom 17. Mär 2010
 
XoRiC

Registriert seit: 20. Sep 2005
43 Beiträge
 
RAD-Studio 2009 Arc
 
#1

DirectX - Rechteck kippen / an einer Seite strecken

  Alt 16. Mär 2010, 11:21
Hallo,

ich hatte diese Frage schon einmal gestellt, sie jedoch damals falsch formuliert, bzw einen falschen Ansatz gewählt.

Ich programmiere an einem 2D Spiel, bei dem lediglich der Untergrund einen leichten 3D Effekt erhalten soll, indem er die untere Bildkante ein bisschen breiter ist als die obere. Hier (bzw falls Link noch gültig, dann auch nach diesem Absatz ) ist noch einmal eine Skizze, wie ich es mir vorgestellt hatte. Die Sprites, die auf den Boden draufgezeichnet werden, platziere ich dann selbst, sie sollen in ihrer Größe nicht verändert werden. Ich muss dabei nur wissen, um welchen Faktor die obere Bildkante kürzer ist als die untere.

http://img96.imageshack.us/img96/6106/trapez.th.jpg

Meine Idee war zuerst, ein Vertex zu benutzen, bei dem ich die oberen beiden Eckpunkte ein Stück in die Bildschirmmitte verschiebe und die beiden unteren bündig an den Bildschirmrand setze. Der Boden, bzw die Textur die darauf gezeichnet wird, soll dann gestreckt werden. Allerdings funktioniert das so nicht, in der Mitte entsteht beim Zeichnen ein Knick. Der Übergang vom oberen rechten Dreieck zum unteren linken ist nicht fließend. Jetzt weiß ich garnicht, ob sich das so überhaupt realisieren lässt. Hier noch eine Skizze, wie es bisher aussieht (auch im Anhang).

http://img6.imageshack.us/img6/3595/resultbh.th.jpg

Eine Alternative, die mir schon in meinem alten Thread vorgeschlagen wurde, wäre, die Boden-Textur zunächst auf ein Rechteck zu zeichnen und dieses dann ein Stück weit nach hinten zu kippen, also tatsächlich 3D zu zeichnen. Hier hab ich ein paar Probleme und weiß nicht, ob ich das so einfach machen kann. Denn:
- Ich möchte noch 2D Sprites oben drüber zeichnen
- Mein Untergrund besteht aus mehreren Schichten (in den oberen Schichten sind halbtransparente Stellen, durch die man die Schicht darunter sehen soll)
- Ich benötige den Faktor, um den die obere Bildkante schmaler ist als die untere, um die Sprites oben drauf richtig zu platzieren

Meine Frage ist jetzt: Kennt jemand eine Möglichkeit, diesen Kipp-Effekt mit der oberen Herangehensweise (durch ein Vertex in Trapezform) zu realisieren? Falls das so nicht geht und die zuletzt geschilderte Möglichkeit (Kippen eines Rechtecks) funktionieren sollte - hat jemand ein paar Links oder Codeausschnitte, wie ich das realisieren kann?
Ich bin auch für jeden weiteren Vorschlag sehr dankbar.

/Edit: ich arbeite mit DirectX9

Vielen Dank für jegliche Hilfe!
Gruß Xoric
Angehängte Grafiken
Dateityp: jpg result_109.jpg (313,1 KB, 5x aufgerufen)
"Gods are fragile things; they may be killed by a whiff of science or a dose of common sense."
- Chapman Cohen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz