EffectComposer和具有三个.js的alpha通道
EffectComposer and alpha channel with three.js
这是我的代码:
renderTargetParametersRGBA = {
minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter,
format: THREE.RGBAFormat,stencilBuffer: true
};
colorTarget = new THREE.WebGLRenderTarget(
SCALE * SCREEN_WIDTH, SCALE * SCREEN_HEIGHT, renderTargetParametersRGBA
);
composer = new THREE.EffectComposer(
renderer,colorTarget
);
var renderScene = new THREE.RenderPass(scene,camera);
var effect2 = new THREE.ShaderPass(THREE.ShaderExtras[ "shader1" ]);
composer.addPass(renderScene);
composer.addPass(effect2);
在renderScene中,我将场景的alpha通道设置为某个值,但在shader1中,我找不到alpha通道的相同值,似乎alpha通道已被破坏。怎么了?
感谢
Three.js EffectComposer层(即纹理)中并没有真正的"透明度"。默认情况下,透明像素只是渲染为黑色(0,0,0)或背景色,因此当您在着色器中组合像素值时,请计算这些"透明"值,使其产生透明时所需的颜色组合。
如果将值作为统一或属性传递(取决于目标),也可以直接控制着色器中的alpha。对我来说,我传入一个单独的alpha值属性数组,然后使用它们来控制着色器本身中的alpha。
varying float vAlpha;
varying vec3 vColor;
void main() {
gl_FragColor = vec4( vColor, vAlpha );
...
相关文章:
- 如何使用PHP和JS级联三个下拉列表
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 在数组JS中查找三个重复项
- 三个js键盘旋转
- 加载模型与三个.js
- 如何在导入的 Collada 模型上使用 EdgesHelper 在三个.js.
- 三个JS框几何体,渲染警告:渲染计数或素数为0
- 我需要三个.js的来源
- 可点击的三个JS凸对象(点击一次即可显示图像)
- 带有三个.js的透明背景
- 使用三个js加载三维模型示例
- 在桌面上向下滚动三个js动画,而不是在手机上
- 将一行的长度限制在三个js中
- 如何在三个js上更新Trackball控件
- 由于相机位置的原因,无法在场景中显示三个.js元素
- 三个js阴影
- EffectComposer和具有三个.js的alpha通道
- 如何点击并滑入三个js立方体
- JS语法问题还是使用三个.js三个.循环中的图像加载器