小编Dav*_*vid的帖子

three.js正确地混合了css3d和webgl

我试图结合webgl和css3d场景,以便两个场景中的对象正确地融合在一起.我遵循这里描述的模式:

并通过修改three.js示例css3d_sandbox.html创建了一个简单的示例.

在我的版本中,我在webGl场景中添加了一个立方体,并希望它与现有平面正确混合,无论多维数据集是在这些对象的前面还是后面.

我注意到两个异常现象.第一个是,一旦添加了立方体,当你平移时平面就会消失在意想不到的位置,好像远距离和近距离平面值没有被正确识别,或者对象被错误地确定为落后于其他东西.

第二个问题是css3d对象在针对three.js r67运行时根本不渲染,但它们在对r61运行时会渲染.我尝试用r61替换r67版本的CSS3DRenderer.js,但仍然没有看到任何css3d对象.

在r67中,当添加webGl dom作为css3d dom的子元素的行被注释掉时,css3d对象就会出现.

我很感激有关如何解决这些问题的任何建议.示例代码如下所示,可以通过放入任何版本的three.js示例文件夹(例如r61或r67)来运行.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
            body {
                background-color: #ffffff;
                margin: 0;
                overflow: hidden;
            }
            #info {
                position: absolute;
                top: 0px;
                width: 100%;
                color: #000000;
                padding: 5px;
                font-family: Monospace;
                font-size: 13px;
                text-align: center;
                z-index: 1;
            }

            a {
                color: #000000;
            }

        </style>
    </head>
    <body>
        <div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - css3d sandbox</div>

        <script src="../build/three.min.js"></script>

        <script src="js/controls/TrackballControls.js"></script>

        <!--<script src="js/renderers/CSS3DRenderer-r61.js"></script>-->
        <script src="js/renderers/CSS3DRenderer.js"></script>

        <script>

            var camera, sceneGl, rendererGl;

            var sceneCss, rendererCss; …
Run Code Online (Sandbox Code Playgroud)

html5 css3 webgl three.js

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

标签 统计

css3 ×1

html5 ×1

three.js ×1

webgl ×1