Effekte (Zauber, feuer etc.) - Schatten

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

alliswrong

Betreff: Effekte (Zauber, feuer etc.) - Schatten

BeitragMi, Jul 22, 2009 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, habe schon sehr viel hier im Forum gelernt und viel gelesen. Allerdings brennt in mir schon lange eine frage im herzen die ich nicht beantwortet bekommen habe bzw. wozu ich nichts finde. Undzwar:

Nehmen wir an ich erstelle in photoshop einen "ball" mit Schatten. Die hintergrundfarbe ist rosa (255,0,255) um diese anschließend in B2D zu maskieren. Der schatten ist schwarz. Allerdings nimmt der schatten die "rosafarbe" an, d.H. es sieht scheiße aus. Wie kriege ich also eine art schatten hin der auch auf verschiedenen untergründen transparent erscheint? Muss ich das zeichentechnisch lösen oder irgendwie realtime berechnen?

Meine nächste frage hat ebenfalls damit zutun. Nehmen wir an ein magier feuert einen eisstrahl oder feuerstrahl weg. dieser feuerstrahl/eisstrahl soll natürlich schön aussehen und teilweise auch transparent sein. Weiterhin soll dieser in "dunklen" levels auch "leuchten" - kennt ihr bestimmt von diabolo, da leuchten zauber auch immer. Wie macht man sowas? Wie erstellt man "leuchtende Zauber, Fakeln, Feuer, Portale etc."?

Das ist garnicht mal so einfach sowas zu finden. Mir würden eventuell auch schon bestimmte suchbegriffe reichen, gerade diese fehlen mir.

Danke euch allen. Ihr seid die besten!

Xeres

Moderator

BeitragMi, Jul 22, 2009 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Um die Vermischung der Hintergrundfarbe mit der Maskfarbe zu vermeiden, gibt es 2 Punkte zu beachten:
1. Nur Verlustfreie Bilddateien benutzen (.bmp, noch besser .png)
2. Kein Weichzeichner benutzen, am besten die Maskfarbe auf eine andere Ebene Legen. Vor dem Speichern sichergehen, dass es keine Halbtransparenzen am Rand gibt, die Hintergrund und Objekt mischen.

Wenn möglich ist es immer noch am besten, ganz auf den Quatsch mit einer Maskfarbe zu verzichten, und die 3D mittel zu benutzen um richtige Transparenzen zu benutzen. Das ist auch der einzig sinnvolle weg teiltransparenz in realtime dar zu stellen.
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)
 

alliswrong

BeitragMi, Jul 22, 2009 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
das habe ich mir schon gedacht mit den schatten.
wie sieht es mit dem "leuchten" aus? wie kriegt man das hin?

[edit]
das mit dem 3d würde ich gerne machen, allerdings müsste ich ja dann 3d objekte mit nem 3d tool erstellen. davon habe ich keine ahnung Sad

Nicdel

BeitragMi, Jul 22, 2009 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuchs mal mit Draw3D. Da gehen auch PNGs mir Alpha.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

alliswrong

BeitragMi, Jul 22, 2009 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ok draw3d mit alpha.
dazu mach ich also folgendes:

nen bild erstellen (nehmen wir mal an eine fackel) mit schatten. nun soll die fackel sich auch bewegen und dementsprechend die lichtverhältnisse ändern - das ganze nicht als mesh! kann sowas funktionieren?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 22, 2009 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hatte mal mit verschiedenen Draw3D-Versionen rumgespielt, auf welchen man dann Lichter positionieren konnte und automatsch dann die Umgebung heller wurde. Das ganze habe ich aber auch wieder verworfen da es umständlich war und mit Nachteilen an anderen Stellen in Verbindung gebracht werden konnte. Kurz: Draw3D mit Objekten und angepassten Schlagschatten gehen mit den Vorgaben nicht. Solche speziellen Dinge kann man meiner Meinung nach nur noch Projektspezifisch machen. Was ich dir höhsten anbieten kann sind Objekte die per Bumpmap (nur ein Winkel des Lichtes möglich) beleuchtet werden. Dieses wären dann aber auch kaum langsamer als das DrawImage3D ohne Bumpmap.

Das wäre ein Beispiel für:

user posted image
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

alliswrong

BeitragMi, Jul 22, 2009 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit dem 2d zeugs ist wirklich nichts. war bislang immer hin und her gerissen ob ich in 2d oder in 3d entwickeln soll. 3d hat mich immer nur abgeschreckt wegen der zu erstellenden 3d objekte. werde mich daher erstmal etwas in 3d erstellung einarbeiten und "einfache" objekte für tests benutzen. in 2d ist das ganze scheinbar um ein vielfaches schwerer eine "schein-3d-ansicht" zu erzeuchen (schrägdraufsicht). der vorteil von 3d ist eben die schöne kamerasteuerung. dadurch hat man mehr möglichkeiten.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 22, 2009 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit ''Schein-3D-Ansicht'' meinst du nicht vielleicht eine ISO-Ansicht? Dazu kannst du sicherlich gute Beiträge hier im Forum finden.

