Tatsächliche Sichtbarkeit bei Culling und Sprite

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

PacMani

Betreff: Tatsächliche Sichtbarkeit bei Culling und Sprite

BeitragDi, Feb 15, 2011 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

wie würdet ihr es machen?

Ich habe hier eine Sprite, die als Grafitti auf eine Wand gepappt werden soll. Dazu muss die Sprite also erstmal ein wenig von der Wand abstehen, damit kein Z-Fighting passiert. Nun ist aber nicht bekannt, in welche Richtung die Sprite von der Wand wegbewegt werden soll. Nach vorne oder nach hinten? Die einzige gestellte Bedingung ist, dass sie in der Kamera sichtbar ist.

Zweites Problem: Da Wände nun aber auch schräg sind, sind die Sprites entsprechend gedreht. Culling möchte ich eingeschaltet lassen. Deswegen ist die Sprite, auch wenn sie aus Kamerasicht vor der Wand liegt, möglicherweise nicht sichtbar, da sie weggecullt wird.

Momentan wird die Wand als EntityPickModePolygon und die Sprite (dummerweise) mit der Standardbox von EntityPickModeBox gepickt.

Ideen? Danke im Voraus Wink

Xeres

Moderator

BeitragDi, Feb 15, 2011 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie soll das Graffiti da platziert werden - vom Spieler/Kamera?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PacMani

BeitragDi, Feb 15, 2011 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Grafitti wird im Editor via Maus platziert. Man bewegt es (ähnlich wie ein Bild bei Sims) auf die Wand, es nimmt den passenden Winkel der Wand an - und soll dann so verschoben / wegen Culling um 180° gedreht werden, dass es sichtbar ist und nicht (aus der Sicht der Kamera) hinter der Wand oder falsch gedreht-weggecullt wird...

Das Grafitti (in diesem Falle Kerzen) klebt im Grunde so an der Wand:
user posted image

Es handelt sich also um vorgefertigte Bilder, deswegen kein TexturePaint etc. falls du das jetzt meintest Wink

Xeres

Moderator

BeitragDi, Feb 15, 2011 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
In WhiteWorld hab ich das mit direkter Kollision gelöst, aber das sollte sich mit Picken gleich verhalten...

BlitzBasic: [AUSKLAPPEN]
;* Wand Picken - Vergessen wie ^^
;* An Position Platzieren
PositionEntity(sprite, PickedX(), PickedY(), PickedZ())
;* Von der Wand wegschauen lassen:
AlignToVector(sprite, -PickedNX(), -PickedNY(), -PickedNZ(), 3)
;* ggf. Drehen.
TurnEntity(sprite, 0, 0, drehung)
;* Stück Zurücksetzen um aus der Wand zu schauen:
MoveEntity(sprite, 0,0,-0.1)
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PacMani

BeitragDi, Feb 15, 2011 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, AlignToVector kannte ich noch nicht.
Das ist schonmal nicht schlecht!

Allerdings habe ich ein Problem, wenn ich es auf die "Rückseite" einer Wand platziere:
Dort wird das Decal an der Unterkante der Wand horizontal "gespiegelt". Ich sehe mir das gleich mal an, außer du wüsstest da sofort eine Lösung. Die Wand hat dort übrigens auch gespiegelte UV-Koordinaten, wie man hier erkennen kann. Ich habe bei der Erstellung einfach die Dreiecke nochmal im anderen Uhrzeigersinn hinzugefügt, damit die Wand von beiden Seiten sichtbar und kollisionsfähig ist.
Rechts ist es ok, links der besagte Fehler (es sollte da erscheinen, wo der Cursor ist).
user posted image

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group