是否在Three.js中自动完成剪辑?

cor*_*zza 2 algorithm 3d clipping webgl three.js

所以,我正在阅读这篇维基百科文章中的剪辑.这对任何和所有游戏来说都是必不可少的,所以,我必须这样做,还是由Three.js甚至是WebGL自动完成?谢谢!

Nei*_*eil 7

您可以将近剪裁平面和远剪裁平面的值传递给相机对象:

var camera = new THREE.PerspectiveCamera( fov, aspect, near, far );
Run Code Online (Sandbox Code Playgroud)

near和far可以包含例如值near = 0.1,far = 10000因此将呈现位于这些值之间的对象.

编辑:

近和远,代表你的世界的剪裁平面.在同时绘制数千个对象和纹理的场景中,尝试显示所有内容会对CPU和GPU造成负担.更糟糕的是,画出你甚至看不到的东西都是浪费.近剪裁平面通常相对靠近用户,而远剪裁平面在远处偏离某个地方.当物体穿过远处的平面时,它们会自发地出现或消失.有些游戏使用雾来使物体的外观和消失更加逼真.

  • 将近处和远处平面设置为尽可能彼此接近的最重要原因是具有一些深度缓冲分辨率.高深度缓冲分辨率可以防止"Z-fighting"(共面闪烁). (2认同)