====== Lichter in der Source Engine ====== In Half-Life 2 wird wie beim Vorgänger das eigentliche Licht durch [[half-life_2:entities:#light|Light-Entities]] produziert. Sie dienen als eigentliche Lichtquellen für die Engine; sie sind unsichtbar. Das heißt, ein Light-Entity produziert nur das Licht, nicht die eigentliche Quelle wie z.B eine Lampe. Diese muss per Model nachträglich hinzugefügt werden. Es gibt 4 unterschiedliche Licht-Entities, diese sind [[half-life_2:entities:light]], [[half-life_2:entities:light_dynamic]], [[half-life_2:entities:light_spot]] und [[half-life_2:entities:light_environment]]. Diese erzeugen nur das eigentliche Licht, weitere Effekte kann man dann mit [[source:entities:point_spotlight]] für einen Lichtstrahl oder [[source:entities:env_sun]] für die Korona einer Sonne erstellen. ===== Dynamisches Licht oder nicht? ===== Zuerstmal kann man sagen, Half-Life2 ist nicht wirklich auf dem neusten Stand. Es unterstützt zwar dynamische Lichter (-> light_dynamic), aber diese sind nur für bewegliche Lichter gedacht und werfen **keine** dynamischen Schatten. Weil diese Lichter dann keine Schatten erzeugen können, sieht das ganze recht unschön aus. Außerdem ist diese Entity-Art sehr performanelastig, deswegen sollte man sowenige dynamische Lichter wie möglich setzen. ===== Cubemaps ===== Bitte beachtet, dass für die richtigen Reflexionen der Lichter Cubemaps benötigt werden. Wie ihr sie setzt und was ihr beachten müsst bzw. was Cubemaps überhaupt sind, erfahrt ihr [[half-life_2:tutorials:cubemaps|hier]]. ===== Die Entities ===== ==== Light ==== Das [[half-life_2:entities:light]]-Entity ist eine unsichtbare Lichtquelle, die mithilfe von Inputs/Outputs an- und ausgeschaltet werden kann. Das Light-Entity leuchtet in jede Richtung, anders als bei einem light_spot. Somit braucht es auch keine Angabe der Richtung o.ä. Diese werden vorallem für bestimmte Licht-Models benutzt, die auch in jede Richtung leuchten soll (Kellerleuchten z.B). Für gebogene Lampen, die nach oben nicht offen sind, empfiehlt sich des Aussehens wegen ein light_spot zu benutzen. ==== Light_Spot ==== Mit dem light_spot kann man eigentlich die meisten Lichtsituationen meißtern. Lampen, Strahler oder Laternen, alle diese können am Besten mit einem light_spot erstellen. Bestes Beispiel dafür sind die vielen Combine_Lichter in den Anfangsmaps von Half-Life2. Diese sind so aufgebaut: \\ {{half-life_2:tutorials:lichter:light_spot.jpg}} \\ Dieses Gebilde aus der map d1_trainstation_01 (ist übrigens im Sdk als Beispielmap vorhanden, ihr könnt euch das ganze also im Hammer angucken) besteht aus 3 Entities. Einem [[source:entities:prop_static]] für das Model, einem [[half-life_2:entities:light_spot]] und einem [[source:entities:point_spotlight]]. Hier ist eine Anweisung was ihr alles machen müsst. - Erstellt ein [[source:entities:prop_static]] mit dem Model ''models/props_combine/combine_light002a.mdl''. - Erstellt vor dem Model ein [[half-life_2:entities:light_spot]]. Ihr könnt nun die Richtung des light_spots einstellen, in dem ihr den **Point at** im Auswahlmenü der **Pitch Yaw Roll**-Einstellung (klicken, Position suchen, nochmals klicken) Plaziert nun ein [[source:entities:point_spotlight]] in genau der gleichen Richtung wie das light_spot. Ihr solltet bei den Flags neben **StartOn** noch **No dynamic light** aktivieren, damit nicht soviel Performance verbraucht wird. Auch dieses Entity kann mit dem **Point at** Buton justiert werden. Ingame sieht das ganze dann folgendermaßen aus: {{half-life_2:tutorials:lichter:spot_ingame.jpg}} Tip: Die Verwendung von [[source:entities:func_dustmotes]] (beleuchtete Staubkörner) in Verbindung mit light_spots bringen weitere schöne Effekte. ==== Kombination von light und light_spot==== Diese zwei ersten Entities ([[half-life_2:entities:light]] und [[half-life_2:entities:light_spot]]) kann man auch kombinieren. Somit erreicht man qualitativ beste Ergebnisse. Das macht Valve sehr häufig in den Maps. Auch zu sehen ist es an der Stelle, wo der Spieler Barney das erste Mal sieht. In dem Gang, durch den der Spieler laufen muss, befinden sich Lichter an der Decke, die mit exakt dieser Methode gebaut wurden. \\ {{half-life_2:tutorials:lichter:light_and_spot.jpg}} \\ Dieses Gebilde besteht nun aus 4 Entities. Einem [[source:entities:prop_static]] für das Model, einem [[half-life_2:entities:light_spot]], einem [[half-life_2:entities:light]] und einem [[source:entities:point_spotlight]]. Valve hat folgende Einstellungen verwendet: - [[source:entities:prop_static]] -> **World Model** ''models/props_wasteland/prison_lamp001b.mdl'' - [[half-life_2:entities:light_spot]] -> **Brightness** ''254 216 146 400''. - [[source:entities:point_spotlight]] -> Flags: **No Dynamic Light** und **StartOn**. **Length** - 256, **Width** - 64 und **Color** ''254 216 146''. - [[half-life_2:entities:light]] -> **Brightness** ''254 216 146 2''. Ich hoffe durch dieses Beispiel wurde euch klar, wie man mehrere Light-Entities zu einem schönen Effekt verbinden kann. Probiert einfach mal einige Sachen aus. ==== light_dynamic ==== Dieses Light-Entity wird relativ selten verwendet. Es bietet viel mehr Möglichkeiten und **Inputs** für die Verwendung des Entities. Zum Beispiel wurden am Anfang von Half-Life2 (-> Szene mit Gman) mehrere light_dynamics verwendet, um den Kopf von Gman zu beleuchten. Guckt euch die Anfangsszene nochmal an und ihr werdet sie sicherlich bemerken. Außerdem wird dieses Entity benutzt, um schwingende Lampen erstellen zu können, bei denen sich das Licht mitbewegt. Denkt allerdings daran, dass dieses Light-Entity **keine** dynamischen Schatten wirft und viel Performance frisst. Es gibt auch ein Tutorial für diese Lichtart -> Siehe [[half-life_2:tutorials:schwingende_lampe_mit_dynamischem_licht|hier]]. Es gibt noch weitere Ressourcen für die Dynamischen Lichter (auf Englisch): * [[http://www.editlife.net/tutorials.php?id=28|EditLife.net]] * [[http://www.hl2world.com/wiki/index.php/Dynamic_Lights|hl2world.com]] ==== light_environment ==== Dieses Entity wird **ausschliesslich** in Verwendung mit Aussenarealen verwendet. Es erzeugt ein künstliches Sonnenlicht. Da ich keine Erfahrungswerte für diese Entities habe, ist es am Besten, ihr probiert ein bisschen (und tragt evtl hier eure besten Ergebnisse ein). Um den Effekt einer Sonne zu verstärken, könnt ihr euch eines [[source:entities:env_sun]] bedienen. Wie ihr dieses richtig in die Map einbaut, erfahrt ihr [[half-life_2:tutorials:wettereffekte#sonne|hier]]. ===== Texlights ===== Texlights sind Texturen, denen die Eigenschaft zugewiesen wurde, Licht abzugeben. Die Materials beleuchten sich dabei nicht selbst, dazu gibt es die Einstellung [[half-life_2:material:shaderparameter:selfillum]]. Welche Farbe und Helligkeit das Licht haben soll, liest vrad.exe aus der Datei //lights.rad// im jeweiligen Modverzeichnis (//hl2//, //hl2mp// oder //cstrike//). Diese Datei hat folgendes Format: pfad/material R G B Helligkeit Die Farb- und Helligkeitswerte entsprechen denen, die es auch im Hammereditor für light-Entities gibt. Ein Beispiel ist schon vorgegeben: xeno/crys_4b 255 160 128 40000 Das abgegebene Licht hängt zusätzlich noch vom Alpha-Kanal der Textur ab. Der angegebene Helligkeitswert wird dort erreicht, wo der Alphakanal sein Maximum hat und wird proportional verrechnet. ===== Linear-Quadratic-Constant ===== Neben Helligkeit und Farbe kann man bei Light und Light_spot noch eine weitere Einstellung machen, die die Erscheinung bestimmt: Das Linea-Quadratic-Constant-System. Alle 3 Einstellungen geben eine "Formart" wieder, und können beliebig kombiniert werden. ^ Linear | Die Lichtstärke nimmt Linear von der Lichtquelle ab. | ^ Quadratic | Die Lichtstärke nimmt Exponentiell von der Lichtquelle ab. Diese Einstellung ist Standartmäßig auf 1 und sorgt unverändert oft für ein übertriebenes glühen. | ^ Constant | Die Lichtstärke bleibt Konstant. | Alle Werte bestimmen den Anteil an der Gesamtlichtstärke und sollten immer zusammen 1 ergeben. Dies ist aber nicht zwingend Notwendig. ===== Anmerkung ===== Man kann natürlich noch viel mehr mit den Effekten spielen. Ein weiteres wichtiges Beispiel ist voluminöses Licht, wie ihr es einsetzt und was ihr damit machen könnt, erfahrt ihr [[half-life_2:tutorials:volumetrisches_Licht|hier]].