GLSL ist die OpenGL-Schattierungssprache. Verwenden Sie dieses Tag für Fragen, die sich speziell auf Shader beziehen, die in dieser Sprache geschrieben wurden. Verwenden Sie für allgemeine Shader-Fragen stattdessen [Shader].
Beim Schreiben nicht-trivialer Shader (genau wie beim Schreiben eines anderen nicht-trivialen Codes) machen die Leute Fehler. [Bearbeiten] Ich kann aber nicht einfach debuggen wie jeder andere Code - Sie können nicht nur gdb anhängen oder das Visual Studio - Debugger , nachdem alle. Sie können nicht einmal printf debuggen, da …
Ich finde mich oft dabei, Code zwischen mehreren Shadern einzufügen. Dies umfasst sowohl bestimmte Berechnungen oder Daten, die von allen Shadern in einer einzelnen Pipeline gemeinsam genutzt werden, als auch allgemeine Berechnungen, die alle meine Vertex-Shader benötigen (oder eine andere Phase). Das ist natürlich eine schreckliche Praxis: Wenn ich den …
Ich habe versucht, Perlin Noise selbst zu implementieren, indem ich nur die Theorie verwendet habe (folgt flafla2.github.io/2014/08/09/perlinnoise.html). Leider konnte ich den Look des "originalen" Perlin Noise nicht erreichen. Was ist der Grund, warum der folgende Code eine blockartige Version von Perlin Noise darstellt? Was muss ich im Code verbessern / …
Ich entdecke die wundervolle Welt der Mathematik und stoße mit PBR und Benennung auf eine riesige Mauer. Daher habe ich ein paar Fragen: Soweit ich weiß, beschreibt BRDF, wie ein Material auf Licht reagiert (eingehendes direktes Licht und Reflexionen). Aber in "Cook-Torrance" sehe ich nichts über Reflexionen. Ich verstehe nicht, …
In GLSL ist die perspektivisch korrekte Interpolation von Scheitelpunktattributen die Standardeinstellung. Sie kann sie für bestimmte Scheitelpunktattribute mithilfe des nicht- perspektivischen Qualifikationsmerkmals deaktivieren . Abgesehen von Nachbearbeitungs-Shadern habe ich die perspektivisch korrekte Interpolation noch nie deaktiviert gesehen - gibt es andere Anwendungsfälle? Macht es überhaupt einen Unterschied in Bezug auf …
Ich bin neu in Shadern und weiß, dass Sie mit gl_FragColor Pixel färben können, aber manchmal gibt es Folgendes: vec2 uv = gl_FragCoord.xy / screenSize; // or resolution or smthn depends on the implementation Wenn gl_FragCoord wie Pixelkoordinaten ist, was bekommt UV ? Warum wird es oft in GLSL gemacht? …
Ich frage mich, wie ich eine dynamische Schleifenfunktion am besten in einen Shader integrieren kann. Erstens scheinen dynamische Arrays nicht möglich zu sein. Ist es also besser, ein Array mit maximaler Größe zu erstellen und nur einen Teil davon zu füllen oder Arrays mit vordefinierten Größen zu definieren? Was ist …
Das Rendern der Szene umfasst normalerweise mehr als ein Shader-Programm, das in meinem Fall alle dieselben Attribute verwenden und zumindest einige der Uniformen gemeinsam nutzen. Damit sie richtig funktionieren, gehe ich derzeit auf Nummer sicher, dh ich binde die Attribute neu und erhalte bei jedem Wechsel zwischen Shader-Programmen die entsprechenden …
Wenn Sie Texturen in GLSL verwenden, berechnen Sie am besten die endgültigen Texturkoordinaten im Vertex-Shader und übergeben Sie sie mit varyings an den Fragment-Shader . Beispiel mit einem einfachen Umdrehen der y-Koordinate: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, …
Zunächst möchte ich sagen, dass ich viel über Schattenmapping mit Tiefenkarten und Cubemaps gelesen habe und verstehe, wie sie funktionieren. Außerdem habe ich Berufserfahrung mit OpenGL, aber ich habe ein Problem bei der Implementierung Omnidirektionale Schattenkartierungstechnik unter Verwendung einer Einzelpunktlichtquelle in meiner 3D-Grafik-Engine namens "EZ3". Meine Engine verwendet WebGL als …
Ich versuche, ein Mikrofacetten-BRDF-Modell zu implementieren. Ich lese Sebastien Lagardes Folien . Ich habe Formeln in meinen Code implementiert, aber ich denke, das Ergebnisbild ist falsch. Gelb ist die Grundfarbe des Materials. Die Spiegelfarbe ist rot, um richtig zu sehen. Mein Code: // Fragment Shader #version 330 core in vec3 …
Ich erstelle einen Renderer mit modernem OpenGL (3.1 und höher) und versuche jetzt, eine effiziente, aber flexible Methode für den Umgang mit Uniformen zu erstellen. Ich habe mich über einheitliche Pufferobjekte informiert und darüber, wie diese häufig verwendet werden (letzteres hat mir leider nicht so viele Ergebnisse gebracht, wie ich …
Ich habe mit Schattenzuordnung in OpenGL unter Verwendung von Tiefenstrukturen herumgespielt. Die Tiefenstruktur ist in Ordnung und ich kann sie auf die Szene abbilden, aber ich habe einige seltsame Artefakte auf der Rückseite des Objekts: Meine Frage ist, was dies verursacht und wie ich es beheben kann. Der Fragment-Shader, den …
Ich würde gerne wissen, ob sich die Leistung auf die Struktur meiner Shader-Uniformen auswirkt. Ist das Übergeben von 4 Floats beispielsweise schlechter als das Übergeben eines einzelnen vec4?
Ich benutze Phong Shading als mein Beleuchtungsmodell. Trotzdem erzeugt die Spiegelschattierung Gradienten im Lichtkegel: Hoffentlich können Sie sehen, dass sich der Gradient von der unteren linken Ecke entlang des Quaders ausdehnt. Hier ist der Shader-Code, der dieses spiegelnde Licht erzeugt: vec3 viewDir = normalize(-FragPos); vec3 lightDir = normalize(-light.direction); vec3 reflectDir …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.