Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas WebGL填充样式_Canvas_Three.js_Webgl - Fatal编程技术网

Canvas WebGL填充样式

Canvas WebGL填充样式,canvas,three.js,webgl,Canvas,Three.js,Webgl,我目前有一个画布,我正在渲染一个3JS场景。一切都很好,但是,我想在它上面显示一个透明的填充 使用普通画布,我只需 canvas = document.getElementById('canvas'); context = canvas.getContext('2d'); 当然,这不起作用,因为我使用的是WebGL,而上下文是不同的。但我试着将fillStyle应用于 renderer.context 什么也没发生。 我通过控制台进行了检查,该属性确实显示在上下文中 WebGLRenderi

我目前有一个画布,我正在渲染一个3JS场景。一切都很好,但是,我想在它上面显示一个透明的填充

使用普通画布,我只需

canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
当然,这不起作用,因为我使用的是WebGL,而上下文是不同的。但我试着将fillStyle应用于

renderer.context
什么也没发生。 我通过控制台进行了检查,该属性确实显示在上下文中

WebGLRenderingContext {fillStyle: "rgba(204, 61, 202, 0.7 )", canvas: canvas#canvas, drawingBufferWidth: 475, drawingBufferHeight: 397}
但是,颜色仍然没有出现

你知道这是否可能吗


链接到示例

我相信您可能正在寻找

renderer.setClearColor(0xcc3dca, 0.7)
renderer.clear()

fillStyle与WebGL无关。这是Canvas 2D API的一个属性。对吧,那么我该如何在webgl画布上应用透明颜色?您可以应用一个简单的后处理过程,这将为您提供视觉外观上的最大灵活性。我学习了如何应用着色器,但我不知道如何实际编写着色器。我可以找到在整个场景上应用透明颜色的方法吗?这是一个没有EffectComposer的基本后处理示例。首先,将场景渲染到渲染目标中。接下来,通过使用渲染目标作为自定义着色器的输入纹理来应用后处理。