Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 26.

Werbeanzeige

17.04.2013, 22:30

Forenbeitrag von: »mark93«

Speicheraufwand von Shadow-Maps (Deferred)

Es sollte natürlich nicht der Default-Weg sein, wenn Lichter zu dutzenden allerdings für eine gewisse Atmosphäre platziert werden sollten, müsste man dort Abstriche machen. In wie weit dies Anwendung finden wird, wird sich zeigen da bin ich nur "Technologie-Lieferant" . Ja ich plane in die Richtung ESM (logarithmisch) ähnlich wie es Crytek auch macht, etwas zu basteln. Ich verwenden aktuelle für das Filtern der Schatten der Sonne (CSM) Poisson Disk Filtering. Das Filtern für die "normalen" Maps ...

15.04.2013, 13:20

Forenbeitrag von: »mark93«

Speicheraufwand von Shadow-Maps (Deferred)

Vielen Dank für die Resonanz, Ich selbst habe leider wenig Erfahrung und Wissen mit der heutigen Hardware, deshalb meine Frage dazu. Aus den Antworten kann ich aber rauslesen, dass der Speicheraufwand zu vernachlässigen ist. Zu der Frage nach dem Performance-Gewinn: Ich unterscheide natürlich zwischen dynamischen und statischen Objekten, die beide schön gesplittet in verschieden Queues liegen zum einfachen Culling. Deine Idee (Schrompf) führt ein bisschen darüber hinaus was ich mir vorgestellt h...

14.04.2013, 19:55

Forenbeitrag von: »mark93«

Speicheraufwand von Shadow-Maps (Deferred)

Guten Abend, ich habe eine eher spezielle Frage zu dem Speicheraufwand von Shadow-Maps in einer "Deferred-Shading"-Umgebung. Dafür will ich kurz das Grundgerüst der Beleuchtungs-Pipe darlegen: Quellcode 1 2 3 4 fill GBuffer (forward rendering) for each light do render Shadow-Map (in case the light casts shadows) render light volume and lit Dies hat den Vorteil, dass ich für jedes Licht die gleiche ShadowMap nutzen kann (sofern der Lichttyp es zulässt). Leider geht es gerade bei Point-Lights auf ...

21.12.2012, 21:53

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

Möchte dann mal einen Screen nachreichen. Um das ganze Standalone zu testen, habe mich mir nicht die Mühe gemacht, das ganze auf HDR und Linear-Rendering Basis zu machen. Ebeneso ist FXAA nicht aktiviert. Mans sieht die "smoothen" -Übergänge denke ich sehr gut. Die einzige Frage die sich mir noch stellt, sind woher die Ringe kommen? Können die durch die Float-Genauigkeit kommen? Die sieht man auf jeden Fall mit Textur+NormalMap nicht mehr (siehe kiste) . https://www.spieleprogrammierer.de/index…...

21.12.2012, 15:00

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

Alles klar ich danke dir .

19.12.2012, 21:54

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

Ich glaube schon, dass wir etwas aneiannder vorbei reden, ist ja nicht bös gemeint . Ich weiß nicht was richtig oder "physikalisch" korrekter ist. Ich stelle deine These auch gar nicht selbst in Frage. Ich habe nur festhalten wollen, dass es da durchaus andere Meinungen zu gibt. Wenn in der "Valve-Wiki" steht es gibt lineare Faktoren wegen "atmospheric scattering", dann ist das aus meiner Sicht genauso plausibel, wie wenn du schreibst, dass ist Quatsch. Ich weiß doch nicht was stimmt . Ich weiß ...

19.12.2012, 18:18

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

Ich glaube wir reden da aneinander vorbei. Zitat von »mark93« Denn die Lichtberechnung folgt ja dem simplen Muster: col = calculatedCol * intensity * attenuation. calculatedCol sei die berechnete Diffuse- und Specular- Farbe. Die Intensity gibt die Stärke des Lichts generell an. Bei einer Intensity von 2 sind die Farbwerte also doppelt so hoch wie bei einer Intensity von 1. Die Attenuation gibt ja einfach nru den Faktor an um den die Intensität dann abnimmt. Wenn ich nun aber a=1 b=c=0 wählen hä...

