我正在处理一个需要自定义WebGL着色器的.glsl项目。这个项目将应用程序与Gulp捆绑在一起,所以我尝试使用https://github.com/mikecao/gulp-glsl,它是一个"Gulp插件,可以将GLSL代码转换成缩小的字符串“。太棒了!
我运行了npm install gulp-glsl --save-dev,我的gulpfile.js看起来如下:
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编译器给出了一个编译错误:
[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一起使用。我该怎么办才能让这一切发生呢?
发布于 2018-10-16 21:09:54
狼吞虎咽是一名任务跑步者。它不捆绑您的脚本,但可以启动一些其他工具来打包或预处理。看起来你的问题与你导入着色器的方式有关,而不是小型机模块。
ParseError在有效的glsl着色器指令上失败。
我建议先尝试在没有.glsl的情况下导入gulp-glsl。如果您的项目使用了一些绑定器,如browserify或webpack -请检查该绑定程序的glsl-导入程序模块(例如,webpack-glsl-loader用于webpack)。
https://stackoverflow.com/questions/52843710
复制相似问题