如何解决twgl.js无法使用es6模块加载纹理
我正尝试将纹理加载到二维平面中,如本帖子How to draw 2D image with TWGL (WebGL helper Library)所示。
包括<script src="https://twgljs.org/dist/twgl-full.min.js"></script>
但是当尝试使用与es6模块完全相同的代码来执行此操作时,出现以下错误[.WebGL-0x7f90b084f000]RENDER WARNING: Render count or primcount is 0.
像这样使用gulp和browserify
"dependencies": {
"animejs": "^3.2.1","twgl.js": "^4.16.1"
},"devDependencies": {
"@barba/core": "^2.9.7","babel-core": "^6.26.3","babel-preset-env": "^1.7.0","babelify": "^8.0.0","browserify": "^17.0.0","gulp": "^3.9.1","gulp-autoprefixer": "^4.0.0","gulp-livereload": "^4.0.2","gulp-rename": "^2.0.0","gulp-sass": "^4.1.0","gulp-sourcemaps": "^2.6.5","tinyify": "^3.0.0","vinyl-buffer": "^1.0.1","vinyl-source-stream": "^2.0.0"
}
}
我的吞噬任务
gulp.task('js',function () {
const options = {
basedir: '.',debug: !is_prod,entries: [paths.listen.js + 'app.js'],cache: {},packageCache: {}
}
const b = browserify(options)
b.transform(babelify.configure({"presets": ["env"]}))
if(is_prod) b.plugin('tinyify',{ flat: false })
b.bundle()
.on('error',swallowError)
.pipe(source('app.min.js'))
.pipe(gulp.dest(paths.output.js))
.pipe(livereload())
return b
})
使用import * as twgl from 'twgl.js'
我做错什么了吗?
解决方法
该示例使用的是twgl 1.x,而您的gulp使用的是4.x,情况发生了变化。特别是twgl.drawBufferInfo
从
twgl.drawBufferInfo(gl,primitiveType,bufferInfo)
到
twgl.drawBufferInfo(gl,bufferInfo,optionalPrimitiveType)
我将答案编辑为使用4.x
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。