我怎样才能让我的网格脱离屏幕? [英] How can I get my mesh has gone off screen?

查看:203
本文介绍了我怎样才能让我的网格脱离屏幕?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法弄清楚如何检测出屏幕,任何人都可以帮忙吗?我使用WebGL和Three.js。

mrdoob / three.js / blob / master / src / core / Frustum.jsrel =nofollow> Frustum 测试,有点像这样:

  //创建一个新的Frustum对象(为了提高效率,只做一次)
var frustum = new THREE.Frustum();
//辅助矩阵(效率,只做一次)
var projScreenMatrix = new THREE.Matrix4();

//从相机矩阵中设置矩阵(在每个renderer.render()调用时更新)
projScreenMatrix.multiply(camera.projectionMatrix,camera.matrixWorldInverse);
//更新平截头体
frustum.setFromMatrix(projScreenMatrix);
//测试可见性
如果(!frustum.contains(object)){
//它不在屏幕上!
}

这是从 WebGLRenderer来源


I cannot figure out how to detect it going off screen, can anybody help? I am using WebGL and Three.js.

解决方案

You can use Frustum testing, a little like this:

// Create a new Frustum object (for efficiency, do this only once)
var frustum = new THREE.Frustum();
// Helper matrix (for efficiency, do this only once) 
var projScreenMatrix = new THREE.Matrix4();

// Set the matrix from camera matrices (which are updated on each renderer.render() call)
projScreenMatrix.multiply( camera.projectionMatrix, camera.matrixWorldInverse );
// Update the frustum
frustum.setFromMatrix( projScreenMatrix );
// Test for visibility
if ( !frustum.contains( object ) ) {
    // It's off-screen!
}

This is copied from WebGLRenderer sources.

这篇关于我怎样才能让我的网格脱离屏幕?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