Beispielcode für den Einstieg in den GLSL-Shader in Processing (entweder Java oder Python)

Einführung

Sie können Fragment-Shader mit Processing ausführen, einem Tool, mit dem selbst Anfänger problemlos beginnen können. Sie können in Java oder Python schreiben.

Ausführungsbildschirm

Links Java-Code und rechts Python-Code. processing_shader2.jpg

Wenn Sie in Java schreiben möchten

Implementierung

Legen Sie zunächst das Programm, das den Inhalt des Shaders geschrieben hat, in den Datenordner.

data/FragmentShader.glsl



uniform vec2 resolution;
uniform float time;

void main() {
    vec2 uv = -1. + 2. * gl_FragCoord.xy / resolution.xy;
    gl_FragColor = vec4(
                        abs( sin( cos( time + 3. * uv.y ) * 2. * uv.x + time)),
                        abs( cos( sin( time + 2. * uv.x ) * 3. * uv.y + time)),
                        1.0,
                        1.0);
}

Schreiben Sie Folgendes in das Hauptprogramm Verarbeitung. Geben Sie einfach FragmentShader.glsl und den Dateinamen an und es wird im Datenordner gesucht.

PShader sd;
 
void setup() {
  size(600, 600, P2D);
  sd = loadShader("FragmentShader.glsl");
}
 
void draw() {
  sd.set("time", millis() / 1000.0);
  sd.set("resolution", (float)width, (float)height);  
  shader(sd);
  rect(0, 0, width, height);
}

Wenn Sie in Python schreiben möchten

Installation im Python-Modus

Standardmäßig kann nur Java als Spracheinstellung oben rechts ausgewählt werden. Sie können den Python-Modus einfach hinzufügen.

(Dieser Link ist mit einem Bild leicht zu verstehen) https://pycarnival.com/processingpy1/

Implementierung

Fügen Sie auf die gleiche Weise genau dieselbe Shader-Datei wie in Java in den Datenordner ein

data/FragmentShader.glsl



uniform vec2 resolution;
uniform float time;

void main() {
    vec2 uv = -1. + 2. * gl_FragCoord.xy / resolution.xy;
    gl_FragColor = vec4(
                        abs( sin( cos( time + 3. * uv.y ) * 2. * uv.x + time)),
                        abs( cos( sin( time + 2. * uv.x ) * 3. * uv.y + time)),
                        1.0,
                        1.0);
}

Schreiben Sie Folgendes in das Hauptprogramm Verarbeitung. Durch Deklarieren einer Variablen in global sd kann auf dasselbe Shader-Objekt sowohl von der Setup-Funktion als auch von der Draw-Funktion verwiesen werden.

def setup():
    global sd
    size(600, 600, P2D)
    sd = loadShader("FragmentShader.glsl")
 
def draw():
    global sd
    sd.set("time", millis() / 1000.0)
    sd.set("resolution", float(width), float(height))  
    shader(sd)
    rect(0, 0, width, height)

Lassen Sie uns nun GLSL in Java und Python mit Processing genießen!

Recommended Posts

Beispielcode für den Einstieg in den GLSL-Shader in Processing (entweder Java oder Python)
Erste Schritte mit Python
Beginnen Sie mit Python mit Blender
Beginnen wir mit TopCoder in Python (Version 2020)
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Zubu Amateur will Python starten
5 Gründe, warum die Verarbeitung für diejenigen nützlich ist, die mit Python beginnen möchten
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Super Primer für Python-Erste Schritte mit Python3.5 in 3 Minuten
Nehmen Sie Kontakt mit der funktionalen Programmierung in JavaScript oder Python 3 auf
Holen Sie sich den Ländercode mit Python
Beginnen Sie mit Python! ~ ② Grammatik ~
Mindestkenntnisse, um mit dem Python-Protokollierungsmodul zu beginnen
Senden Sie Push-Benachrichtigungen mit Python2 an iOS-Apps (mit Beispielcode).
Beginnen Sie mit Python! ~ ① Umweltbau ~
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Wie fange ich mit Scrapy an?
Wie fange ich mit Django an?
Beispielcode-Zusammenfassung für die parallele / parallele Python-Verarbeitung
[Python] Um mit Python zu beginnen, müssen Sie zunächst sicherstellen, dass Sie Python ordnungsgemäß verwenden können.
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Beginnen Sie in 30 Minuten mit Python! Erstellen Sie eine Entwicklungsumgebung und lernen Sie grundlegende Grammatik
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Schritt Notizen, um mit Django zu beginnen
Versuchen Sie, sich mit Python bei qiita anzumelden
Express Python-Ertrag in JavaScript oder Java
Ich habe versucht, mit Hy anzufangen
Beispielskript zum Überfüllen von Signalen in Python
So arbeiten Sie mit BigQuery in Python
Wie bekomme ich Stacktrace in Python?
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
So betreiben Sie die Zeitstempelstation in Python
Ruft die EDINET-Codeliste in Python ab
Wie Python-Anfänger mit Progete beginnen
Beispiel für die Wavelet-Konvertierung von Bildern in Python
[Blender x Python] Beginnen wir mit Blender Python !!
So generieren Sie QR-Code und Barcode in Python und lesen ihn normal oder in Echtzeit mit OpenCV
So starten Sie das Python-Projekt im Jahr 2020 (Windows WSL und Mac Common)
Für diejenigen, die Excel VBA lernen und mit Python beginnen möchten
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
Python-Handspiel (Beginnen wir mit AtCoder?)
MessagePack-Versuchen Sie, Java und Python mit RPC zu verbinden
Der einfachste Weg, um mit Django zu beginnen
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
Strategie zur Monetarisierung mit Python Java
MongoDB-Grundlagen: Erste Schritte mit CRUD mit JAVA
Einführung in Tornado (1): Python Web Framework mit Tornado gestartet
Persönliche Notizen zum Dokumentieren von Python-Code in Sphinx
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
Abrufen von Zeigern auf Strukturelemente in Python-ctypes
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
So erhalten Sie die Dateien im Ordner [Python]
Wie man tkinter mit Python in Pyenv benutzt
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Erste Schritte mit AWS IoT in Python
Parallele Verarbeitung ohne tiefe Bedeutung in Python