首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用esbuild在类型记录文件中加载.wglsl文件的方法?

使用esbuild在类型记录文件中加载.wglsl文件的方法?
EN

Stack Overflow用户
提问于 2022-03-19 03:48:31
回答 3查看 495关注 0票数 1

我正在使用esbuild作为工具来捆绑我的类型记录代码,但是我找不到一种方法来为".wgsl“文件配置加载程序。

Mi app.ts文件:

代码语言:javascript
运行
复制
import shader from './shader.wgsl';
//webgpu logic

我的shader.d.ts:

代码语言:javascript
运行
复制
declare module '*.wgsl'{
  const value: string;
  export default value;
}

我的esbuild文件(如您所见,我不能使用ts-着色器-加载程序):

代码语言:javascript
运行
复制
import { build } from "esbuild";
import * as ShaderLoader from "ts-shader-loader";

build({
    entryPoints: ['./src/app.ts'],
    bundle: true,
    sourcemap : true,
    target : 'es2015',
    format:'esm',
    minify : true,
    outfile: './dist/js/app.js',
    tsconfig: './tsconfig.json'
    plugins: [ShaderLoader]
}).catch(() => process.exit(1));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-28 17:38:04

为了允许其他用户加载一个esbuild-plugin-glsl文件,我不得不为.wgsl贡献自己的力量。这是我的esbuild文件。使用版本1.1.0^

代码语言:javascript
运行
复制
import { build } from "esbuild";
import { glsl } from "esbuild-plugin-glsl";

build({
    entryPoints: ['./src/app.ts'],
    bundle: true,
    sourcemap : true,
    target : 'es2015',
    format:'esm',
    minify : true,
    outfile: './dist/js/app.js',
    tsconfig: './tsconfig.json',
    plugins: [
        glsl({
            minify: true,
        })
    ]
  }).catch(() => process.exit(1));

d.ts文件应该具有以下内容:

代码语言:javascript
运行
复制
declare module '*.wgsl'{
    const value: string;
    export default value;
}

导入着色器的方法是:

代码语言:javascript
运行
复制
//This file has the Fragment and Vertex Shader Code.
import shader from './shader.wgsl';
票数 2
EN

Stack Overflow用户

发布于 2022-03-19 14:43:48

您需要类似于esbuild-plugin-glsl的东西(它是用于esbuild的GLSL导入插件,而ts-shader-loaderwebpack的导入插件)。

票数 2
EN

Stack Overflow用户

发布于 2022-03-27 08:29:32

我们使用维特导入WGSL和其他资产。

通过在道路上加上'?raw‘,Vite将为你完成这项工作。

代码语言:javascript
运行
复制
import shader from './shaders/xxx.wgsl?raw'

Vite还可以简单地导入wasm、worker、url,您可以检查:https://vitejs.dev/guide/assets.html#importing-asset-as-url

我们还建立了一个基于Vite的项目,为WebGPU https://github.com/Orillusion/orillusion-webgpu-samples的新成员共享基本样本。

欢迎更多的演示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71535213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档