繁体   English   中英

将webGl渲染更改为Canvas渲染

[英]Change webGl rendering to Canvas rendering

为了使边界框,我使用此代码:

  'vtk_bounding_box': function(data) {  
                    if ((browser == 'explorer') ||(THIS_IS_TOUCH_DEVICE)) return;
                    var geometry = new THREE.Geometry();
                    var material = new THREE.MeshBasicMaterial({color: 0xFF0000,wireframe: true});
                    box_info = '';

                    for (var i = 0; i < 8; i++){
                        box_info += i+': x:'+ data[i].x +'y:'+ data[i].y +'z:'+ data[i].z
                        geometry.vertices.push( new THREE.Vector3( data[i].x - FocalPoint[0],  data[i].y - FocalPoint[1], data[i].z - FocalPoint[2]));                
                    }                   

                    //Making Bounding Box
                    geometry.faces.push( new THREE.Face4(0,1,2,3));                   
                    geometry.faces.push( new THREE.Face4(2,3,4,7)); 
                    geometry.faces.push( new THREE.Face4(4,5,6,7)); 
                    geometry.faces.push( new THREE.Face4(5,6,1,0));
                    geometry.faces.push( new THREE.Face4(1,2,7,6)); 
                    geometry.faces.push( new THREE.Face4(0,3,4,5));

                    mesh = new THREE.Mesh( geometry, material);                 
                    scene.add( mesh );
                },

当我将渲染类型从webGl更改为canvas时,当我旋转它时,模型的一部分就会消失。 我想说它可以显示完整模型吗? 但经过一些旋转后,只能排几行

要使其在CanvasRenderer工作,您需要使材质双面。 在r.50中,您可以这样做:

var material = new THREE.MeshBasicMaterial( { color: 0xFF0000, wireframe: true, side: THREE.DoubleSide } );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM