import  *  as  THREE  from  'three' 
import  {  OrbitControls }  from  'three/examples/jsm/controls/OrbitControls' 
import  {  GUI  }  from  'three/examples/jsm/libs/lil-gui.module.min.js' 
import  *  as  TWEEN  from  'three/examples/jsm/libs/tween.module.js' 
import  {  EXRLoader }  from  'three/addons/loaders/EXRLoader.js' 
import  {  LogLuvLoader }  from  'three/addons/loaders/LogLuvLoader.js' 
import  {  RGBMLoader }  from  'three/addons/loaders/RGBMLoader.js' 
const  scence =  new  THREE. Scene ( ) const  camera =  new  THREE. PerspectiveCamera ( 45 ,  window. innerWidth /  window. innerHeight,  0.1 ,  1000 ) 
camera. position. set ( 2 ,  2 ,  5 )  
camera. lookAt ( 0 ,  0 ,  0 ) const  renderer =  new  THREE. WebGLRenderer ( { antialias :  true  
} ) 
renderer. setSize ( window. innerWidth,  window. innerHeight) 
document. body. appendChild ( renderer. domElement) 
const  axesHelper =  new  THREE. AxesHelper ( 5 ) 
scence. add ( axesHelper) const  controls =  new  OrbitControls ( camera,  renderer. domElement) 
controls. dampingFactor =  0.05 
function  animate ( )  { controls. update ( ) requestAnimationFrame ( animate) renderer. render ( scence,  camera) TWEEN . update ( ) 
} 
animate ( ) 
const  planeGeometry =  new  THREE. PlaneGeometry ( 2 ,  2 ) 
const  planeMaterial =  new  THREE. MeshBasicMaterial ( { map :  new  THREE. TextureLoader ( ) . load ( '../public/assets/texture/sprite0.png' ) , side :  THREE . DoubleSide, transparent :  true 
} ) 
const  plane =  new  THREE. Mesh ( planeGeometry,  planeMaterial) 
plane. renderOrder =  0 
scence. add ( plane) 
const  planeGeometry_1 =  new  THREE. PlaneGeometry ( 2 ,  2 ) 
const  planeMaterial_1 =  new  THREE. MeshBasicMaterial ( { map :  new  THREE. TextureLoader ( ) . load ( '../public/assets/texture/lensflare0_alpha.png' ) , side :  THREE . DoubleSide, transparent :  true 
} ) 
const  plane_1 =  new  THREE. Mesh ( planeGeometry_1,  planeMaterial_1) 
plane_1. position. z =  2 
plane_1. renderOrder =  1 
scence. add ( plane_1) 
plane. material. depthTest =  true 
plane. material. depthWrite =  true 
plane. material. depthFunc =  THREE . LessEqualDepthplane_1. material. depthTest =  true 
plane_1. material. depthWrite =  true 
plane_1. material. depthFunc =  THREE . LessEqualDepthconst  gui =  new  GUI ( ) let  gui_0 =  gui. addFolder ( 'plane' ) 
gui_0. add ( plane. material,  'depthTest' ) . name ( '深度测试' ) . onChange ( ( )  =>  { plane. material. needsUpdate =  true 
} ) gui_0. add ( plane. material,  'depthWrite' ) . name ( '深度写入' ) . onChange ( ( )  =>  { plane. material. needsUpdate =  true 
} ) gui_0. add ( plane. material,  'depthFunc' ,  { 'THREE.LessEqualDepth' :  THREE . LessEqualDepth,  'THREE.NeverDepth' :  THREE . NeverDepth, 'THREE.AlwaysDepth' :  THREE . AlwaysDepth, 'THREE.GreaterDepth' :  THREE . GreaterDepth,  
} ) let  gui_1 =  gui. addFolder ( 'plane_1' ) 
gui_1. add ( plane_1. material,  'depthTest' ) . name ( '深度测试' ) . onChange ( ( )  =>  { plane_1. material. needsUpdate =  true 
} ) gui_1. add ( plane_1. material,  'depthWrite' ) . name ( '深度写入' ) . onChange ( ( )  =>  { plane_1. material. needsUpdate =  true 
} ) gui_1. add ( plane_1. material,  'depthFunc' ,  { 'THREE.LessEqualDepth' :  THREE . LessEqualDepth,  'THREE.NeverDepth' :  THREE . NeverDepth, 'THREE.AlwaysDepth' :  THREE . AlwaysDepth, 'THREE.GreaterDepth' :  THREE . GreaterDepth,  
} )