<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shader on Feynman's Blog</title><link>/en/tags/shader/</link><description>Recent content in Shader on Feynman's Blog</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 31 Aug 2026 12:00:00 +0800</lastBuildDate><atom:link href="/en/tags/shader/index.xml" rel="self" type="application/rss+xml"/><item><title>12 | Noise Functions</title><link>/en/posts/threejs-noise/</link><pubDate>Mon, 31 Aug 2026 12:00:00 +0800</pubDate><guid>/en/posts/threejs-noise/</guid><description>&lt;blockquote class="blockquote-regular"&gt;
 &lt;p&gt;In the previous lesson, we used GLSL math functions to draw shapes and gradients. This lesson enters the &amp;ldquo;soul tool&amp;rdquo; of shaders — noise functions: from random&amp;rsquo;s snow to Perlin&amp;rsquo;s continuous clouds, from single-layer noise to FBM&amp;rsquo;s fractal detail, ultimately driving clouds, terrain, fire, and vertex deformation.&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="/images/2026-07-07_series_threejs-creation-diary/12_noise/demo.gif" alt="Running effect: Noise function demo"&gt;&lt;/p&gt;
&lt;h2 id="01-learning-objectives"&gt;01 Learning Objectives&lt;/h2&gt;
&lt;p&gt;This lesson focuses on noise function principles and practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the core differences between Perlin Noise and Simplex Noise&lt;/li&gt;
&lt;li&gt;Master FBM (Fractal Brownian Motion) principles and applications&lt;/li&gt;
&lt;li&gt;Learn to create organic effects with noise (clouds, terrain, fire)&lt;/li&gt;
&lt;li&gt;Understand vertex deformation using noise in vertex shaders&lt;/li&gt;
&lt;li&gt;Master two ways to animate noise (moving sample point / changing frequency)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="02-what-is-noise--continuous-pseudorandom-function"&gt;02 What Is Noise — Continuous Pseudorandom Function&lt;/h2&gt;
&lt;p&gt;Noise is a &lt;strong&gt;continuous pseudorandom function&lt;/strong&gt;: neighboring points have similar values, but the overall pattern appears random.&lt;/p&gt;</description></item><item><title>11 | GLSL Math Functions</title><link>/en/posts/threejs-glsl-math/</link><pubDate>Tue, 25 Aug 2026 12:00:00 +0800</pubDate><guid>/en/posts/threejs-glsl-math/</guid><description>&lt;blockquote class="blockquote-regular"&gt;
 &lt;p&gt;Last lesson covered GLSL basics and ShaderMaterial data channels. This lesson dives deep into math functions — mix / step / smoothstep for gradients and boundaries, sin / cos for waves, dot / cross for lighting and Fresnel, fract / mod for repeating patterns. These functions form the core toolchain from &amp;ldquo;a UV coordinate&amp;rdquo; to &amp;ldquo;a final image&amp;rdquo;.&lt;/p&gt;

&lt;/blockquote&gt;
&lt;h2 id="01-learning-objectives"&gt;01 Learning Objectives&lt;/h2&gt;
&lt;p&gt;This lesson focuses on practical applications of GLSL math functions:&lt;/p&gt;</description></item><item><title>10 | GLSL Basics</title><link>/en/posts/threejs-glsl/</link><pubDate>Sat, 15 Aug 2026 12:00:00 +0800</pubDate><guid>/en/posts/threejs-glsl/</guid><description>&lt;blockquote class="blockquote-regular"&gt;
 &lt;p&gt;The first 9 lessons all used Three.js built-in materials (MeshStandardMaterial, MeshBasicMaterial&amp;hellip;). This lesson starts writing custom shaders — talking to the GPU directly with GLSL, so gradients, waves, and Fresnel effects are generated entirely by code instead of built-in material presets.&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="/images/2026-07-07_series_threejs-creation-diary/10_glsl/demo.png" alt="Demo: GLSL basics (gradient sphere, Fresnel rim-glow sphere, Raw sphere, wave floor, live parameter panel)"&gt;&lt;/p&gt;
&lt;h2 id="01-learning-objectives"&gt;01 Learning Objectives&lt;/h2&gt;
&lt;p&gt;This lesson focuses on GLSL shader programming fundamentals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the structure and execution flow of Vertex / Fragment Shaders&lt;/li&gt;
&lt;li&gt;Master the roles of &lt;code&gt;gl_Position&lt;/code&gt; / &lt;code&gt;gl_FragColor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Distinguish the three variable types: &lt;code&gt;attribute&lt;/code&gt; / &lt;code&gt;uniform&lt;/code&gt; / &lt;code&gt;varying&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Understand &lt;code&gt;ShaderMaterial&lt;/code&gt; vs &lt;code&gt;RawShaderMaterial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Master coordinate transformations (model → world → view → clip)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="02-glsl-basic-syntax"&gt;02 GLSL Basic Syntax&lt;/h2&gt;
&lt;p&gt;GLSL is a C-style shading language, slightly different from JS/TS. First, the most common &amp;ldquo;parts&amp;rdquo;.&lt;/p&gt;</description></item></channel></rss>