Skip to content

refactor: 移除 WebGL 支持,专注 WebGPU #1

Description

@wardenfeng

概述

移除项目中所有 WebGL 相关的内容,仅保留 WebGPU/WGSL 相关代码,简化着色器语言库并专注于现代 WebGPU 着色器生成。

背景

项目当前支持 GLSL(WebGL 着色器语言)和 WGSL(WebGPU 着色器语言)两种着色器输出。随着 WebGPU 的成熟,决定移除 GLSL/WebGL 相关支持,专注于 WGSL。

关联项目

这是一个跨仓库的重构任务,相关的 issues:

依赖关系

@feng3d/tsl
└── 独立的着色器语言库(不直接依赖 render-api/webgpu)

任务清单

1. 代码分析

  • 搜索并分析所有包含 "webgl"、"WebGL" 的代码
  • 分析 glsl/ 目录下的所有 WebGL/GLSL 相关函数
  • 梳理着色器阶段中的 WebGL 兼容性处理

2. GLSL 相关移除

  • 移除 glsl/ 目录下的纹理函数(如果仅用于 WebGL)
  • 移除 glsl/ 目录下的采样器函数(如果仅用于 WebGL)
  • 移除 glsl/ 目录下的导数函数(如果仅用于 WebGL)
  • 清理 vertex/fragment 着色器中的 WebGL 特定处理

3. 变量和控制流

  • 移除 variables/varying.ts 中的 WebGL varying 处理
  • 移除 variables/assign.ts 中的 WebGL 特殊处理
  • 清理 control/return.ts 中的 WebGL 特定逻辑

4. 着色器构建

  • 移除 core/buildShader.ts 中的 WebGL/WGSL 转换逻辑
  • 移除 shader/transform.ts 中的坐标系转换(WebGL ↔ WebGPU)
  • 简化着色器构建流程

5. 验证

  • 确保 WGSL 着色器生成正常
  • 运行现有测试

相关分支

wardenfeng/feng3d-workspace:remove-webgl-support

预期影响

  • 简化着色器语言库,减少维护成本
  • 移除约 12 个文件中的 WebGL 相关代码
  • 专注于 WGSL 着色器生成

涉及文件

  • variables/varying.ts - varying 变量
  • variables/assign.ts - 变量赋值
  • types/matrix/mat4x3.ts - 矩阵类型
  • shader/transform.ts - 转换着色器
  • shader/vertex.ts - 顶点着色器
  • shader/fragment.ts - 片段着色器
  • glsl/texture/ - GLSL 纹理函数
  • glsl/sampler/ - GLSL 采样器函数
  • glsl/derivative/ - GLSL 导数函数
  • core/buildShader.ts - 着色器构建
  • control/return.ts - return 语句

提交信息模板

refactor: 移除 WebGL 支持,专注 WebGPU

- 移除所有 GLSL/WebGL 相关的代码和函数
- 移除着色器构建中的 WebGL 兼容性处理
- 简化代码,专注于 WGSL 着色器生成

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions