Update Preview 2014-06-01: Static lighting

A new update is now available, introducing seasons and more!
Latest hotfix: 0.8.0.1 (2024-12-20)
  • The next update gives you the ability to place torches and lamps in the world, to illuminate the environment. You can place as many torches or lamps as you want. You can also pickup a placed torch at any time and hold it in your hand, while it still spends light.


    We're also preparing more "light-spending items", for example flares and chemlights.


    The update will be available within the next days, so stay tuned! :)







  • Sieht verdammt cool aus, vorallem das im Wald!


    Ist der Radius des Lichts je nach Quelle variable?
    Ist ein Lichtflackern für z.B. Fackeln gedacht? Müsste sich doch im Shader machen lassen. Ich glaube das wuerde dem ganzen noch mehr Atmosphäre geben.


    :thumbsup:

  • Danke! :)


    Der Radius sowie Lichtfarbe sind komplett variabel. Momentan entspricht der Radius der platzierten Fackeln dem Radius der "in Händen gehaltenen" Fackel ;)


    Lichtflackern ist erstmal noch nicht drin, weil das diverse Schwierigkeiten mit sich bringt: Momentan wird das statische Licht (sowohl künstliches als auch natürliches) als VertexBuffer an den Shader übergeben (Vector4, rgb für die künstliche Lichtfarbe, a für den Anteil des natürlichen Lichts). Für sowas wie Flackern bräuchten wir einen weiteren Indikator (schließlich sollen ja nicht alle Lichtquellen flackern), leider ist der VertexBuffer wie man sieht komplett ausgebucht, und einen weiteren Buffer wollen wir nicht extra dafür verwenden :| Wir müssen mal schauen, ob sich irgendwann mal die Möglichkeit auftut, so einen Wert (der ja pro Vertex gesetzt sein muss) möglichst optimal den den Shader zu geben (vll i.V.m Texturkoordinaten, allerdings wird dann auch der "Berechnungsaufwand" des statischen Lichts [was ja die CPU erledigen muss] größer).


    Beim dynamischen Licht wäre das hingegen kein Problem, all dessen Daten werden als Uniforms an den Shader gegeben, und bei Punktlichtern haben wir noch einen Parameter frei ;) Allerdings wäre auch das wahrscheinlich suboptimal, wenn die Fackel flackert, während sie in der Hand gehalten wird, aber ganz ruhig ist, sobald sie an der Wand klebt :D

  • Ich hatte bei dem Flackern auch nicht zwingend an einen komplett neuen Buffer gedacht, sondern initial eher an eine on/off Funktion.
    Das Flackern an sich bewegt sich noch meinem Empfinden ja zwischen Licht an und Licht aus (vielleicht nicht ganz aus) und einer Zeitlichen Komponente (Time im Shader).
    Wenn man vielleicht erst mal experiment den Sinus der Zeit nimmt um einen Wert 0-1 zu erhalten und dieser dann mit dem Wert aus dem VertexBuffer multipliziert (zumindest den rgb Anteil) sollte meines erachtens ein zugegeben gleichmäßiges Flackern erzeugt werden können. Wäre das nicht eine Variante oder steh ich gerade voll auf dem Schlauch? Bin einfach nicht so der absolute Experte mit Shadern...aber man lernt :D

  • An sich schon, das Flackern selbst würde auf diese Weise umgesetzt werden (das Flackern berechnet ohnehin die Grafikkarte), allerdings bringt eine globale Einstellung das Problem mit sich, dass es die gesamte Spielwelt betreffen würde, da sich alle Chunks dasselbe Material teilen.
    Selbst wenn pro Chunk ein individuelles Material definiert wäre, würde diese "globale" Einstellung trotzdem noch alle statischen Lichtquellen innerhalb des Chunks betreffen, also würden auch alle normalen Lampen flackern :D Sprich wenn neben einer Fackel eine normale, moderne Lampe platziert wird, würden beide flackern.


    Die Schwierigkeit ist also, dass für jeden einzelnen Vertex separat entschieden werden muss, ob an dieser Stelle geflackert werden soll oder nicht (die Prüfung also, ob die diesen Vertex erreichende Lichtquelle flackerndes Licht abgibt, wie die Fackel, oder normales konstantes Licht, wie eine moderne Lampe) ;) Und da ist die einzige vertretbare Lösung eigentlich ein eigener Buffer...

  • Rein phyikalisch betrachtet flackern moderne Lampen ja auch. Sie Flackern eben nur so schnell das man es nicht merkt :D
    Aber Spaß bei Seite... das jegliches statische Licht flackert wäre natürlich unschön und würde extrem nerven und nicht wie gewünscht Atmosphäre erzeugen.

  • Gutes Argument :D Wir müssen mal schauen, ob wir in Zukunft vll ohnehin einen weiteren Buffer benötigen (was für andere Features ja gut sein kann), wo wir den Parameter fürs Flackern heimlich mitschicken könnten ;)

  • Wäre ja für später ein gutes Feature!
    Aber auch ohne Flackern kommt eine gute Lagerfeuerstimmung auf :D


    Da wäre schon was wieder der Gruselansatz aus dem anderen Forenbeitrag interessant...mit etwas Licht, rascheln...Schatten bewegen sich im Wald! Eigentlich brauch man nicht mal ein richtig gutes 3D Objekt um diesen Effekt zu erreichen...das "Monster" kann ja dann erst im späteren Release kommen

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!