Wie die meisten Webseiten nutzen wir Cookies. Nähere Informationen dazu, wie wir mit diesen Cookies umgehen, können Sie in unseren Datenschutzbestimmungen lesen.   Einverstanden
 
 

3D Forum > Unity5 GI Realtime Problem

Unity5 GI Realtime Problem

09.05.2015 14:06
 
SleepySa. 09 Mai. 2015, 14:31 Uhr
Ohne Garantie das dies so 100% richtig ist:

Wenn ein Objekt als Static markiert wird dann wird alles was mit dem Objekt zu tun hat über PhysX 2.8.3 abgearbeitet. Mit anderen Worten die Grafikkarte berechnet das! Diese Berechnungen sind natürlich rechen aufwendig deswegen sind nicht alle Objekte automatisch Static.

Der Unterschied zwischen Static und nicht Static ist also ob die Grafikkarte die arbeit machen darf oder nicht.

warum erzeugt dieses emmisive material keinerlei Schatten


Weil du für emissive eine Lichtquelle brauchst, emissive ist nur ein Posteffekt es findet hier kein wirkliches Raytraceing statt. Wenn du Schatten willst brauchst du emissive + eine Lichtquelle.

Vielleicht weis das ja aber jemand anderst noch besser smile

 
TilesSa. 09 Mai. 2015, 15:11 Uhr
Hallo Brix,

Static ist schlicht statische Levelgeometrie die sich im Spiel nicht bewegt. Die statische Geometrie wird anders berechnet als dynamische Levelgeometrie.

Es wird zwar daran gearbeitet auch die dynamische Geometrie mit dem Realtime GI zu beglücken, aber im Moment geht damit nur statische Geometrie. Für Dynamisches musst du mit Lightprobes arbeiten. Ich habe das aber auch noch nicht komplett durchschaut. Bin da auch noch am rumprobieren.

Und das mit dem Schatten hat ja Sleepy schon erwähnt. Schatten können nur Lichter werfen smile
 
BrixSa. 09 Mai. 2015, 16:44 Uhr
ah ok, danke für die Infos smile
Na ich hoffe mal das die das bald implementieren. wird wohl aber dann unity6 heissen oder so

und mit nem Licht, wie muss ich das Licht einstellen, damit ne längliche "lichtaussendungsstelle" zu erkennen ist? was fürn light nehm ich da? point oder spot oder doch nen area ? ich vermute mal point oder spot , was ich dann mit nem lightcookie versehe oder lieg ich da komplett falsch und ich kann den lichtern auch so ne "form" geben ?

greets
 
GuyGoodSa. 09 Mai. 2015, 17:43 Uhr
Ohne Garantie das dies so 100% richtig ist:

Wenn ein Objekt als Static markiert wird dann wird alles was mit dem Objekt zu tun hat über PhysX 2.8.3 abgearbeitet. Mit anderen Worten die Grafikkarte berechnet das! Diese Berechnungen sind natürlich rechen aufwendig deswegen sind nicht alle Objekte automatisch Static.


Das ist 100% falsch, wäre schön, wenn du das Löschen könntest, damit zukünftige Leser dadurch nicht verwirrt werden.

 
SleepySa. 09 Mai. 2015, 17:51 Uhr
Das ist 100% falsch, wäre schön, wenn du das Löschen könntest, damit zukünftige Leser dadurch nicht verwirrt werden.


Hättest du den dann die güte und würdest die richtige Antwort hinschreiben statt einfach nur zu behaupten das es Falsch ist ?
Danke
 
TilesSa. 09 Mai. 2015, 18:15 Uhr
Sleepy verwirrt halt gern die Leute ^^

Wie gesagt, wenn ein Objekt statisch markiert ist dann heisst das nur dass sich dieses Objekt im Level nicht bewegt. Sobald du das als statisch markierst lässt sich das Objekt zum Beispiel nicht mehr über Transformcode bewegen. Statisch bedeutet auch dass das Objekt eine Lightmap haben kann. Nur ein als statisch markiertes Objekt wird beim Lightmap Baken berücksichtigt. Und seit Unity 5 bedeutet es das dieses Objekt auch Realtime GI kann. Statische und dynamische Grafik wird einfach unterschiedlich berechnet.

