[B3D]2D-Schatten (3D benötigt!)
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ich eigentlich sagen wollte ist, das sich die lichter nicht addieren, sonder das hellere gewinnt(außer bei farbigen licht) | ||
Warbseite |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
PSY, ja, die logische Vorgehensweise ist dann eben: If A>B Then ... kann ja auch nur True=1 oder False=0 sein. Das Ergebnis der Operatoren (hier im Beispiel ''A>B'') kann man somit auch mit in eine Formel rein packen. Man kann auch >, < und = anwenden.
Schatten, bin fesziniert über die bisherig gezeigten Möglichkeiten. Nur eine Frage, könnte man auch mit viel größeren Lichtreichweiten arbeiten, ohne viel Systemrecourcen zu verbraten? Denn eine Faustlanger Radius ist noch etwas wenig um es in ein Spiel einzusetzen. Achja, zu der Lichtaddition zweiter Lichtquellen. Wie soll man denn bitte ein Pixel dessen Helligkeit 255,255,255 beträgt, durch eine Addition auf dem Monitor mit 510,510,510 anzeigen lassen? Geht doch gar nicht. Wer realistische Lichtaddition haben will, müsste erst Lichtquellen mit nicht mehr als 127,127,127 probieren. Edit1: An aMul unter mir: Ich bezog mich bei der Lichtaddition nicht an dich, sondern andere Zweifler die sich das nicht vorstellen können, dass Schatten sich überschneiden wenn mehrere Lichtquellen vorhanden sind. |
||
- Zuletzt bearbeitet von hectic am Mi, Jun 17, 2009 0:21, insgesamt einmal bearbeitet
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Tankebuster:
Ja, Licht ist weicher, da es in der Realität Sachen wie Beugung und indirektes Licht gibt. Und was wird wo überall reflektiert? Du meinst, dass der Hintergrund weiß ist? Einfach was dahinter zeichnen hilft und funktioniert hervorragend. @Cgamer: Jetzt in echt oder in meinem Programm? Beides wäre übrigens falsch... Mein Code addiert die einzelnen Lightmaps vor dem endgültigen Rendern und in echt kann ich eine Wand auch im Hochsommer noch mit einer Leuchtdiode heller machen. @hectic: Ja, man kann mit größeren Lichtreichweiten arbeiten, wo sollte das Problem sein? Du kannst sie direkt in meinem Code ändern und ich verspreche dir, dass es funktioniert. Genau genommen werden gerade eh alle Schatten, für alle Objekte berechnet, nur der Licht-Hintergrund wird durch eine größere Reichweite verändert. Zur Helligkeit: Wenn das an mich gerichtet war: Ja, das stimmt, das ist, was ich mit meinem "ab FF ist Schluss" ausdrücken wollte. |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich meinte, in der realität wird das Licht noch von Wänden, ect reflektiert, und je nach Oberfläche noch gestreut ![]() Dadurch sieht die Computer-Variante vielleicht etwas ungewohnt aus, ect....... Natürlich sollst du das jetzt nicht einbauen ^^ Aber wo ich schonmal die Vorzüge des echten Lichts aufgezählt hab, durfste das ja auch nicht fehlen =) |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Lastmayday |
![]() Antworten mit Zitat ![]() |
---|---|---|
man müsste die helligkeit bei allem anpassen: eine taschenlampe wird nachts heller wahrgenommen als tagsüber. (logisch ![]() |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: @Cgamer:
Jetzt in echt oder in meinem Programm? Beides wäre übrigens falsch... Mein Code addiert die einzelnen Lightmaps vor dem endgültigen Rendern und in echt kann ich eine Wand auch im Hochsommer noch mit einer Leuchtdiode heller machen. Ja, das geht, aber bei deinem code kannst du das nicht so nachachen wie im Real Life. DEr rEchenaufwand wäre zu groß |
||
Warbseite |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Code kann die Realität zu 100% nachahmen...
In den Grenzen die ich meiner Lib bewusst gesetzt habe ist soweit ich weiß alles physikalisch korrekt, und du hast immer noch nicht klar ausgedrückt, was deiner Meinung nach denn falsch ist. |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nen bild davon kann ich leider nich machen ![]() Was ich mein ist, Das ein Licht was ca 25% stärker(heller) ist als das Licht dahinter, das Licht dahinter verschluckt/auslöscht). Bei farbigen Lichtern ist eine addition ok. |
||
Warbseite |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
danke aMul nochmal für dienen Erklärung , jetz ist es mir auch klar wie das Ding Worx ^^ Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
aMul hat Folgendes geschrieben: Kein Code kann die Realität zu 100% nachahmen...
Kommt auf die Realität an. ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, wie gesagt, Cgamer... das ist leider falsch. Licht addiert sich immer, egal welche Wellenlängen.
Es mag vielleicht so aussehen, aber im Raum ist genug Platz für Photonen, dass sie sich nicht drängeln müssen. @TimBo: Kein Problem, freu mich dass du es verstehst. ![]() |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Naja, wie gesagt, Cgamer... das ist leider falsch. Licht addiert sich immer, egal welche Wellenlängen.
Es mag vielleicht so aussehen, aber im Raum ist genug Platz für Photonen, dass sie sich nicht drängeln müssen. wir leben in unterschiedlichen welten anscheinend XD wenn ich bei mir dir taschenlampe geben einen etwas heller angeleuchteten gegenstand halte, gewinnt das eine Licht iwie die oberhand. Kamera hab ich grade nich |
||
Warbseite |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Kamera würde da auch nicht viel nützen. Das Phänomen entsteht nämlich erst im menschlichen Auge, weil das Spektrum der erfassten Lichtstärken (Wellenlängen übrigens auch) sehr beschränkt ist, dafür aber ziemlich hochauflösend. Deshalb haben wir ja sowas wie Pupillen, die mal mehr, mal weniger Licht reinlassen. Trotzdem passiert es ab einer gewissen Helligkeit, dass wir noch helleres nicht mehr als noch helleres wahrnehmen können.
That's live... |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Die Version mit zwei Lichtern braucht leider immer noch 50ms...
Viel mehr wird aber in Blitz nicht mehr rauszuholen sein Ich behaupte da sollte schon mehr gehen. Man müsste bei mehreren Lichtern nur den Ansatz ändern und nicht mehr die abgedunkelten Flächen(Schatten) berechnen, sondern eben die von den Lichtern erhellten Flächen(Licht). Diese könnte man dann einfach additiv übereinanderlegen und mit dem Untergrund multiplizieren, so dass auf langsame Texturbuffer verzichtet werden kann. Die Berechnung der Lichtflächen gestaltet sich natürlich etwas aufwändiger, aber im Prinzip kann man hier ähnliche Optimierungen wie für die Schattenberechnung verwenden(z.B. nur ganze konvexe Objekte betrachten). Durch die radiale Ausbreitung des Lichts sollte auch die Triangulierung der Lichtfläche auch recht simpel und fix ausfallen. Außerdem kann man Objekte außer Reichweite des Lichts ignorieren. Ich bin mir ziemlich sicher, dass man so auf einem halbwegs vernünftigen Rechner bei einer nicht zu komplexen Szene mehrere Lichter flüssig darstellen kann. Im Moment habe ich allerdings keine Zeit mich selbst daran zu versuchen, aber ihr würdet das sicherlich auch hinkriegen ![]() |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
BIG BUG hat Folgendes geschrieben: Diese könnte man dann einfach additiv übereinanderlegen und mit dem Untergrund multiplizieren, so dass auf langsame Texturbuffer verzichtet werden kann.
Genau hier liegt das Problem ![]() Die Lichter mal so eben additiv übereinanderlegen geht nicht so einfach - wenn ein Licht per RenderWorld gezeichnet wird, so wird es gleich mit dem momentanen Bild auf dem Backbuffer verrechnet und nicht zuerst mit den anderen Lichtern und dann das Endergebnis dieses Vorgangs mit dem Backbuffer. Um die Lichter zuerst untereinander zu addieren, müsste man entweder die Lichter in Texturen rendern und diese mit additivem Blend verrechnen, um das Mesh mit dem Hintergrund zu multiplizieren, oder aber die Lichter separat additiv rendern, das Endergebnis in eine Textur kopieren und dann mit der Szene multiplikativ rendern. Beides benötigt Texturbuffer, die leider in Blitz relativ langsam sind. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo liegt das Problem darin, einfach alle Lichter vom selben Mesh darstellen zu lassen?
einfach EntityBlend 3, alle Lichter-Polys erstellen und die addieren sich von ganz alleine. Das ganze müsste man dann natürlich noch in eine Textur schieben/dorthin rendern und dann wieder mit der Spielwelt multiplizieren. @Big Bug: Natürlich ist das in der Theorie eine sehr ansprechende Möglichkeit, aber in der Praxis ist es wohl doch mit einem Haufen Rechenarbeit verbunden. Für mehrere Lichter sollte es dann aber, wie du ja schon gesagt hast deutlich schneller sein. Wo ich gerade darüber nachdenke, ich habe da eine Idee.... |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
aMul hat Folgendes geschrieben: Wo liegt das Problem darin, einfach alle Lichter vom selben Mesh darstellen zu lassen?
einfach EntityBlend 3, alle Lichter-Polys erstellen und die addieren sich von ganz alleine. Das ganze müsste man dann natürlich noch in eine Textur schieben/dorthin rendern und dann wieder mit der Spielwelt multiplizieren. Das sagte ich bereits und da liegt ja das Problem. CopyRect im Texturbuffer ist nämlich langsam, was ja schon öfter festgestellt wurde. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
cameramode kann man auf nicht-auto-cls setzen. also sozusagen erst 2d zeug, dann 3d licht drüber | ||
Warbseite |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Genau genommen musst Du es genau andersrum machen, aber MultiPassRendering ist hier schon das Stichwort.
Also im ersten Pass die Lichter rendern, dann im zweiten Pass die Texturebene drüber multiplizieren. In einem dritten Pass(oder noch im zweiten) könnte man dann sogar einfach die berechneten Licht-Meshes benutzen um Caustics und Überbelichtung zu erzeugen. Mit dem Brush-Befehl könnte man hier ja dann einfach die Texturen austauschen. Das Rendern in mehreren Passes ist übrigens nicht nennenswert langsamer als alles auf einmal zu rendern. Außerdem kann man auf diese Weise dynamische Lichter wunderbar mit Lightmaps vereinen, so dass der einzig sichtbare Unterschied zwischen beiden Lichttypen die Texel-Auflösung der Lightmap ist. blablup... |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
BIG BUG hat Folgendes geschrieben: Also im ersten Pass die Lichter rendern, dann im zweiten Pass die Texturebene drüber multiplizieren.
Auch hier hast du ein Problem mit dem Multiplizieren. Das funktioniert sehr gut, wenn du ein einzelnes Mesh über das Licht renderst (mit EntityBlend ![]() Eventuell könnte man dieses Problem aber mit einem dritten Renderdurchgang und dem Z-Buffer lösen, das werde ich mal ausprobieren. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group