@@ -80,12 +80,12 @@ <h3>Gra zatrzymana</h3>
8080import * as THREE from './module/build/three.module.js' ;
8181import { BufferGeometryUtils } from './module/jsm/utils/BufferGeometryUtils.js' ;
8282import { SkeletonUtils } from './module/jsm/utils/SkeletonUtils.js' ;
83+ import { FBXLoader } from './module/jsm/loaders/FBXLoader.js' ;
8384import Stats from './module/jsm/libs/stats.module.js' ;
84- import { FBXLoader } from './module/jsm/loaders/FBXLoader.js?1' ;
8585
8686
8787var canvas , renderer , scene , camera , stats , raycaster ,
88- gameState , world , cube , FPC , socket , playerObject , textureAtlasMapping ;
88+ gameState , world , cube , FPC , socket , playerObject , textureAtlasMapping , materials , parameters ;
8989
9090
9191class Terrain {
@@ -590,10 +590,9 @@ <h3>Gra zatrzymana</h3>
590590 PixelRatio :window . devicePixelRatio
591591 } ) ;
592592 scene = new THREE . Scene ( ) ;
593- scene . background = new THREE . Color ( 0xb0b0b0 ) ;
594- const color = new THREE . Color ( 0xb0b0b0 ) ;
593+ scene . background = new THREE . Color ( "lightblue" ) ;
595594 const density = 0.01 ;
596- scene . fog = new THREE . FogExp2 ( color , density ) ;
595+ // scene.fog = new THREE.FogExp2(new THREE.Color(0xb0b0b0) , density);
597596 camera = new THREE . PerspectiveCamera ( 75 , 2 , 0.1 , 1000 ) ;
598597 camera . rotation . order = "YXZ"
599598 camera . position . set ( 26 , 26 , 26 )
@@ -614,6 +613,63 @@ <h3>Gra zatrzymana</h3>
614613
615614
616615 var loader = new FBXLoader ( ) ;
616+ var textureLoader = new THREE . TextureLoader ( ) ;
617+
618+ var geometry = new THREE . BufferGeometry ( ) ;
619+ var vertices = [ ] ;
620+ materials = [ ]
621+ var sprite1 = textureLoader . load ( 'assets/images/snowflakes/snowflake1.png' ) ;
622+ var sprite2 = textureLoader . load ( 'assets/images/snowflakes/snowflake2.png' ) ;
623+ var sprite3 = textureLoader . load ( 'assets/images/snowflakes/snowflake3.png' ) ;
624+ var sprite4 = textureLoader . load ( 'assets/images/snowflakes/snowflake4.png' ) ;
625+ var sprite5 = textureLoader . load ( 'assets/images/snowflakes/snowflake5.png' ) ;
626+
627+ for ( var i = 0 ; i < 100 ; i ++ ) {
628+
629+ var x = Math . random ( ) * 2000 - 1000 ;
630+ var y = Math . random ( ) * 2000 - 1000 ;
631+ var z = Math . random ( ) * 2000 - 1000 ;
632+
633+ vertices . push ( x , y , z ) ;
634+
635+ }
636+
637+ geometry . setAttribute ( 'position' , new THREE . Float32BufferAttribute ( vertices , 3 ) ) ;
638+
639+ parameters = [
640+ [ [ 1.0 , 0.2 , 0.5 ] , sprite2 , 20 ] ,
641+ [ [ 0.95 , 0.1 , 0.5 ] , sprite3 , 15 ] ,
642+ [ [ 0.90 , 0.05 , 0.5 ] , sprite1 , 10 ] ,
643+ [ [ 0.85 , 0 , 0.5 ] , sprite5 , 8 ] ,
644+ [ [ 0.80 , 0 , 0.5 ] , sprite4 , 5 ]
645+ ] ;
646+
647+ for ( var i = 0 ; i < parameters . length ; i ++ ) {
648+
649+ var color = parameters [ i ] [ 0 ] ;
650+ var sprite = parameters [ i ] [ 1 ] ;
651+ var size = parameters [ i ] [ 2 ] ;
652+
653+ materials [ i ] = new THREE . PointsMaterial ( { size : size , map : sprite , blending : THREE . AdditiveBlending , depthTest : false , transparent : true } ) ;
654+ materials [ i ] . color . setHSL ( color [ 0 ] , color [ 1 ] , color [ 2 ] ) ;
655+
656+ var particles = new THREE . Points ( geometry , materials [ i ] ) ;
657+
658+ particles . rotation . x = Math . random ( ) * 6 ;
659+ particles . rotation . y = Math . random ( ) * 6 ;
660+ particles . rotation . z = Math . random ( ) * 6 ;
661+
662+ scene . add ( particles ) ;
663+
664+ }
665+ for ( var i = 0 ; i < materials . length ; i ++ ) {
666+
667+ materials [ i ] . map = parameters [ i ] [ 1 ] ;
668+ materials [ i ] . needsUpdate = true ;
669+
670+ }
671+
672+
617673 loader . load ( 'assets/models/clouds/clouds.fbx' , function ( object ) {
618674 object . scale . x = 0.1
619675 object . scale . y = 0.1
@@ -629,7 +685,6 @@ <h3>Gra zatrzymana</h3>
629685 object . children [ 1 ] . material . map = texturex
630686 object . children [ 1 ] . material . color = new THREE . Color ( 0xffffff ) ;
631687 // object.children[1].scale.set(0.5,0.5,0.5)
632- console . log ( object )
633688 scene . add ( object )
634689
635690 var ghast2 = SkeletonUtils . clone ( object ) ;
@@ -828,7 +883,6 @@ <h3>Gra zatrzymana</h3>
828883 if ( f != null ) {
829884 f ( ) ;
830885 }
831-
832886 }
833887 } ) ;
834888 } ) ( ) ;
@@ -849,6 +903,7 @@ <h3>Gra zatrzymana</h3>
849903}
850904
851905
906+
852907function uuidv4 ( ) {
853908 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [ x y ] / g, function ( c ) {
854909 var r = Math . random ( ) * 16 | 0 , v = c == 'x' ? r : ( r & 0x3 | 0x8 ) ;
@@ -895,6 +950,28 @@ <h3>Gra zatrzymana</h3>
895950}
896951
897952function render ( ) {
953+ var time = Date . now ( ) * 0.00005 ;
954+
955+ for ( var i = 0 ; i < scene . children . length ; i ++ ) {
956+
957+ var object = scene . children [ i ] ;
958+
959+ if ( object instanceof THREE . Points ) {
960+
961+ object . rotation . y = time * ( i < 4 ? i + 1 : - ( i + 1 ) ) ;
962+
963+ }
964+
965+ }
966+
967+ for ( var i = 0 ; i < materials . length ; i ++ ) {
968+
969+ var color = parameters [ i ] [ 0 ] ;
970+
971+ var h = ( 360 * ( color [ 0 ] + time ) % 360 ) / 360 ;
972+ materials [ i ] . color . setHSL ( h , color [ 1 ] , color [ 2 ] ) ;
973+
974+ }
898975 if ( resizeRendererToDisplaySize ( renderer ) ) {
899976 const canvas = renderer . domElement ;
900977 camera . aspect = canvas . clientWidth / canvas . clientHeight ;
@@ -914,6 +991,7 @@ <h3>Gra zatrzymana</h3>
914991 renderer . render ( scene , camera ) ;
915992 world . updateCells ( )
916993 updateCursor ( )
994+
917995
918996}
919997 </ script >
0 commit comments