unechte Unsichtbarkeit
Übersicht

![]() |
BrotenkopfBetreff: unechte Unsichtbarkeit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute,
Also ich hab mir die Frage gestellt wie man zB einen schönen Verschwimmeffekt über einem Feuer machen könnte. Ich dachte, dass man vielleicht ein Quad über dem Feuer erstellt welcher genau das, was man hinter diesem Quad sehen würde auf eine Textur speichert und diese Textur dann etwas verschwimmen lässt. Ich frage mich jetzt wie man das was hinter dem Quad zu sehen ist so auf die Textur bringt ,dass es von jedem Punkt von welchem man auf den Quad schaut so aussieht als wäre dieser durchsichtig. Ich hoffe ich habe das Problem verständlich formuliert.^^ |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich macht man das mit Shadern, und das geht mit BB nicht. Und mal ehrlich, solche details sind ja weder sonderlich wichtig für die Optik, noch für's Spielgeschehen. Ein solides, animiertes Feuer hinzukriegen ist auch so schon Aufgabe genug, denke ich ![]() |
||
Starfare: Worklog, Website (download) |
![]() |
Brotenkopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Prinzip schon aber ich persönlich achte gerne auf solche Details. Ich denke, dass sowas einem Spiel oder nur einer kleinen 3D Szene viel Leben einhaucht. Außerdem stelle ich mir gerne solche Fragen denn beim lösen lernt man auch viel dazu und ich möchte irgendwann mal ein Spiel auf die Beine stellen und zur zeit sammel ich noch Erfahrungen. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann würde ich dir deutlich empfehlen erst mal die Grundlagen der Spieleprogrammierung zu meistern bevor du dich in Schnickschnack verlierst.
Mach erst mal simple Dinge fertig bevor Du nach den Sternen greifst ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Brotenkopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm..ich denke nicht, dass ich ein totaler Anfänger bin. Ich versuche nur immer eine schöne Lösung für die Probleme zu finden, die ich mir stelle. Ich denke auch nicht, dass ich gleich nach den Sternen greife mit meinem "Verschwimmeffekt über einem Feuer"^^. Ich suche nur nach einem Lösungsansatz. Ich erwarte ja keinen fertigen Code/Tutorial etc. | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könnte man eventuell auch mit einem halbtransparenten animierten Sprite erzeugen | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problem dabei: Du müsstest wohl die gesamte Szene rendern, das dann etwas verwischen und auf ein Sprite packen. Danach wird das echte Bild gerendert. Doppelter Aufwand für nur ein wenig "schöner".
Es wäre zwar auch möglich, mit 2D-Befehlen den Bildteil zu ändern, an dem das Feuer wäre, aber dann müsste man irgendwie anders herausfinden, ob da nicht vielleicht ein anderes Objekt vor ist. Funktioniert nicht wirklich. |
||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
![]() |
SpionAtomBetreff: Hitzeflimmern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier die Hitzeflimmern-Billigversion
Code: [AUSKLAPPEN] Graphics 640, 480, 0, 2
Local img_bg = CreateImage(GraphicsWidth(), GraphicsHeight()), img_output = CreateImage(GraphicsWidth(), GraphicsHeight()), img_hf = CreateImage(200, 200) SetBuffer ImageBuffer(img_bg) For i = 0 To 999 Color Rand(255), Rand(255), Rand(255) Rect Rand(GraphicsWidth()), Rand(GraphicsHeight()), Rand(50), Rand(50) Color Rand(255), Rand(255), Rand(255) Oval Rand(GraphicsWidth()), Rand(GraphicsHeight()), Rand(50), Rand(50) Next Repeat img_output = Hitzeflimmern(MouseX() - 100, MouseY() - 100, img_bg, img_hf, img_output) SetBuffer BackBuffer() DrawBlock img_output, 0, 0 Flip() Until KeyDown(1) End Function Hitzeflimmern(x, y, img_background, img_section, img_output, blocksize = 20, iterations = 50) Local w = ImageWidth(img_section), h = ImageHeight(img_section) SetBuffer ImageBuffer(img_output) Cls DrawBlock img_background, 0, 0 Color 255, 255, 255 Rect x, y, w, h, 0 Local s_x, s_y, s_h, s_w For i = 1 To iterations ;Nimm einen Ausschnitt aus Section s_h = Rand(h) s_y = y + s_h s_w = w / 2 + ((Float(s_h) / h) * Rand(w / 2)) * Sgn(Rand(-1, 1)) s_x = x + s_w ;und blitte diesen Teil nach oben CopyRect s_x, s_y, blocksize, blocksize, s_x + Rand(-blocksize / 5, blocksize / 5), s_y - Rand(blocksize / 3, blocksize / 2), ImageBuffer(img_background), ImageBuffer(img_output) Next Return img_output End Function |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
SpionAtom ist einfach cool ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach, ging es gar nicht um 3D? In 2D ist das ganze natürlich wesentlich einfacher. ^^ | ||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group