18.12.2012, 17:56

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

moin, Zitat von »Schrompf« Zum Lichtquellen-Radius: Du brauchst absurd niedrige Cutoff-Helligkeiten, wenn Du gammakorrekte Beleuchtung oder gar HDR benutzt. Ansonsten siehst Du permanent die Kanten von Lichtquellen, vor allem bei bewegten Lichtquellen sehr hässlich. Ich empfehle Dir stattdessen, die Attenuation anders zu berechnen. Nimm einen komplett linearen Falloff, oder ziehe die Cutoff-Helligkeit bereits in der Attenuation ab, so dass diese sauber bei 0 endet. Also Threshold statisch von c ...

17.12.2012, 16:15

Forenbeitrag von: »mark93«

Pointlight: Radius berechnen

Moin, ich beschäftige mich momentan mit Deferred Lighting. Klappt auch alles wunderbar soweit, nun bin ich gerade aber am Userhandling dran. Aktuell ist es so, dass ich den Radius der Pointlight-Meshs dynamisch nach den Attenuation Angaben rendere. Meine Attenuation bestimmt sich durch f(x)=1/g(x) ; g(x)=ax²+bx+c. Logischerweise hat f(x) keine Nullstellen für x>0, bei sinnvoll gewählten a,b,c! Deshalb definiere ich mir eine Grenze bspw. threshold=25.6 (bedeutet für die Funktion f(x) die Grenze 1...

24.11.2012, 01:15

Forenbeitrag von: »mark93«

Tangent-Space -> Camera-/View-Space

Vielen Dank für den Link und für deine Erklärung @dot. Hat mir sehr beim Verständnis geholfen .

22.11.2012, 20:44

Forenbeitrag von: »mark93«

Tangent-Space -> Camera-/View-Space

Hallo zusammen, ich habe diesmal eine Frage mathematischer Natur. Ich habe bisher meine Lichtberechnung im Tangent-Space vollzogen. Dazu habe ich die nötigen Vektoren in den Tangent-Space gebracht. Dies geht bekanntlich mit Hilfe der TBN Matrix: HLSL-Quelltext 1 2 float3 binormal = cross(normal,tangent); float3x3 tbnMat= float3x3(tangent, binormal, normal); Anschließend berechne ich bspw. : HLSL-Quelltext 1 lightDir = mul(tbnMat, lightDir); Ich verwende CG (kein HLSL!), d.h. diese Funktion: http...

07.11.2012, 17:47

Forenbeitrag von: »mark93«

2D-Engine für Android und das NDK

@Moe: Danke für deine Einschätzung, ich würde aber doch schon sehr gerne bei C++ bleiben und nicht auf LUA ausweichen. Mit "skalieren" meine ich wie praktikabel bleibt das NDK, wenn ich wirklich 2D-Apps schreiben will. Denn klar bei ner kleinen "Klicki-Bunti-GUI-App" hält sich der Aufwand noch in Grenzen, doch wie nutzbar wird es bei Apps, die einen etwas "höheren" Funktionsgrad haben? Was C++ so an Features hat ist mir bewusst, bin ja C++ Entwickler und mag kein Java . @Thoran: Ja ich bin mir n...

06.11.2012, 17:30

Forenbeitrag von: »mark93«

2D-Engine für Android und das NDK

Hallo, ich habe beschlossen demnächst in die Android-App Entwicklung einzusteigen, würde dafür allerdings vorher ein paar Erfahrungen hören. Ich habe bisher nur für Desktop-PCs als Ziel-Plattform entwickelt und das in C++. Nun bietet Android für native Entwickler ja neben dem SDK auch das NDK an. Ich habe bisher nur ein paar Samples damit erstellt, vor allem um den Workflow vernünftig zu gestalten. Was mich jetzt interessiert, gibt es unter euch Entwickler, die bereits Projekte mit dem NDK umges...

03.10.2012, 13:57

Forenbeitrag von: »mark93«

Gamma Correction

Ahh alles klar. Vielen Dank für deine Erklärung! Denke habe es jetzt verstanden. Danke natürlich auch an die anderen, für die ganzen Antworten.

03.10.2012, 12:11

Forenbeitrag von: »mark93«

Gamma Correction

@dot: Deinen letzten Satz habe ich leider noch nicht verstanden. Warum hebt man denn die "gamma-Funktion" des Monitors durch die Inverse auf, sodass das Image linear dargestellt wird, wenn die menschliche Wahrnehmung gar nicht erst linear ist? @Jonathan Klein: Jap das ist mir bekannt, ich wollte es nur in meinen Posts etwas vereinfachen. Die power-Funktion ist dafür auch alleine ungeeignet. Nähere Infos gibt es dazu hier: http://content.gpwiki.org/index.php/D3DB…s#Gamma_Control

02.10.2012, 17:58

Forenbeitrag von: »mark93«

Gamma Correction

Neuer Tag, neues Glück. Habe mir nochmal verschiedenste Quellen durchgelesen. Werde jetzt mal ne kleine Zusammenfassung von meinen Erkenntnissen geben: Die Gamma-Regelung stammt noch aus der Zeit der CRTs ist aber auch in heutige LCDs übernommen. Viele Monitore haben einen Gamma-Wert von 2.2. Die allgemeien Regel lautet: Quellcode 1 output = input^gamma Der Monitor wendet dies aktiv an! Bedeuted im Schnitt, dass jeden Pixel den ich an den Monitor sende hoch 2.2 genomen wird. Allein das warum, da...

01.10.2012, 22:47

Forenbeitrag von: »mark93«

Gamma Correction

Ich habs dir mal eben aufgemalt: index.php?page=Attachment&attachmentID=1302 EDIT: Habe ein paar Klammern entfernt, falls sie dich verwirrt haben.

01.10.2012, 22:40

Forenbeitrag von: »mark93«

Gamma Correction

Zitat Wenn du einmal mit einer linearen Pipeline gearbeitet hast und den Unterschied mit eigenen Augen gesehen hast, wirst du dich fragen, wie du das all die Zeit nur ignorieren konntest. Geht mir manchmal sogar immer noch so... Das stimmt wohl, wobei ich lineares Rendering schon sehr lange nutze, nur habe ich da immer auf die automatsiche Gamma Correction gesetzt . Ich stehe scheinbar noch sehr aufm Schlauch. Also ich ja in dem Bild oben folgende 3-Funktionen: f(x) = x; g(x) = x^(2.2) (unter F...

01.10.2012, 22:10

Forenbeitrag von: »mark93«

Gamma Correction

Vielen Dank für deine Antwort! Deine Antworten zu 3) und 5) erschließen sich mir ncoh nicht ganz. Meine normalen 8-bit-pro-Channel Texturen sind also im sRGB-Farbraum. Das repräsentiert ja die untere Kurve. Um nun vom linearen raum zu der unteren Kurve zu kommen muss ich pow(tex, 2.2) machen. Die untere Funktion ist ja als f(x) = x^(2.2) definiert. Die Umkehrfunktion wäre dementsprechend ja pow(tex,1.0f/2.2f): Quellcode 1 tex = pow(pow(tex,2.2f),1.0f/2.2f) Am Ende will ich ja meine Ergebnisse di...

01.10.2012, 21:41

Forenbeitrag von: »mark93«

Gamma Correction

Moin, ich konnte mich bisher erfolgreich um das Verstandnis von Gamma Correction drücken, weil es bisher out-of-the-box funktioniert hat. Jetzt ist allerdings der Zeitpunkt gekommen, wo es nötig wird. Zu beginn erstmal folgendes Bild auf, dass ich mich später beziehen werde: <!--splitLinkBegin--><!--splitLinkEnd--><!--noLinkBegin-->ExternesOriginalbildanzeigen(Link)<!--noLinkEnd--> Ich benutze eine Render-Pipeline wo es nötig wird in "linear space" zu rendern. Die Texturen die ich nutze sind nat...

Werbeanzeige