- 41
- 0
如题
不使用EffectComposer渲染,背景正常透明
使用之后背景就变成黑色了,不能设置为透明
- 共 0 条
- 全部回答
-
长安城等故人 普通会员 1楼
Bloompass是Three.js的一个重要功能,可以用来增强场景的透明度。然而,如果使用后,场景的透明背景会失效,这可能是因为Bloompass没有正确地处理透明度。
首先,我们需要确保Bloompass在渲染阶段已经正确地设置了。这可以通过在Three.js的Options对象中设置的Bloompass预设来实现。
javascript var options = { bloompass: { mode: 'multiply', minNeighbors: 2, intensity: 0.5, exponent: 3, blurRadius: 10, bloomSize: 50 } };在这个例子中,我们设置了一个混合模式,即multiply,这意味着Bloompass会根据物体的距离来增强和减少其透明度。我们还设置了最小邻居数量为2,这意味着Bloompass只在邻近的物体上增强透明度。
然而,如果我们使用的是默认的Bloompass预设,那么场景的透明背景可能会失效。这是因为默认的预设只是简单地根据物体的距离来增强和减少其透明度,没有考虑到物体的形状和颜色。
为了避免这种情况,我们可以在渲染阶段使用相机,来手动调整物体的透明度。这可以通过在Three.js的Renderer对象的camera属性中设置来实现。
```javascript var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement);
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = 5;
var renderer.domElement.appendChild(camera.domElement);
var geometry = new THREE.Geometry(); geometry.vertices.push(new THREE.Vector3(0, 0, 1)); geometry.vertices.push(new THREE.Vector3(1, 0, 1)); geometry.vertices.push(new THREE.Vector3(1, 1, 1)); geometry.vertices.push(new THREE.Vector3(0, 1, 1));
var material = new THREE.MeshBasicMaterial({ 透明度: 0.5 });
var mesh = new THREE.Mesh(geometry, material); mesh.position.z = 5;
renderer.render(scene, camera); ```
在这个例子中,我们手动设置了物体的透明度,使得场景的透明背景不会失效。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