Zu dem anderem Problem mit dem leuchten, sollte man zwei Dinge unterscheiden.

1) Das Leuchten von Leuchtmittel wie zum Beispiel Feuer, welches auch eine absolut dunkle Umgebung mit Licht fluttet. Dessen Steigerung sind noch Schatten die auf dem Boden oder gar auf anderen Gegenständen fallen, geht beides nicht mit der Draw3D.

2) Das Scheinen vom grellem Licht weil man davon geblendet wird (Neon-artiges Licht um ein leuchtenden Gegenstand rum). In so einem Fall geht es sehr gut mit teiltransparenten Images über die Draw3D.

Edit1:

Zitat:
...3d hat mich immer nur abgeschreckt wegen der zu erstellenden 3d objekte...

Vielleicht verwechselst du da was. Nur so als Tipp, das Bild mit den beiden Fahrzeigen da oben sind reine 2D-Befehle. Also keine 3D-Objekte die man erst erstellen muß oder ähnliches.
 

alliswrong

BeitragMi, Jul 22, 2009 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hehe, das mit dem auto war mir schon klar.
ich bin nur immer wieder erstaunt wie man das hinkriegt, dass eine spielfigur leuchtbälle, leuchtstrahlen etc. abschießt wie auf den folgenden beiden bildern:

http://cache.gawker.com/assets...wizard.jpg
http://www.frictionlessinsight...bloiiA.jpg

sowas würde ich auch gerne mal machen. bislang habe ich immer früh aufgegeben beim programmieren, weil mir das alles so "langweilig" aussah. möchte nun endlich lernen etwas farbe ins spiel zu bringen.

kriD

BeitragDo, Jul 23, 2009 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
diablo 3: 3D (mit allem möglichem dx 10 schnickschnack)
diablo 2: isoansicht (2D) (würd ich vermuten)

lg kriD
Wenn ich du wäre, wäre ich lieber ich!

beanage.johannes

BeitragDo, Jul 23, 2009 4:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ja diablo 2 ist ISO

schau mal^^ habe mal was getestet, finde es sieht auch ein wenig beleuchtet aus.
user posted image

ist alerding in bmax geschreiben und ich weis nicht ob b3d transparenz in png's unterstüzt.
 

alliswrong

BeitragDo, Jul 23, 2009 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, also das mit der transparenz in bildern habe ich verstanden.
allerdings würde ich dennoch wissen wie man irgendwelche "3d effekte" baut.
diabolo war nur ein beispiel. es können auch ruhig ältere 3d spiele sein wie beispielsweise das gute alte UNREAL.

Schaut euch mal bitte dieses Bild an: http://www.pc-universe.de/img/...real-7.jpg. Wie im Gottes Namen macht man solche Blauen strahlen (übrigens leuchten diese blauen strahlen in einem ganz dunklen raum. das wäre auch interessant zu wissen wie man sowas dann realisiert).

ozzi789

BeitragDo, Jul 23, 2009 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
AmbientLight
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Holzchopf

Meisterpacker

BeitragDo, Jul 23, 2009 9:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Solche blauen Strahlen macht man, indem man:

(im Malprogramm deiner Wahl)
1. einen schwarzen Hintergrund erstellt
2. mit einem blauen weichen Pinsel ungefähr die Form des Strahls nachmalt
3. sehr stark weichzeichnet
4. mit einem weissen pinsel den Strahl selber nochmal drübermalt

(Stell dir einfach die Strahlen aus deinem letzen Post vor, wie sie vor schwarzem Hintergrund aussehen würden Rolling Eyes )

In BlitzBasic lädst du dieses Sprite ganz normal und setzt es dann mit entityblend auf addieren (modus 3)

Jetzt die schlechte Nachricht (für dich Wink ): Das klappt nur in Blitz3D. Müsstest dich halt einarbeiten oder eben die Draw3D zu Hilfe nehmen.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

theotheoderich

BeitragDo, Jul 23, 2009 9:54
Antworten mit Zitat
Benutzer-Profile anzeigen
alliswrong hat Folgendes geschrieben:
Schaut euch mal bitte dieses Bild an: http://www.pc-universe.de/img/...real-7.jpg. Wie im Gottes Namen macht man solche Blauen strahlen (übrigens leuchten diese blauen strahlen in einem ganz dunklen raum. das wäre auch interessant zu wissen wie man sowas dann realisiert).


