Optional options: Options设置 glslang 与 twgsl 的js/wasm文件路径。
默认值
{
glslangJsPath: `https://preview.babylonjs.com/glslang/glslang.js`,
glslangWasmPath: `https://preview.babylonjs.com/glslang/glslang.wasm`,
twgslJsPath: `https://preview.babylonjs.com/twgsl/twgsl.js`,
twgslWasmPath: `https://preview.babylonjs.com/twgsl/twgsl.wasm`,
}
注: 目前只能用于浏览器中。
import { glsl2wgsl, initGlsl2wgsl } from '@feng3d/glsl2wgsl';
main();
async function main()
{
// 初始化
await initGlsl2wgsl();
const glslVertex = `
#version 450
const vec2 pos[4] = vec2[4](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f), vec2(1.0f, -1.0f));
const vec2 tex[4] = vec2[4](vec2(0.0f, 0.0f), vec2(1.0f, 0.0f), vec2(0.0f, 1.0f), vec2(1.0f, 1.0f));
layout(location = 0) out vec2 vTex;
void main() {
vTex = tex[gl_VertexIndex];
gl_Position = vec4(pos[gl_VertexIndex], 0.0, 1.0);
}
`;
const glslFragment = `
#version 450
layout(set = 0, binding = 0) uniform sampler imgSampler;
layout(set = 0, binding = 1) uniform texture2D img;
layout(location = 0) in vec2 vTex;
layout(location = 0) out vec4 outColor;
void main() {
outColor = texture(sampler2D(img, imgSampler), vTex);
}`;
// 转换顶点着色器
const wgslVertex = glsl2wgsl(glslVertex, 'vertex');
// 转换片段着色器
const wgslFragment = glsl2wgsl(glslFragment, 'fragment');
console.log(`WebGPU顶点着色器`);
console.log(wgslVertex);
console.log(`WebGPU片段着色器`);
console.log(wgslFragment);
}
Generated using TypeDoc
初始化