Was w?rde in GLBasic noch Sinn machen ? (Sammelthread!)

Previous topic - Next topic

Sebe

Realtime Shadowmapping würde Sinn machen. Ist nämlich sehr viel schneller als Stencil Shadowing, die Schatten können addiert werden und mittels blurring sieht das ganze dann auch noch sehr viel natürlicher aus als Stencilshadowing.

Schranz0r

Kannst du mir erklären wieso diese Realtime schneller ist?
Also in den meisten Fällen, wenn man Realtime hört, saugt das ja massig Leistung!
Wenn ich da lese ,das da noch Blur und Schattenüberlappung rein soll, hört sich das nach mehr recourcenverbrauch an!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Sebe

Erstmal ein grober Überblick über die 2 am häufigsten benutzten Schattentechniken derzeit: Shadow Volume (auch gerne als Stencil Shadows bezeichnet, durch Doom 3 populär geworden, wird von GLBasic benutzt) und Shadow Mapping.

Shadow Volume:
Wie der Name schon sagt handelt es sich hierbei um eine Technik, bei der von der Lichtquelle aus alle "Caster" ein "Shadow Volume" bilden. Quasi ein Schattenobjekt. Es gibt hier 2 bekannte Implementierungen, "Z-Pass" und "Z-Fail" (auch bekannt als Carmack's Reverse). "Z-Pass" ist die schnellere der beiden Implementierungen, hat aber den Nachteil, dass sie nicht besonders robust ist. Gerade wenn sich die Kamera in ein Shadow Volume begibt kann es zu unschönen Fehlern kommen. "Z-Fail" hat diese Probleme nicht, ist aber noch langsamer als "Z-Pass" und ausserdem von Creative patentiert (in den USA).
Vorteile:
- pixel-perfekte Schatten
Nachteile:
- je nach Implementierung kann die Berechnung der Shadow Volumes recht CPU intensiv sein
- speziell für konvexe Objekte als Caster kann die Füllzeit für die Shadow Volums enorm ansteigen
- es gibt 2 verschiedene Wege; der eine ist in den USA patentiert, ohne ihn machen Shadow Volumes aber kaum Sinn

Shadow Mapping:
Beim Shadow Mapping wird von der Lichtquelle aus eine Shadowmap erstellt. Diese Shadowmap wird dann über die ganze Szene geblendet.
Vorteile:
- viel schneller als Shadow Volumes, insbesondere wenn diese viel Füllzeit benötigen würden
- die Shadowmap kann vor dem überblenden verändert werden, z.B. kann man sie mit einer Unschärfefunktion bearbeite
- die Grösse der Shadowmap ist anpassbar, was die Technik auch auf schwächerer Hardware nutzbar macht
Nachteile:
- je niedriger die Auflösung der Shadowmap, desto mehr Aliasing tritt auf. Dieser Effekt ist auch als "Shadow Acne" bekannt.
- je höher die Auflösung der Shadowmap, desto mehr Videospeicher nimmt sie in Anspruch.

Links falls Interesse besteht: http://en.wikipedia.org/wiki/Shadow_mapping, http://en.wikipedia.org/wiki/Shadow_volume

Schranz0r

Hmm frag mich grade ob der Schatten nur in Windows funktioniert, oder auch auf einem GP2X(Der Aktuelle)
Weil wenn dieser schatten dann auf einem GP2X laufen würde, wär ja wie du sagtest, das Aliasing mehr.
Denke nicht das es auf 320 x 240 gut aussehen würde !?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Sebe

Das kommt natürlich auf das Verhältnis von Bildschirmauflösung zu Shadowmap Resolution an. Auf einem Bildschirm mit 320x240 dürfte eine Shadowmap mit 256x256 bereits sehr zufriedenstellend sein, 128x128 dürfte eigentlich auch noch ausreichen. Funktionieren denn Schatten derzeit auf dem GP2X? Wusste gar nicht, dass der nen Stencil Buffer hat.

Schranz0r

Ich hab keinen GP2X -.-
Sonnst hätte ich getestet ob der Funzt ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Sebe

Ich hab auch keinen. Ich wollte mir mal einen zulegen, aber damals gab es die GP2X Unterstützung von GLBasic noch nicht und jetzt ist die Kasse leer nach nem neuen PC, einer XBox 360 und nem Nintendo DS.

Schranz0r

Bei mir auch nach dem neuen PC ,Xbox 360 und nen IPod ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

trucidare

Mal als Anregung für die DLL-Export funktion... wie wär es wenn man die befehle aus der dll (x y muh) in die ide importiert. also das diese dann auch eingefärbt werden.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Kitty Hello

Ist mit den Parametern nicht so einfach. Hab ich mir auch schon oft gedacht, aber bei const char* ist schon feierabend.

D2O

HI,
mal wieder was zur IDE.
Wenn man ein Projekt macht, gibt es ja auch die möglichkeit über "Vorlage Datei" sich ein Template zu laden.
Hier wird aber nur die *.gbas beachtet/benutzt.
Besser wäre es doch auch wenn eine *.gbap unterstütz wird, oder?

Ich habe z.B. eine Standart.gbap wo auch meine CodeTemplate.gbas(enthält save, load, keyhit,...functionen von mir) mit eingebunden ist.
So muss ich das immer wieder extra neu einbinden.

Es ist zwar kein Beinbruch ;) , wäre aber schön wenn man sich sowas ersparen könnte.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Schranz0r

Entweder so, oder doch ein Includebefehl der sich die Dateien in den Ordner holt ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Hab ich auch schon überlegt. Problem ist, dass ich das dann alles rekursiv parsen müsste wegen der Autovervollständigung.

D2O

Gernot, mach Dir hier keinen Kopf, es geht ja auch so.
Es ist nur eine Komfort sache.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Sebe

OpenAL würde ich mir wünschen :)
Ansonsten nach wie vor Shadowmapping und öhm... Das wärs eigentlich. Mehr fällt mir beim besten Willen nicht ein, ausser einer nativen Mac Version und eben Unterstützung für so unter Linux und dylib unter OS X (was ja funktionieren sollte).