首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >启用/禁用每种材料的剪裁(r87)

启用/禁用每种材料的剪裁(r87)
EN

Stack Overflow用户
提问于 2017-11-06 20:29:04
回答 1查看 739关注 0票数 0

我试图与三家公司的剪裁机合作,我没有读过Material.clipIntersection的描述,只是盲目地把它理解为“已启用裁剪”。

在阅读了描述、播放示例和深入研究代码之后,我得出结论,没有任何参数可以控制是否启用了裁剪。唯一的两个接口是:

.clippingPlanes[]

.clipIntersection

也许是Renderer.localClippingEnabled,但我不想在全局上启用/禁用.本地剪裁。即。如果我有两种材料,我想把它控制在一种上。

问题似乎是clippingPlanes定义了NUM_CLIPPING_PLANES

代码语言:javascript
运行
复制
'#define NUM_CLIPPING_PLANES ' + parameters.numClippingPlanes,

我可以看到,WebGLClipping还有更多的事情要做。尽管如此,我还是对这个定义感到困惑,我想知道每次添加/删除剪贴板时是否需要更新这些材料。

tl:dr;

是否有内置的方式可以轻松地添加切换以启用/禁用此示例的剪辑:intersection,而无需重新编译着色器

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-06 21:35:35

可能不符合问题的精神,但简单的解决方案是用空数组替换clippingPlanes属性。

我在示例中更改/添加了以下代码:

代码语言:javascript
运行
复制
var params = {
    clipPlanesOn: true,
    clipIntersection: true,
    planeConstant: 0,
    showHelpers: false
};

..。

代码语言:javascript
运行
复制
var clipPlanes = [
    new THREE.Plane( new THREE.Vector3( 1, 0, 0 ), 0 ),
    new THREE.Plane( new THREE.Vector3( 0, - 1, 0 ), 0 ),
    new THREE.Plane( new THREE.Vector3( 0, 0, - 1 ), 0 )
];
var clipPlanesOff = [];

..。

代码语言:javascript
运行
复制
gui.add( params, 'clipPlanesOn' ).name( 'clip planes on' ).onChange( function ( value ) {

    var children = group.children;

    for ( var i = 0; i < children.length; i ++ ) {

        children[ i ].material.clippingPlanes = (value) ? clipPlanes : clipPlanesOff;

    }

    render();

} );

选中这个盒子会把剪裁打开/关闭。

提供更多信息的更新:

AFAICT,这都是“自动”。在setProgram期间,WebGLRenderer设置一个名为_clippingEnabled的变量。这是根据来自WebGLClipping.init的返回值来设置的,其中一种情况检查材料的clippingPlanes属性中是否有任何值。

WebGLClipping有以下一行:

代码语言:javascript
运行
复制
uniform = { value: null, needsUpdate: false };

_clippingEnabled设置为trueclippingPlanes属性中的一些值后,进程将进入projectPlanes of WebGLClipping,其中包括行:

代码语言:javascript
运行
复制
uniform.needsUpdate = true;

轰隆隆。制服被标记为自动更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47145220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档