|
|
@@ -3396,12 +3396,17 @@ export class Splatter extends THREE.EventDispatcher{
|
|
|
|
|
|
|
|
|
}else{
|
|
|
+ this.renderDepth_ = false
|
|
|
+
|
|
|
//先渲染其他物体,再渲染高斯(开启depthTest关闭depthWrite),最后清除深度后渲染测量线等
|
|
|
- viewer.addEventListener(/* 'renderToRTDepth' */ 'render.beforeClearDepth' /* 'render.begin3' */, (e)=>{
|
|
|
+ viewer.addEventListener(this.renderDepth_ ? 'renderToRTDepth' : 'render.beforeClearDepth' /* 'render.begin3' */, (e)=>{
|
|
|
if(!this.visible || e.viewport?.name != 'MainView')return
|
|
|
this.render(viewer.mainViewport.camera /* , viewer.mainViewport.view.getPivot() */);
|
|
|
})
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
this.addEventListener('update', ()=>{
|
|
|
//console.log('onUpdate 触发渲染')
|
|
|
viewer.addEventListener('loopStart',()=>{
|
|
|
@@ -3482,11 +3487,15 @@ export class Splatter extends THREE.EventDispatcher{
|
|
|
}else{ */
|
|
|
this.transCamera(threeCamera )
|
|
|
/* }
|
|
|
- } */
|
|
|
-
|
|
|
- // I.depthMask(true),
|
|
|
- I.enable(I.DEPTH_TEST), //原本是开启测试关闭写入
|
|
|
- I.depthMask(false), //是否depthWrite
|
|
|
+ } */
|
|
|
+ if(this.renderDepth_){
|
|
|
+ I.disable(I.DEPTH_TEST), //disable
|
|
|
+ I.depthMask(true) //失败了,无法遮住其他mesh
|
|
|
+ }else{
|
|
|
+ I.enable(I.DEPTH_TEST),
|
|
|
+ I.depthMask(false) //是否depthWrite
|
|
|
+ }
|
|
|
+
|
|
|
this.renderer.render(this.camera, I.canvas.width, I.canvas.height),
|
|
|
this.restoreState();
|
|
|
viewer.addTimeMark('renderGS','end')
|