首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Gulp捆绑GLSL文件?

如何用Gulp捆绑GLSL文件?
EN

Stack Overflow用户
提问于 2018-10-16 20:37:56
回答 2查看 565关注 0票数 2

我正在处理一个需要自定义WebGL着色器的.glsl项目。这个项目将应用程序与Gulp捆绑在一起,所以我尝试使用https://github.com/mikecao/gulp-glsl,它是一个"Gulp插件,可以将GLSL代码转换成缩小的字符串“。太棒了!

我运行了npm install gulp-glsl --save-dev,我的gulpfile.js看起来如下:

代码语言:javascript
复制
const gulp = require('gulp');
const glsl = require('gulp-glsl');

gulp.src('**/GLSL/*.glsl')
    .pipe(glsl({format: 'raw'}))
    .pipe(gulp.dest('build'));

然后我试着像这样导入我的着色器

import fragShader from "./GLSL/frag.glsl";

但是Gulp编译器给出了一个编译错误:

代码语言:javascript
复制
[13:27:17] gulp-notify: [Compile Error]
/Users/.../WebGL/GLSL/polyFrag.glsl:1
#extension GL_OES_standard_derivatives : enable
^
ParseError: Unexpected character '#'

我不需要Gulp来编译.glsl文件,我只需要它将它转换成一个字符串,以便与WebGL一起使用。我该怎么办才能让这一切发生呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-16 21:09:54

狼吞虎咽是一名任务跑步者。它不捆绑您的脚本,但可以启动一些其他工具来打包或预处理。看起来你的问题与你导入着色器的方式有关,而不是小型机模块。

ParseError在有效的glsl着色器指令上失败。

我建议先尝试在没有.glsl的情况下导入gulp-glsl。如果您的项目使用了一些绑定器,如browserify或webpack -请检查该绑定程序的glsl-导入程序模块(例如,webpack-glsl-loader用于webpack)。

票数 1
EN

Stack Overflow用户

发布于 2018-10-18 08:07:45

你知道玻璃化的事吗?

是一个Node.js风格的模块构建系统,很像浏览器化,除了GLSL着色器!它允许您共享和使用npm上的着色器代码。

它构成了stack.gl生态系统的核心组件之一,允许您从npm安装GLSL模块并在您的着色器中使用它们。这使得将不同的效果和技术拼凑在一起变得微不足道,其中包括但不限于雾、噪音、胶片颗粒、射线行军助手、放松功能和照明模式。

因为glslify只是将单个着色器文件作为字符串输出,所以它很容易与您选择的任何WebGL框架一起使用,只要他们接受自定义着色器。

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

https://stackoverflow.com/questions/52843710

复制
相关文章

相似问题

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