我已经研究过涉及嵌入javascript框架(paper.js)的示例,用于通过ChakraHost的JsBridge实现将输出绘制到XAML的CanvasControl。
要包含paper.js框架和javascript来调用框架(例如paper.js的蝌蚪示例),我们只需要这些语句:
await host.ReadAndExecute("paper-core.js", "paperjs-refs");
await host.ReadAndExecute("tadpoles.js", "paperjs-refs");
使用例如嵌入WebGL javascript框架WebGL lesson3,除了包含javascript库和调用代码,例如lesson3.js,需要这些着色器代码。
<script id="shader-fs" type="x-shader/x-fragment">
precision mediump float;
varying vec4 vColor;
void main(void) {
gl_FragColor = vColor;
}
</script>
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec3 aVertexPosition;
attribute vec4 aVertexColor;
uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;
varying vec4 vColor;
void main(void) {
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
vColor = aVertexColor;
}
</script>
问题:
(1)如何将这些着色器javascript代码包含在lesson3 webgl jsbridge c#示例中?
// WebGl lesson3
await host.ReadAndExecute("glMatrix-0.9.5.min.js", "webgl-refs");
await host.ReadAndExecute("webgl-utils.js", "webgl-refs");
await host.ReadAndExecute("lesson3.js", "webgl-refs");
2016年9月14日修订 当我在2016年2月发布此问题时,我还没有想出ChakraBridge提供的示例仅限于Canvas2D。我最近重新审视了这个问题,并意识到要使ChakraBridge与WebGl.js或派生框架一起工作,例如Three.js,需要解决多个差距才能定位WebGL 3D context: