Webgpu Threejs Tsl

dgreenheck/webgpu-claude-skill/skills/webgpu-threejs-tsl

作者 dgreenheckaf2319bd01bb7cc881267a9ef42cafdaf5e9029d无许可证1.2K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库6个月前更新

Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.

AI 生成的概览

指导使用 TSL 节点着色器开发支持 WebGPU 的 Three.js 应用,并提供文档、示例与模板。

功能
提供参考文档与代码示例,用于基于 WebGPU 渲染器并使用 TSL(Three.js 着色语言)构建 Three.js 应用。内容涵盖渲染器初始化、节点材质、计算着色器、后处理效果、WGSL 集成、设备丢失处理以及设备限制。同时附带可执行示例脚本和项目、自定义材质、粒子与后处理的起步模板。
适用场景
适用于为 Three.js 配置 WebGPU 渲染器、用 TSL 编写自定义着色器材质、编写 GPU 计算着色器或搭建后处理管线。也用于将 GLSL 着色器迁移到 TSL,以及实现粒子、水面、地形等视觉效果。
运行要求
需要一个使用 three 包及其 WebGPU 入口与 TSL 模块的 JavaScript 项目,以及支持 WebGPU 的运行时或浏览器。附带可执行的示例与模板脚本;未说明需要凭据或网络访问。

WebGPU Three.js with TSL

TSL (Three.js Shading Language) is a node-based shader abstraction that lets you write GPU shaders in JavaScript instead of GLSL/WGSL strings.

Quick Start

javascript
import * as THREE from 'three/webgpu';import { color, time, oscSine } from 'three/tsl';
const renderer = new THREE.WebGPURenderer();await renderer.init();
const material = new THREE.MeshStandardNodeMaterial();material.colorNode = color(0xff0000).mul(oscSine(time));

Skill Contents

Documentation

  • docs/core-concepts.md - Types, operators, uniforms, control flow
  • docs/materials.md - Node materials and all properties
  • docs/compute-shaders.md - GPU compute with instanced arrays
  • docs/post-processing.md - Built-in and custom effects
  • docs/wgsl-integration.md - Custom WGSL functions
  • docs/device-loss.md - Handling GPU device loss and recovery
  • docs/limits-and-features.md - WebGPU device limits and optional features

Examples

  • examples/basic-setup.js - Minimal WebGPU project
  • examples/custom-material.js - Custom shader material
  • examples/particle-system.js - GPU compute particles
  • examples/post-processing.js - Effect pipeline
  • examples/earth-shader.js - Complete Earth with atmosphere

Templates

  • templates/webgpu-project.js - Starter project template
  • templates/compute-shader.js - Compute shader template

Reference

  • REFERENCE.md - Quick reference cheatsheet

Key Concepts

Import Pattern

javascript
// Always use the WebGPU entry pointimport * as THREE from 'three/webgpu';import { /* TSL functions */ } from 'three/tsl';

Node Materials

Replace standard material properties with TSL nodes:

javascript
material.colorNode = texture(map);        // instead of material.mapmaterial.roughnessNode = float(0.5);      // instead of material.roughnessmaterial.positionNode = displaced;         // vertex displacement

Method Chaining

TSL uses method chaining for operations:

javascript
// Instead of: sin(time * 2.0 + offset) * 0.5 + 0.5time.mul(2.0).add(offset).sin().mul(0.5).add(0.5)

Custom Functions

Use Fn() for reusable shader logic:

javascript
const fresnel = Fn(([power = 2.0]) => {  const nDotV = normalWorld.dot(viewDir).saturate();  return float(1.0).sub(nDotV).pow(power);});

When to Use This Skill

  • Setting up Three.js with WebGPU renderer
  • Creating custom shader materials with TSL
  • Writing GPU compute shaders
  • Building post-processing pipelines
  • Migrating from GLSL to TSL
  • Implementing visual effects (particles, water, terrain, etc.)

Resources

来源与署名

来源:dgreenheck/webgpu-claude-skill位于skills/webgpu-threejs-tsl提交af2319b

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架