gpt4 book ai didi

javascript - Three.js:如何使 cssRenderer 图层元素透明,通过它显示 webglRenderer 图层?

转载 作者:行者123 更新时间:2023-12-03 09:10:37 26 4
gpt4 key购买 nike

这是对 cssRenderer 直接在 webglRender 前面运行场景的测试,基本上两者一起运行,以假装在 webgl 中包含 html dom 元素(div 和 text)。

我试图使文本框背景(在 cssScene 中呈现)透明,以便您可以看到后面的地板(在 glscene 中呈现)。

cssObject 映射到 planeMesh,并且 planeMesh 的不透明度为零,并且 material.blending = THREE.NoBlending; 就可以了。事情是这样的,混合似乎没有效果,当我更改混合模式(完全不透明)时什么也没有发生。当我在 cssObject 上尝试某些混合模式时,也没有任何反应。

有趣的是,如果我旋转场景并透过文本框的背面看,即使文本向后,文本框也会被透视。嗯...这是怎么回事?如何使文本框以正确的方式显示文本? :D

Here's a plunker

相关js如下:

function drawMesh(){
// create the plane mesh
//var material = new THREE.MeshBasicMaterial({ wireframe: false, color: 0xFF00FF });

var material = new THREE.MeshBasicMaterial();
material.color.set('black');
material.opacity = 0;
// material = THREE.DoubleSide;
material.blending = THREE.NoBlending;

var geometry = new THREE.PlaneGeometry(1.70,0.49);
planeMesh = new THREE.Mesh( geometry, material );
planeMesh.position.x = 2.5;
planeMesh.position.y = 1.8;
planeMesh.position.z = -2;
planeMesh.rotation.y = Math.PI / 1;


// add it to the WebGL scene
glscene.add(planeMesh);

var number = document.createElement( 'div' );
number.className = 'number';
number.textContent = "This is an html textbox and that is a cube. blah blah blah";
// create the object3d for this element
cssObject = new THREE.CSS3DObject( number );
// we reference the same position and rotation
cssObject.position = planeMesh.position;
cssObject.rotation = planeMesh.rotation;


cssObject.scale.set(0.0075,0.0075,0.0075);
cssObject.rotation.y = Math.PI / 1;
cssObject.position.x = 2.5;
cssObject.position.y = 1.8;
cssObject.position.z = -2;

cssObject.blending = THREE.AdditiveBlending;
console.log(cssObject.position.x);
// add it to the css scene
cssScene.add(cssObject);
}

最佳答案

MeshBasicMaterial没有 opacity 参数。

您必须设置material = new THREE.Material();
或者,您可以从场景中删除此 planeMesh 并在 css 文件中为您的 cssObject 指定背景颜色。

updated plunker

关于javascript - Three.js:如何使 cssRenderer 图层元素透明,通过它显示 webglRenderer 图层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com