Alle Grafik geht über die Grafikkarte. Physikalische Berechnungen gehen über PhysX. Das hat aber nichts mit statisch oder dynamisch zu tun. Sondern ob da ein Collider dranhängt und tatsächlich Physik berechnet werden muss. Und Shader gehören da auch nicht dazu. Auch wenn da das Wort Physikalisch in einem PBR Shader vorkommmt.

längliche "lichtaussendungsstelle"


Hmm, wie gesagt, das mit dem Einfärben von dynamischen Objekten ala GI soll mit einer Lightprobe gehen. Bevor du also nach den Lichtarten schaust würde ich mir erst mal das mit den Lightprobes ansehen. Das habe ich aber noch nie gemacht. Das weiss ich selber nicht wie das geht. In der Free gab es ja damals kein Deferred Rendering. Und in Unity 5 habe ich das noch nicht probiert.

Die einzige Lichtquelle die parallele Strahlen aussendet und kein Falloff hat ist das Directional Light. Das verwendet man für Sonne. Für dein selbstleuchtendes Objekt bliebe also nur eins der anderen Lichter übrig. Probiers halt aus was die gewünschte Wirkung erzielt.

Spotlights mit Cookies wäre mal ein Anfang smile
 
SleepySa. 09 Mai. 2015, 18:44 Uhr
Ja okay aber es geht doch um die Performance ob static oder nicht static.

Die frage war doch:
warum muss alles (inkl. des Objektes selbst) als static markiert sein, um von der GI berechnet zu werden


Weitere Infos hab ich auch hier gefunden:
http://docs.unity3d.com/Manual/DrawCallBatching.html
 
TilesSa. 09 Mai. 2015, 18:50 Uhr
Ja richtig, die Frage war wieso man das als Static markieren muss. Und die Antwort ist weil für dynamische Objekte keine GI gebacken werden kann. Weil die eben anders berechnet werden.

Das hat aber nichts mit Performance oder PhysX zu tun. Und mit dem Drawcall Batching auch nicht ^^
 
khaosSa. 09 Mai. 2015, 18:55 Uhr
Yarp
 
GuyGoodSa. 09 Mai. 2015, 20:10 Uhr
@Sleepy: Ja, die Antwort hatte generell schon Tiles gegeben und sie widerspricht deiner Aussage entsprechend.

Static = Unbeweglich. Und da die hier besprochene GI-Variante mit Lightmaps arbeitet, würden gebackene Schatten beispielsweise sichtbar werden, wenn man ein gebackenes Objekt von seiner Stelle bewegen würde. Da es aber auch statisch ist und unbeweglich, wird für das Objekt selbst keine Rechenkraft direkt für PhysiX benötigt, nur wenn ein dynamisches, mit physix-simuliertes Objekt mit dem statischen Objekt kollidieren würde eventuell, aber das gleitet jetzt in theoretisches, viel zu detailliertes BlaBla ab. Generell sind statische Objekte aber vom Rechenaufwand am schnellsten zu verarbeiten etc.

Und da sowohl statische als auch dynamische Objekte irgendwie gerendert werden müssen, muss die Grafikkarte sowieso in irgendeiner Form die Darstellung übernehmen. Nur dass eben statische Objekte in einer anderen Liste sind und wahrscheinlich zu einem anderen Zeitpunkt durch die Grafikkarte verarbeitet und dargestellt werden. Und ja, für dynamische Objekte wäre der Rechenaufwand größer. Und demzufolge ist deine Aussage vollkommen falsch und du verdrehst alles ein wenig. Und das hatte Tiles auch eben so schon nach dir richtiggestellt.

Ich hoffe aber, dass die Sache jetzt ein wenig klarer ist. Und tut mir Leid, ich weiß ja dass wir in der Vergangenheit Differenzen hatten, aber meine Antwort war nicht bösartig gemeint! Ich dachte einfach nur, dass du durch die Antwort von Tiles verstanden hast, dass deine vage Aussage nicht korrekt war. Entschuldige bitte! Und dann wollte ich einfach anmerken, dass es eventuell besser wäre, deine Aussage zu Löschen, damit nicht noch mehr Unklarheiten aufkommen.
 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006