2012-05-02 12 views
1

JmonkeyEngineのx、y、zが範囲0..100の10000個のランダム3D点をプロットする方法の例を教えてもらえますか?私はjava3Dの代わりにJmonkeyを使うよう提案されました。私は両方に新しいです。 ありがとうJava:JMonkeyで3D点をプロットする

+0

あなたはこれまでに何を得ていますか? SDKに含まれているチュートリアルやサンプルに従って、いくつかのクワッドをレンダリングしてカメラなどを持っているアプリケーションを起動してください。 – Torious

答えて

1

これはJMonkey2で作成されています。次の例では、10000個の球が0〜100になります。これはほぼ完全なボックスとして終わります。 WASDを使用してカメラを制御します。

package wall; 

import java.util.Random; 
import java.util.concurrent.Callable; 

import com.jme.math.Vector3f; 
import com.jme.scene.shape.Sphere; 
import com.jme.util.GameTaskQueueManager; 
import com.jmex.editors.swing.settings.GameSettingsPanel; 
import com.jmex.game.StandardGame; 
import com.jmex.game.state.DebugGameState; 
import com.jmex.game.state.GameStateManager; 

public final class SphereExample { 

    private static final int MAX = 100; 
    private static final int TOTAL = 10000; 

    public static void setupGame() { 
     final DebugGameState state = new DebugGameState() { 
      @Override 
      public void update(final float timeStep) { 

       // Update the game state 
       super.update(timeStep); 
      } 
     }; 
     final Random random = new Random(); 
     for (int i = 0; i < TOTAL; i++) { 
      final Sphere sphere = new Sphere("sphere", 5, 5, 1); 
      sphere.setLocalTranslation(random.nextInt(MAX), 
        random.nextInt(MAX), random.nextInt(MAX)); 
      sphere.updateRenderState(); 
      state.getRootNode().attachChild(sphere); 
     } 

     GameStateManager.getInstance().attachChild(state); 
     state.setActive(true); 

    } 

    public static void main(final String[] args) throws Exception { 

     final StandardGame game = new StandardGame("Points"); 

     if (GameSettingsPanel.prompt(game.getSettings())) { 

      game.start(); 

      GameTaskQueueManager.getManager().update(
        new Callable<Void>() { 
         @Override 
         public Void call() throws Exception { 
          setupGame(); 
          game.getCamera() // moves the camera to the middle 
              // of the spheres 
            .setFrame(
              new Vector3f(50.0f, 
                50.0f, 50.0f), 
              new Vector3f(-1.0f, 0.0f, 
                0.0f), 
              new Vector3f(0.0f, 1.0f, 
                0.0f), 
              new Vector3f(0.0f, 0.0f, 
                -1.0f)); 
          game.getCamera().update(); 
          game.getCamera().apply(); 
          return null; 
         } 
        }); 
     } 
    } 
} 
+0

あなたのfpsは何ですか? –

+0

注: Jmonkey2はゆっくりと減価償却されていますが、Jmonkey3は技術的にはまだベータ版ですが、 –

関連する問題