"Rauch" programmieren, wie würde man bei so einer Problemstellung vom Informatiklehrer herangehen?

...komplette Frage anzeigen

4 Antworten

Also es gibt eigentlich grob zwei Methoden:

Easy:
Du verwendest ein 3D Program um Rauch zu simulieren renderst diese Animation und spielst dann diesen Clip in einem selbst geschrieben Program ab. http://www.harding.edu/fmccown/screensaver/screensaver.html Hier mal ein Tut für C#

Hardcore:
Du verwendest Opengl um den Smoke darzustellen was dazu führt, dass du alle berechnungen selber machen musst. Ein blick zu Stackoverflow: http://stackoverflow.com/questions/15528159/particle-system-for-cloud-or-smoke
Da es Opengl auch für C# gibt könntest du das mit dem Tut oben verbinden.

Bei der Opengl Methode darfst du aber keinen Hyperrealistischen Smoke erwarten, es sei denn du codest dir auch noch einen realistischen shader dazu ;)

Mir fällt noch ein du könntest vllt eine game engine verwenden und dann mit hilfe von wpf fullscreen dort drin das spiel abspielen lassen k.p ob das wirklich geht.

Easy ist natürlich relativ.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich weiß nicht, welche Programmiersprachen du benutzt, aber man kann durchaus Partikelsysteme entwickeln, und diese dann Beispielsweise mit OpenGL oder mit SFML (http://www.sfml-dev.org), was auf OpenGL basiert, visualisieren. 

Es gibt natürlich auch andere Grafikbibliotheken, je nach genutzter Programmiersprache. 

Du kannst den Rauch auch direkt mit OpenGL und GLSL visualisieren, dazu gibt es hier ein paar nützliche Links: http://stackoverflow.com/questions/15528159/particle-system-for-cloud-or-smoke

Dir jetzt zu erklären, wie das alles Funktioniert, ist etwas zu viel für GF, aber wie gesagt; Ich kann dir nur SFML empfehlen. Es ist leicht zu bedienen, es gibt Bindings für viele Sprachen, man kann problemlos Vollbildanwendungen erstellen und es ist natürlich kostenlos.

OpenGL-Shader werden von SFML unterstützt, also wenn du C++/C# (oder eine andere kompatible Sprache) kannst, ist das alles, was du benötigst.

Antwort bewerten Vielen Dank für Deine Bewertung

Bin kein Profi. Würde es so machen:

Eine weiße oder hellgraue oder hellbläulichgraue 'Glut' (zwei-drei arrays) aus 2*2 großen Pixeln (damit es schneller iteriert) unter dem Bildschirm nach oben starten lassen. Die Pixel (Elemente der arrays) kriegen jetzt einen Algo der für alle durchiteriert wird:

ein Prozentsatz benachbarter Pixel soll per random entweder "geradeaus vor", oder "vor nach rechts", oder "vor nach links". Die meisten Pixel, der Rest, alle anderen, sollen bei einer Iteration nur einen Doppelschritt nach oben, gelegentlich bei einer anderen Iteration auch 'mal zwei.

Da es dadurch zu Lücken kommt, und das ganze so auch ziemlich mechanistisch, linear ablaufen würde, gibt es drei Arrays, also drei Pixelschwaden, die sich per alpha-color (Transparenzwert) dann überlagern und 'weichere' Dynamik, Fluß, 'reinbringen. Auch jedes Pixel erhält alpha, das sich ändert je nachdem es überlagert, und - auch wieder per Random - kriegen auch Pixelbereiche mehr oder weniger alpha.

Kurz: in drei Mengen Pixeln, die sich per random algo nach oben bewegen wird per random zusammenhängenden Bereichen sowohl Transparenz, als auch dynamische Bewegung zugedacht. Die Eigendynamik sollte dann zufallsbewegten und zufallstransparenten (mehr oder weniger dichten) Rauch erzeugen.

Antwort bewerten Vielen Dank für Deine Bewertung

Also ich bringe mir Programmieren selber bei, da wir im Fach Informatik nur no leichte Sachen machen, die ich schon lange kann. Ich würde sagen, du musst ein Videoclip, wo es den Rauch gibt da einfügen, wäre am leichtesten. 

Bin mir aber nicht ganz Sicher, da ich zurzeit Webseiten Programmierung lerne & danach erst Software

Antwort bewerten Vielen Dank für Deine Bewertung
Neralem 12.08.2016, 00:29

Videoclip einfügen? Dein Ernst?

1
LifeArtist1 12.08.2016, 00:40
@Neralem

Wieso nicht. Man muss sich das Leben nicht unnötig schwer machen. Es sei denn der TO erwünscht eine reine programmier Lösung.

0
cosypanther 12.08.2016, 00:48
@LifeArtist1

Also mir geht es hier nicht um den Rauch selbst, sondern schon eher um die Konzepte. Deswegen ist das zwar vielleicht eine Lösung, wenns schnell gehen soll, verfehlt aber meine Idee hinter der Frage.

Dennoch ist es sicherlich nicht verkehrt die Option zumindest in den Raum gestellt zu haben :)

0

Was möchtest Du wissen?