.| Autor | Beitrag |
|---|---|
|
000 26.11.2008, 15:49 Irdin |
Unabhängig davon, wo sich in einer mit Hammer gebauten Half-Life(1)-Map Wasser befindet, ich stehe immer vor folgendem Problem: Die Oberfläche des Wassers wird gleichmäßig ausgeleuchtet, auch wenn beispielsweise durch Brushes zwischen ihr und der Lichtquelle eigentlich Schatten geworfen werden müssten. Das hängt nun anscheinend nicht nur mit der Wasser-Textur und auch nur bedingt mit dem func_water-Entity zusammen: Es ist wohl auch func_walls und anderen mit Entities belegten Brushes nicht möglich, Schatten zu empfangen, sobald sie nur ein wenig transparent sind. Egal, welche Rendermodi ich verwende. Wie ihr merkt finde ich das alles ein bisschen verwirrend - Schaut euch am besten die Screenshots an. Bei Interesse an meinem Problem, lässt es sich denke ich sehr gut ausprobieren, aber bestimmt hatte es jemand von euch schonmal selbst, also: Kann die HL-Engine das? Screenshots (Direct3D) Brush mit !Wasser-Textur und Transparenz Dieser Beitrag wurde am 26.11.2008 um 15:57 von Irdin bearbeitet. |
|
Profil || Suche |
|
001 26.11.2008, 16:09 Bluthund |
Das die Art der Lichtquelle keinen Einfluss hat, liegt daran, dass die Light-Entities im Endprodukt nicht mehr vorliegen. RAD ist dafür zuständig aus den Infos der Lights eine Lightmap zu generieren. The C language combines all the power of assembly language with all the ease-of-use of assembly language. |
|
Profil || Suche |
|
002 27.11.2008, 19:52 Irdin |
Danke für die rasche Antwort und die Aufklärung in Sachen RAD. Werde mir das mal alles genauer anschauen. Ich wollte eigentlich nur wissen, ob die unveränderte HL-Engine das hinbekommt, was du verneint hast. Dynamic Lights hatte ich bisher als Light-Entities verstanden, bei denen zwei Zustände berechnet werden. (= 2 Lightmaps?) |
|
Profil || Suche |
|
003 27.11.2008, 20:09 Bluthund |
Dynamic Lights sind wie der Name schon sagt dynamisch. Sprich sie können sich in der Map bewegen, ihre Intensität/Farbe/Strahlungsrichtung ändern und was man nicht noch alles mit Licht anstellen kann und dass alles wirkt sich direkt auf die Szene aus. Die Taschenlampe in HL ist iirc nen dynamisches Licht (nicht der Kegel, den du siehst, sondern die "Aura" die andere Player sehen wenn du die Funzel aktivierst). Was die Leute von HLFX genau machen kann ich dir auch nicht mit Gewissheit sagen, dazu hab ich das Projekt nicht ausreichend verfolgt. Das war eher ein Tipp ins Blaue, dass solche Projekte da evtl ne Neuerung haben könnten, die dass von dir besagte Verhalten ermöglichen könnten. edit: Aja das ist keineswegs die bottom line. Das ist lediglich mein Kenntnisstand, evtl gibts ne Möglichkeit. --The C language combines all the power of assembly language with all the ease-of-use of assembly language. Dieser Beitrag wurde am 27.11.2008 um 20:16 von Bluthund bearbeitet. |
|
Profil || Suche |
|
004 27.11.2008, 21:23 Irdin |
Alles klar. Danke! Einstweilen hab ich das Problem kaschiert, indem ich analog zum "Dynamische Schatten faken" Tutorial den betroffenen Teil der Wasseroberfläche mit transparenten, black-texturierten func_illusionary überdeckte. Ich werd schon noch was finden. -- |
|
Profil || Suche |
|
005 27.11.2008, 21:49 Opey |
gab es nicht einen befehl zum runterskallieren der lightmap-abstufungen? fr?her "M.D.Freezer" |
|
Profil || Suche |
|
006 29.11.2008, 00:14 Irdin |
Meinst du vielleicht das? -- |
|
Profil || Suche |
|
007 30.11.2008, 00:23 Silencer Einundneunzig |
Die einzigen Rendermodi bei denen die Lichteinwirkung noch eine Rolle spielt sind normal und solid. Bei allen anderen wird die Lichteinwirkung nicht mit einberechnet. (sie ist aber trotzdem kompiliert; man setze ein entity, dass z.B. im rendermode texture kompiliert wurde, mit einem env_render in den normalen rendermodus, und Licht und Schatten sind wieder erkennbar) Workaround: Wenn Transparenz ein Muss ist, Lichteinwirkung allerdings auch, dann wird man das func_water in mehrere quaderförmige func_waters unterteilen müssen, die da aneinander grenzen, wo ein scharfer Helligkeitsübergang ist, und dementsprechend das renderamount für die func_waters höher stellen, die im hellen Licht sind. Man kann sich das Wasser ruhig so zusammenschnippseln, solange jedes func_water aus einem quaderförmigen brush ist. Generell gilt: Je dunkler der Raum umso geringer der renderamt, wenn man texture rendermode benutzt. (Man denke an viel zu helle Glasscheiben in finsteren Räumen; sehen furchtbar aus.) Wenn Farbwechsel auch eine Rolle spielen, wird Texturbearbeitung mit ins Spiel kommen. Ab da wird es aber ganz ehrlich zu aufwendig. --666 BPM |
|
Profil || Suche |
|
008 30.11.2008, 13:48 Irdin |
Das ist verdammt wichtig zu wissen und für mich jetzt auch nachvollziehbar. Vielen Dank. Ich habe die Methode, mehrere func_water-brushes zu verwenden, ausprobiert. Das Ergabnis ist wirklich viel besser als mit func_illusionary zu überdecken. Wenn ich zusätzlich noch das ZHLT-LightFlag auf Opaque setze krieg ich durch die Schatten, die auf den Grund geworfen werden, ein befriedigendes Endprodukt. Danke euch allen. Ich hab durch euch einiges über HLRAD gelernt. -- |
|
Profil || Suche |

