惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
罗磊的独立博客
小众软件
小众软件
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
博客园_首页
N
Netflix TechBlog - Medium
B
Blog
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
L
LangChain Blog
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
博客园 - 【当耐特】

博客园 - xgqfrms

xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs xgqfrms, cnblogs, blogs Remotion Video Maker All In One git worktree All In One Tesla 的车机使用什么技术来渲染汽车模型的? 宜家 VEVELSTAD 维维斯托床架 All In One macOS sysmond bug All In One Three.js All In One The COF of LCD Monitor All In One Dell 显示器 S2419HM 灰屏 &花屏 All In One AI Harness Engineering All In One 电脑外接显示器天梯榜 All In One
xgqfrms, cnblogs, blogs
xgqfrms · 2026-06-17 · via 博客园 - xgqfrms

Three.js Shading Language All In One

TSL / Three.js 着色语言

image

TSL

在 Three.js 中,TSL 是 Three.js Shading Language(Three.js 着色语言)的缩写。它是一种基于节点(Node-based)的高级抽象语言,专门用于在 JavaScript/TypeScript 中编写自定义着色器(Shaders)。

TSL 的核心优势与特性

  1. 统一跨平台输出:
    TSL 是渲染器无关的。你编写的同一套 TSL 代码,会在运行时被自动编译并转译成目标图形 API 所需的代码:
  • 在 WebGL 环境下转译为 GLSL
  • 在 WebGPU 环境下转译为 WGSL
  1. 无需脱机编写 Shader:
    传统的自定义着色器需要将 GLSL 字符串硬编码在 JS 文件中,缺乏代码提示和高亮。
    TSL 让你可以直接在 JS/TypeScript 中书写着色逻辑,享受类型检查自动补全(IntelliSense)等完整的 IDE 支持。
  2. 强大的模块化与组合性:
    它采用节点系统,可以像搭建积木一样,将数学运算、颜色混合、纹理采样等功能模块组合起来
import { meshStandardMaterial, texture, time, vec2 } from 'three/TSL';

// 使用 TSL 节点来计算材质的颜色和缩放
const baseTexture = texture( myTexture );
const animatedTexture = baseTexture.uv.add( vec2( time, 0 ) ); // 让纹理坐标随时间移动

const material = meshStandardMaterial({
    color: animatedTexture // 将节点直接赋值给颜色属性
});


Three.js TSL 教程与示例 - 深入学习着色器语言

https://www.goodtsl.com/zh-CN

https://www.goodtsl.com/en/learnTSL/r3f-quickstart

基于 Node 的用于 Three.js 着色器的编辑器

https://www.tsl-graph.xyz/

demos

OpenGL Shading Language

GLSL / OpenGL 着色语言

https://github.com/KhronosGroup/glsl

GLSL 着色器

https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_on_the_web/GLSL_Shaders

OpenGL ES 2.0 => WebGL

OpenGL ES 3.0 => WebGL 2

https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API

npm package.json exports

https://docs.npmjs.com/cli/v11/configuring-npm/package-json#exports

https://chatgpt.com/c/6a3168a8-41b0-83ea-85cd-4eb9fa99f54f

refs



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!