Die Strahlen sind keine richtigen 3D Modelle im Sinne von Objekten, sondern Sprites oder einfache Quader mit Phototextur drauf.

Ich habe das damals in meinem Panzerspiel für Explosionen und Schüsse etc. auch Sprites verwendet (man darf nur nicht zu viele verwenden, geht schwer auf die Performance).

So sahen die Schüsse und der Qualm aus:
user posted image
user posted image

So sahen die Sprites dafür aus:
user posted image user posted image


Man kann auch problemlos 2D und 3D mischen (wenn man die Reihenfolge beim zeichnen einhält).
In meinem Städtebauspiel ist die Minimap ein 3D Objekt, mit teiltransparenter Textur in einem ansonsten fast kompletten 2D Spiel (Grad der Transparenz lässt sich übrigens anpassen):
user posted image
(man erkennt es z. B. daran, dass die Bäume durchschimmern)
Gruß
TheoTheoderich
--
The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer.
 

alliswrong

BeitragDo, Jul 23, 2009 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
@theotheoderich hast du vielleicht nen kleinen code ausschnitt wo man sieht wie man sprites einsetzt?
deine grafiken sind ja schwarz weiß, färbst du die mithilfe von b3d ein oder setzt du da eine "textur" drauf?

theotheoderich

BeitragDo, Jul 23, 2009 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss jetzt weg, ich schaue heute nachmittag mal, ob ich was finde (der Code ist 5 Jahre alt...)
Gruß
TheoTheoderich
--
The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer.

theotheoderich

BeitragDo, Jul 23, 2009 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mal in mein Spiel geguckt und nichts brauchbares gefunden, alles zu sehr verteilt, bzw. aus dem Zusammenhang gerissen.

Diese Beispiel hier aus der Hilfe hier im Forum dürfte Dir um Längen weiterhelfen, als das, was ich damals zusammengehackt habe Very Happy

Mit Hilfe von diesem Code habe ich es damals auch gelernt Wink

Viel Erfolg Exclamation

EDIT:
Die Spritetextur im ersten Beispiel ist schon die Textur.
Mittels
Code: [AUSKLAPPEN]
EntityColor sprite,255,0,0

kannst Du das Sprite einfärben.
Setze doch mal meine Sprites anstatt dem aus dem Beispiel ein.

das wurgel

BeitragDo, Jul 23, 2009 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin

Ich hab hier Mal ein einfacheres Beispiel für dich gecodet. Es zeigt ein sich drehendes Laserschert.
Code: [AUSKLAPPEN]
Graphics3D 640,480
SetBuffer BackBuffer()

Local camera=CreateCamera() ; Kamera erstellen

AmbientLight 32, 32, 48 ; Dunkle Umgebung

Local light=CreateLight(1) ; Richtungslicht erstellen
RotateEntity light,45,45,0
LightColor light, 64, 64, 64 ; Licht dunkler machen

Local drehpunkt=CreatePivot() ; Punkt erstellen, um den sich das Laserschwert drehen soll
PositionEntity drehpunkt,0,0,5

Local laserschwert=CreatePivot(drehpunkt) ; Pivot fürs Laserschwert erstellen
RotateEntity laserschwert,30,0,0
PositionEntity laserschwert, 0, 0, 1.5

Local cyl1=CreateCylinder(20,1,laserschwert) ;Cylinder für den Griff erstellen
PositionEntity cyl1,0,-3,0
ScaleEntity cyl1, 0.3, 1, 0.3

Local sprite=LoadSprite("sword.bmp", 2, laserschwert) ; Sprite laden (die 2 bedeutet, das dunkle Stellen transparenter erscheinen)
ScaleSprite sprite, 4, 4 ; Sprite vergrößern
PositionEntity sprite, 0, 2, 0 ; Sprite positionieren
SpriteViewMode sprite, 2 ; Sprite soll sich wie ein normales Mesh verhalten
EntityColor sprite, 64, 255, 64 ; Farbe grün zuweisen

Local timer=CreateTimer(30)

While Not KeyHit(1)
   WaitTimer timer
   TurnEntity drehpunkt, 0, 3, 0 ; Laseraschwert um den Drehpunkt drehen
   RotateEntity sprite, 0, -EntityYaw#(drehpunkt), 0 ; Sprite in die richtige Richtung zeigen lassen
   RenderWorld
   Flip
Wend
End

Hier die Grafik für das Laserschwert:
user posted image
1 ist ungefähr 3
 

alliswrong

BeitragDo, Jul 23, 2009 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
super! genau sowas habe ich gesucht. danke dir vielmals Smile
das erklärt so einiges Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group