首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TypeScript中将glsl作为字符串导入?

如何在TypeScript中将glsl作为字符串导入?
EN

Stack Overflow用户
提问于 2018-02-12 07:41:28
回答 2查看 5.8K关注 0票数 15

我正在WebGL TypeScript的一个项目中工作。有许多由glsl编写的着色器,我想将它们作为字符串导入到我的ts文件中。比如:

代码语言:javascript
复制
import fxaa from "./shaders/fxaa";
const fxaaShader = new Shader(fxaa); // pass as string

我能做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-30 00:57:21

来晚了,但只需添加一个声明文件glsl.d.ts

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

...then导入为字符串:

代码语言:javascript
复制
import shaderVert from './shaders/vertex.glsl'

...and如果你用webpack,你需要ts-shader-loader

票数 23
EN

Stack Overflow用户

发布于 2018-02-12 13:25:21

这取决于如何编写着色器文件(在您的示例中是./shader/fxaa)。如果您自己正在编写此着色器文件,您可以这样做:

代码语言:javascript
复制
const fxaa = 'my shader code here';
export { fxaa };

然后使用这个着色代码:

代码语言:javascript
复制
import { fxaa } from './shader/fxaa';
const fxaaShader = new fxaaShader(fxaa);

或者,您可以编写这样的着色器文件(./shader/fxaa.json):

代码语言:javascript
复制
"my shader code here"

并要求该文件作为JSON对象:

代码语言:javascript
复制
const fxaa = require('./shader/fxaa.json');
const fxaaShader = new fxaaShader(fxaa);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48741570

复制
相关文章

相似问题

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