Schnittstellen eines Vierecks mit einem Rastergitter

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

eizdealer

Betreff: Schnittstellen eines Vierecks mit einem Rastergitter

BeitragMi, Jun 02, 2004 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Wie immer wenn ich einen Thread erstelle, hab ich mal wieder ein kniffliges Problem für euch Tüftler Smile

Kurz zur Anwendung: Ich programmiere gerade Decals, die auf ein (höhenveränderbares) Rastergitter (ein Meshterrain) gelegt werden sollen. Hört sich erstmal einfach an, aber wenn man die Rasterpunkte in der Höhe verändert, gerät das Decal schnell unter das Terrain. Um das zu verhindern und das Decal der Terrainkontur anzupassen, müssen alle Rastereckpunkte des Terrains im Decal ein Vertex darstellen, der die restlichen Tris des Decals zerschneidet.

Das konkrete Problem, an dem ich jetzt sitze, ist die Bestimmung dieser Schnittpunkte.
Es gibt 4 Arten von Schnittpunkten:
a) Die Eckpunkte (die sind einfach)
b) Die Gitternetzpunkte des Terrains innerhalb des Decals (sollte einigermaßen einfach gehen, hinbekommen hab ich's trotzdem nicht)
c) Die Schnittpunkte der äußeren Kanten des Decals mit den Rasterlinien (schon deutlich schwieriger, da müsste man wohl Geradengleichungen gleichsetzen)
d) Die Schnittpunkte der äußeren Kanten des Decals mit den schrägen Rasterlinien (vergesst das, das ist hyperschwierig und ich habs auch nicht eingezeichnet)

OK, ich wette das hat bis jetzt kein Schwein verstanden, deswegen hab ich PS bemüht:
user posted image

Ihr seht das Raster, das (grüne) Decal und die rot eingezeichneten Schnittpunkte.


Warum ich diesen Thread nicht im 3D Forum erstellt habe? Weil die Problemlösung nix mit 3D zu tun hat!
 

lettorTrepuS

BeitragMi, Jun 02, 2004 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

eizdealer

BeitragMi, Jun 02, 2004 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
An die Methode hatte ich auch shcon gedacht, aber die geht aus einigen Gründen nicht:
- Es sollen nicht nur Rechtecke sein
- Überleg mal, wenn du das Teil drehst, dann sind ja die Vertexpunkte nicht mehr übereinander -> bei unebenem Terrain verschwindet das Teil unter dem Terrain
 

Helloman

BeitragMi, Jun 02, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hoffe ich habs richtig verstanden
nimm einfach das Raster als Textur

Und die Textur-Scale passt du automatisch so an die größe des terrains an

eizdealer

BeitragMi, Jun 02, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, das Raster kann ich leider nicht als Textur nehmen, das soll ein Drahtgittermodell (also Mesh) sein, der nicht beliebig ist...
 

lettorTrepuS

BeitragMi, Jun 02, 2004 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

eizdealer

BeitragMi, Jun 02, 2004 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm ich glaube, ihr habt mich nicht verstanden Sad
Ich will kein schräges Terrain und ich hab auch nichts mit Heightmaps am Hut Razz
Das Gitternetz ist ein Meshterrain, das genauso aufgebaut ist wie in der Zeichnung. Darauf sollen Decals (also praktisch 2dimensionale texturen, die sich allerdings der Kontur anpassen) gelegt werden. Um diese Anpassung zu realisieren, müssen die Schnittpunkte berechnet werden.
Und DIESE Technik beherrscht jedes aktuelle 3D Spiel.
Ein Beispiel dafür wären Einschusslöcher auf einer großen gebogenen Fläche. Die 2dimensionale Einschusslochtextur passt sich der gebogenen Oberfläche an.
 

BIG BUG

BeitragMi, Jun 02, 2004 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht reicht es, wenn du einfach immer eine Plattform dem Raster entsprechend erstellst und die Feinjustierungen/Drehungen der Textur dann über UV machst?
Hängt zwar auch nicht ganz triviale Mathematik dahinter, aber sollte doch einfacher sein.

Hat natürlich den Nachteil, dass bei großen Steigungen das/der/die? Decal auseinandergezerrt wird. Für Schatten ist das zwar super, aber für Einschusslöcher nicht so Smile.
Außerdem müssen die Texturen dann natürlich über einen entsprechend breiten, transparenten Rand verfügen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

eizdealer

BeitragMi, Jun 02, 2004 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch an diese Methode hab ich gedacht, BIG BUG.
Das Problem ist eben nur - wie du schon angesprochen hast - das mit dem Rand und den UV Coords. Ich denke das ist nicht so viel einfacher, aber sehr viel inkompatibler.
Trotzdem danke Smile

eizdealer

BeitragMi, Jun 02, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
So, die ersten beiden Punktarten (Eckpunkte und Gitternetzpunkte) sind jetzt abgehakt. Beim Gitternetzpunkte Code hatte ich einmal Chek anstatt Check geschrieben, das war der Fehler.
Jetzt mal ein Screen, für alle, die sich das immer noch nicht vorstellen können:

user posted image

Nur eben ohne die Randpunkte, die ich im ersten Post under c) und d) beschrieben habe.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group