. , , , . , , . :
worldPosition = modelMatrix * vec4( position, 1.0 );
, :
if ( worldPosition.x > clippingLimitX ) {
discard;
}
, , . , . , . , .
, , , :
new THREE.ShaderMaterial( { colorWrite: false, depthWrite: false, ... } );
, , . .
renderer.autoClear = false;
renderer.clear();
var gl = renderer.context;
renderer.state.setStencilTest( true );
renderer.state.setStencilFunc( gl.ALWAYS, 1, 0xff );
renderer.state.setStencilOp( gl.KEEP, gl.KEEP, gl.INCR );
renderer.render( backStencilScene, camera );
renderer.state.setStencilFunc( gl.ALWAYS, 1, 0xff );
renderer.state.setStencilOp( gl.KEEP, gl.KEEP, gl.DECR );
renderer.render( frontStencilScene, camera );
renderer.state.setStencilFunc( gl.EQUAL, 1, 0xff );
renderer.state.setStencilOp( gl.KEEP, gl.KEEP, gl.KEEP );
renderer.render( capsScene, camera );
renderer.state.setStencilTest( false );
renderer.render( scene, camera );
, , :
http://daign.imtqy.com/clipping-with-caps/
three.js, , , , , .