Suchergebnisse
Suchergebnisse 1-20 von insgesamt 26.
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 ...
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...
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 ...
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…...
Alles klar ich danke dir .
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ß ...
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ä...
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 ...
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...
Vielen Dank für den Link und für deine Erklärung @dot. Hat mir sehr beim Verständnis geholfen .
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...
@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...
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...
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.
@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
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...
Ich habs dir mal eben aufgemalt: index.php?page=Attachment&attachmentID=1302 EDIT: Habe ein paar Klammern entfernt, falls sie dich verwirrt haben.
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...
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...
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...