相关疑难解决方法(0)

为什么透明度在我的网格上不起作用?

我的场景中有两个网格。中间有一个圆柱体和一架经典飞机。我在圆柱体上应用了 png 纹理,这样我们就可以看穿。它似乎适用于气缸。

在此屏幕截图中,您可以轻松地看到我的问题:我不明白为什么我的图像在圆柱体后面不可见。

在此输入图像描述

我用于气缸的代码:

myCylinderMesh.material.transparent = true;
myCylinderMesh.material.side = THREE.DoubleSide;
Run Code Online (Sandbox Code Playgroud)

我怎样才能看到隐藏在圆柱体后面的图像部分?

编辑1:

我添加了 @ScieCode 发送给我的代码:

myCylinderMesh.material.alphaTest = 0.5;
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

它效果更好:现在我可以看到图像中缺失的部分。但缺少一件事:我的圆柱体的不透明度。我应该也能看到字母背后我的形象。目前我有这样的不透明度:

myCylinderMesh.material.opacity = 0.7;
Run Code Online (Sandbox Code Playgroud)

你知道我错过了什么吗?谢谢

编辑2:

这是我的两个网格的代码:

圆柱 :

geoCylinder = new THREE.CylinderBufferGeometry( 0.4, 0.4, 2*Math.PI*0.4/(2048/128), 64, 1, true ); 

matCylinder = new THREE.MeshBasicMaterial( { map:texture, transparent:true, color:0x000000, alphaTest: 0.5, opacity: 0.6, side: THREE.DoubleSide } );

meshCylinder = new THREE.Mesh( geoCylinder, matCylinder );
Run Code Online (Sandbox Code Playgroud)

飞机 :

geoPlane = new THREE.PlaneBufferGeometry( 0.8, 0.8 );

matPlane = new THREE.MeshBasicMaterial( { map: texturePlane, transparent:true} …
Run Code Online (Sandbox Code Playgroud)

textures three.js

3
推荐指数
1
解决办法
2202
查看次数

透明度面对跳跃?

我一直在研究一个运行在Three.js库之上的WebGL项目.我正在渲染几个半透明网格,我注意到根据您倾斜相机的角度,一个不同的对象在顶部.

为了说明这个问题,我使用了三个半透明的立方体进行了快速演示.当您将图像旋转过去垂直于屏幕时,最小立方体的后半部分会"跳跃"并且不再可见.但是,它不应该仍然可见吗?我尝试调整一些混合方程式,但这似乎没有什么区别.

我想知道的是,这是否是WebGL/Three中的一个错误,或者我可以解决的问题.任何见解都会非常感激:)

javascript webgl three.js

2
推荐指数
1
解决办法
664
查看次数

Three.js:在 MeshFaceMaterial 中使用 cubeMaterials 和不透明度 - THREE.DoubleSide 不起作用?

我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色:

var scene = new THREE.Scene(); 
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); 
var renderer = new THREE.WebGLRenderer(); 

renderer.setSize(window.innerWidth, window.innerHeight); 
renderer.setClearColor(0xffffff, 0); // bg color
document.body.appendChild(renderer.domElement); // displays canvas

camera.position.z = 13; // move away to see coord center
camera.position.y = 7;

controls = new THREE.OrbitControls(camera, renderer.domElement);

// CUBE
var geometry = new THREE.CubeGeometry(2,2,2);
var cubeMaterials = [ 
    new THREE.MeshBasicMaterial({color:0x33AA55, transparent:true, opacity:0.8, side: THREE.DoubleSide}),
    new THREE.MeshBasicMaterial({color:0x55CC00, transparent:true, opacity:0.8, side: THREE.DoubleSide}), 
    new THREE.MeshBasicMaterial({color:0x000000, transparent:true, opacity:0.2, side: THREE.DoubleSide}), …
Run Code Online (Sandbox Code Playgroud)

html three.js html5-canvas

2
推荐指数
1
解决办法
4966
查看次数

标签 统计

three.js ×3

html ×1

html5-canvas ×1

javascript ×1

textures ×1

webgl ×1