相关疑难解决方法(0)

three.js:如何控制渲染顺序

我使用three.js

如何控制渲染顺序?假设我有三个平面几何,并且想要以特定顺序渲染它们,而不管它们的空间位置如何.

谢谢

3d optimization rendering three.js

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

Three.js - 在另一个之上的几何

在Three.js中是否可以将网格始终渲染在场景的顶部,即使它的位置在所有对象后面?我正在使用网格实现套索选择,我需要在场景的其余部分上渲染选择框.

javascript three.js

8
推荐指数
1
解决办法
8067
查看次数

在同一画布中绘制2个场景 - three.js

我希望有2个场景,每个场景都添加了一个相机,我希望它们可以在同一个画布上绘制(但不要划分这个画布).我使用了2个渲染器,它们在同一个画布元素中绘制,但我的问题是第二个渲染器会覆盖第一个,所以我只能看到2个场景中的一个.我尝试 alpha: true了渲染器,setClearColor( 0x000000, 0 );但仍然没有想要的结果.

我希望实现画中画效果,但我希望"内部画面"是透明的(仅绘制对象,而不是背景).

这可能是three.js吗?

谢谢

transparency canvas renderer three.js

6
推荐指数
1
解决办法
4574
查看次数

threejs:在单个webgl渲染器中渲染多个场景

我正在尝试将多个场景包含到单个webgl渲染器中,如下面的代码所示:

renderer.render(scene1,camera);
renderer.render(scene2,camera);

我面临的问题是,在最后一个场景中,传递给渲染器的对象是否正在绘制,而前一个场景不是.我通过交换上面两行代码证实了这一点.我是threejs的新手,想知道上述是否可以实现?如果你可以指导我支持例子(如果有的话).

谢谢!

3d renderer scene three.js

6
推荐指数
1
解决办法
1万
查看次数

Three.js - 我可以强制形状可见,即使它被遮挡?

我有一组对象,我希望它们始终可见,即使它们被另一个对象遮挡也是如此。它们的对象是网格,而不是粒子或精灵。这是我试图模仿的效果的屏幕截图。这是用 C++ 和 OpenGL 完成的:

在此输入图像描述

请注意红色和绿色三角形以及黑色线条(以及文本)。它们都位于地平面上,但即使绿色机器更近,它们也是可见的。

我可以使用 Three.js 强制可见性吗?

three.js

5
推荐指数
1
解决办法
2443
查看次数

如何投射可见光线三件

我想瞄准具有相机视觉的物体(因为用户会看到物体,而不是用鼠标指向物体).

我像这样从相机投射光线

rotation.x = camera.rotation.x;
    rotation.y = camera.rotation.y;
    rotation.z = camera.rotation.z;
    raycaster.ray.direction.copy( direction ).applyEuler(rotation);
    raycaster.ray.origin.copy( camera.position );

var intersections = raycaster.intersectObjects( cubes.children );
Run Code Online (Sandbox Code Playgroud)

这让我得到了交叉点,但它似乎有时会徘徊.所以我想添加目标(十字准线).那将是光线末端或中间的物体(网格)上的某种东西.

我该如何添加它?当我创建一个常规线时,它位于相机前面,因此屏幕会变黑.

three.js

4
推荐指数
1
解决办法
5406
查看次数

在three.js中使用renderOrder

我想在场景中有两个重叠的对象,但是我想定义应该先绘制哪个对象。我在这里有一个代码示例:http : //jsfiddle.net/sg02e5sm/1/

我正在使用renderOrder = 1第二个对象,以使其始终显示在第一个对象的顶部(只要它们具有相同的Z值),但是它不起作用。

render zbuffer overlap three.js

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

使用画布(三.js)覆盖画布(WebGL)

我有两块画布。第一个应该是背景,其内容通过原始 WebGL (3D) 渲染。第二个画布应该覆盖第一个画布,并且主要是透明的。它的内容通过 Three.js(3D 内容)呈现。不幸的是,第二个画布不是绘制在第一个画布的上面,而是绘制在它的旁边。

如何使用透明的 Three.js 场景背景在第一个画布上方绘制第二个画布?

更新:

我整合了gaitat的想法。但它仍然无法正常工作(请参阅全屏屏幕截图。由于 Oculus Rift 支持,两次渲染灰色框。)。Canvas 2 仍然不在第一个之上,并且它的背景也不透明。提醒一下:灰色方块是通过原始 WebGL 在名为webglcanvas 的画布上绘制的。该盒子是通过Tripcanvas上的 Three.js 渲染的。

代码 1(画布和 div 的初始化 [Xtend/Java]):

Browser::getDocument().getElementById("view").appendChild(webglDiv)


    val Element webGLCanvasDiv = Browser::getDocument().createDivElement()
    webGLCanvasDiv.style.setCssText("position: absolute")
    webGLCanvasDiv.style.setCssText("z-index: 8")
    webGLCanvasDiv.setId("webGLCanvasDiv")      
    Browser::getDocument().getElementById("webglDiv").appendChild(webGLCanvasDiv)       


    val webGLCanvas = Browser::getDocument().createCanvasElement()
    webGLCanvas.setWidth(viewportWidth)
    webGLCanvas.setHeight(viewportHeight)
    webGLCanvas.style.setCssText("border-bottom: solid 1px #DDDDDD")
    webGLCanvas.setId("webglcanvas")        
    Browser::getDocument().getElementById("webGLCanvasDiv").appendChild(webGLCanvas)        


    val Element webGLLeapDiv = Browser::getDocument().createDivElement()
    webGLLeapDiv.style.setCssText("position: absolute")
    webGLLeapDiv.style.setCssText("z-index: 10")     
    webGLLeapDiv.setId("webGLLeapDiv")      
    Browser::getDocument().getElementById("webglDiv").appendChild(webGLLeapDiv)


    val leapCanvas = Browser::getDocument().createCanvasElement()
    // canvas size is handled via renderer in …
Run Code Online (Sandbox Code Playgroud)

css canvas webgl three.js

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