1
+ package jme3test .scene .instancing ;
2
+
3
+ import com .jme3 .app .SimpleApplication ;
4
+ import com .jme3 .light .PointLight ;
5
+ import com .jme3 .material .Material ;
6
+ import com .jme3 .math .ColorRGBA ;
7
+ import com .jme3 .math .Vector3f ;
8
+ import com .jme3 .scene .Geometry ;
9
+ import com .jme3 .scene .instancing .InstancedNode ;
10
+ import com .jme3 .scene .shape .Box ;
11
+
12
+ public class TestInstanceNodeWithPbr extends SimpleApplication {
13
+ // Try to test with different offset
14
+ private static float offset = 12 ;
15
+
16
+ public static void main (String [] args ) {
17
+ TestInstanceNodeWithPbr app = new TestInstanceNodeWithPbr ();
18
+ app .start ();
19
+ }
20
+
21
+ private Geometry box ;
22
+ private PointLight pointLight ;
23
+
24
+ @ Override
25
+ public void simpleInitApp () {
26
+ InstancedNode instancedNode = new InstancedNode ("testInstancedNode" );
27
+ rootNode .attachChild (instancedNode );
28
+
29
+ box = new Geometry ("PBRLightingBox" , new Box (0.5f , 0.5f , 0.5f ));
30
+ Material pbrLightingMaterial = new Material (assetManager , "Common/MatDefs/Light/PBRLighting.j3md" );
31
+ pbrLightingMaterial .setBoolean ("UseInstancing" , true );
32
+ pbrLightingMaterial .setColor ("BaseColor" , ColorRGBA .Red );
33
+ box .setMaterial (pbrLightingMaterial );
34
+
35
+ instancedNode .attachChild (box );
36
+ instancedNode .instance ();
37
+
38
+ pointLight = new PointLight ();
39
+ pointLight .setColor (ColorRGBA .White );
40
+ pointLight .setRadius (10f );
41
+ rootNode .addLight (pointLight );
42
+
43
+ box .setLocalTranslation (new Vector3f (offset , 0 , 0 ));
44
+ pointLight .setPosition (new Vector3f (offset - 3f , 0 , 0 ));
45
+
46
+ cam .setLocation (new Vector3f (offset - 5f , 0 , 0 ));
47
+ cam .lookAtDirection (Vector3f .UNIT_X , Vector3f .UNIT_Y );
48
+ }
49
+
50
+ @ Override
51
+ public void simpleUpdate (float tpf ) {
52
+ offset += tpf ;
53
+
54
+ System .err .println (offset );
55
+ box .setLocalTranslation (new Vector3f (offset , 0 , 0 ));
56
+ pointLight .setPosition (new Vector3f (offset - 3f , 0 , 0 ));
57
+
58
+ cam .setLocation (new Vector3f (offset - 5f , 0 , 0 ));
59
+ cam .lookAtDirection (Vector3f .UNIT_X , Vector3f .UNIT_Y );
60
+ }
61
+ }
0 commit comments