Optimale Grafikkarte für Java 3D programmierung?

Status
Nicht offen für weitere Antworten.

sirigor1875

Mitglied
Hallo, lieber Forum Mitglieder!

Ich möchte demnächst in Java 3d programmieren. Ich wollte mal wissen welche Grafikkarte ist am besten geeignet und bei welchen Grafikkarten Probleme gibt’s.

Ich habe gehört, dass man für die Java 3d nicht unbedingt die neuste Grafikkarte braucht, sondern es reicht schon eine ganz normaler Standart- Grafikkarte.

Ich habe zurzeit eine Trident Grafikkarte mit 8 MB SGRAM. :shock: Paar Java 3D Programme habe ich ausprobiert, die gehen, obwohl es ganz schon ruckelt.

Danke

Sirigor1875
 

Illuvatar

Top Contributor
Also ich denke, dass jede normale Grafikkarte geht, solange sie DirectX bzw. OpenGL unterstützt.
Deine Grafikkarte klingt allerdings ziemlich nach Steinzeit ;) Ich denke dass 8MB Speicher (und eine wahrschienlich dementsprechend langsame GraKa) doch auch für kleine Sachen arg wenig sind, zumal J3D nicht wirklich schnell ist...
 

sirigor1875

Mitglied
Ich hab’s gehört, dass man im Schnitt mit ATI Grafikkarten Probleme hat und, dass die GeForce Karten besser dran sind. RAM Sollte auch mindesten 512 MB sein. Stimmt es?

Sirigor1875
 

Illuvatar

Top Contributor
Ich hab ne Geforce, deshalb kann ich da nix sagen, aber mir ist von keinen Problemen mit ATI-Karten bekannt.

512MB RAM - ich vermute du meinst hier nicht den RAM der Grafikkarte? - sind sicherlich nicht falsch, Java3D ist wie gesagt nicht eben schnell, wahrscheinlich tuns aber auch 256, je nach dem was da sonst noch läuft auf dem PC.

Vielleicht meldet sich mal jemand anders zu Wort? Ich bin da jetzt nicht der Uberexperte, mit meiner Geforce 6800 GT und meinen 2048 MB RAM ;)
 

raptorrs

Aktives Mitglied
Ich habe eine ATI Fire GL 256 X2, läuft sehr gut. Aber ich glaube fast, dass mein Prozessor (1GHz) schon zu langsam für die Karte ist.
 

Soulfly

Bekanntes Mitglied
Mensch mensch mensch,

für stupides Java3d mit ein bißchen BumpMapping oder gar mit Jogl etwa machen brauch man nicht viel.
Für den Anfang reichen da 9500 Ati oder Geforce 4 MX mit jeweils 32 MB schon aus.

Trident ist natürlich etwas mickrig :) sorry!

Du brauchst also keine Hammerkarte für die ersten Erfolge, wenn du aber nen Leistungspuffer haben willst, sind
Ati X700 oder Geforce 6600GT für ein gutes Preisleistungsverhältnis zu haben.

Und von Problemen mit Ati hab ich noch nie was gehört bzw ich habe selber keine ;) auf meiner mobilen Kutsche.

MfG
Soulfly
 
E

Elmi

Gast
Illuvatar hat gesagt.:
Java3D ist wie gesagt nicht eben schnell

Hast du mal gehört von große Bruder, der muss es ja wissen, spielt schon lange Doom!

Sorry, aber solche Pauschalaussagen ohne Beleg/Begründung/Hintergrundinfo sind schlichtweg unbrauchbar. Was ist deiner Meinung nach unter welchen Bedingungen an Java3D langsam? Speziell in Anbetracht der Tatsache dass J3D auf native Libs zurückgreift?

In 99% der Fälle findet sich das eigentliche Problem schließlich zwischen Monitor und Rückenlehne...
 

Illuvatar

Top Contributor
Ok, ich gehe mal davon aus, dass du kein Troll bist, auch wenn das teilweise so klingt. Also werde ich mal kurz erklären was ich meinte - es stimmt, die Aussage war bisher unbegründet.
Vorweg: Wenn du mir Doom 3 (oder etwas entsprechendes) in Java3D mit dieser Qualität und Performance nachprogrammierst, nehm ich alles zurück. ;)
Ansonsten ist meine Meinung, dass Java3D zwar eine schöne API hat, gut zu verwenden für kleinere und eher statische Szenen, aber für einen Doom3 - Klon nicht geeignet ist.
Was an J3D imo genau langsam ist kann ich dir nicht sagen, ich glaube nicht, dass es an der nativen Anbindung liegt, und sicherlich ist das, was ich programmiere, auch nicht perfekt. Aber man schaue sich mal folgendes Programm an. QuadArrays sind nicht so schnell, ich weiß, aber das ging eben schneller zu schreiben und macht da auch nichts mehr wett. Das Programm ruckelt bei mir erheblich! (und ich kann beispielsweise Far Cry mit HDR auf Ultrahohen Einstellungen und 1600x1200 ruckelfrei spielen - Doom habe ich leider noch nie gespielt, und einen großen Bruder hab ich auch nicht):

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.*;  //SimpleUniverse
import com.sun.j3d.utils.behaviors.vp.*; //OrbitBehavior

public class PerformanceTest extends JFrame implements ActionListener
{
  public static final long serialVersionUID = 0;
  public static final int SIDE_LENGTH = 125;
  //Konstruktor
  public PerformanceTest()
  {
    super ("Performance-Test");
    setSize (getToolkit().getScreenSize());
    setLocationRelativeTo (null);  //zentrieren
    setDefaultCloseOperation (EXIT_ON_CLOSE);
    JPopupMenu.setDefaultLightWeightPopupEnabled (false);
    setCloseMenuBar (this);

    Canvas3D c3d = new Canvas3D (SimpleUniverse.getPreferredConfiguration());  //So am besten
    SimpleUniverse simpleU = new SimpleUniverse (c3d);  //Das VirtualUniverse, hier wird auch schon der View hinzugefügt
    BranchGroup scene = createSceneGraph();
    OrbitBehavior orbit = new OrbitBehavior(c3d, OrbitBehavior.REVERSE_ALL);
    orbit.setSchedulingBounds (new BoundingSphere (new Point3d(), 10000));
    simpleU.getViewingPlatform().setViewPlatformBehavior (orbit);
    scene.compile();
    simpleU.addBranchGraph (scene);  //Fügt den SceneGraph hinzu
    
    Transform3D cam = new Transform3D();
    simpleU.getViewingPlatform().getViewPlatformTransform().getTransform(cam);
    cam.setTranslation (new Vector3f (0, 8, 10));
    simpleU.getViewingPlatform().getViewPlatformTransform().setTransform(cam);

    add (c3d);
    setVisible (true);
  }
  public BranchGroup createSceneGraph() {
    BranchGroup objRoot = new BranchGroup();
    TransformGroup objSpin = new TransformGroup();
    objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    objRoot.addChild(objSpin);

    Alpha rotationAlpha = new Alpha(-1, 60000); //Unendlich oft drehen, einmal in 60 s
    RotationInterpolator rotator =
       new RotationInterpolator(rotationAlpha, objSpin);
    BoundingSphere bounds = new BoundingSphere(new Point3d(), 10000);
    rotator.setSchedulingBounds(bounds);
    objSpin.addChild(rotator);
    
    BranchGroup hill = createHill();
    objSpin.addChild(hill);

    return objRoot;
  }
  public BranchGroup createHill()
  {
    GeometryArray array = new QuadArray(SIDE_LENGTH * 1000, GeometryArray.COORDINATES);
    Point3d point = new Point3d();
    System.out.println("Generating Points...");
    
    for (int i = 0, index = 0; i < SIDE_LENGTH; i++){
      point.x = -SIDE_LENGTH / 20 + i / 10.0;
      for (int j = 0; j < SIDE_LENGTH; j++){
        point.z = -SIDE_LENGTH / 20 + j / 10.0;
        setCoordinate(array, index++, point);
        point.z += 0.1;
        setCoordinate(array, index++, point);
        point.x += 0.1;
        setCoordinate(array, index++, point);
        point.z -= 0.1;
        setCoordinate(array, index++, point);
        point.x -= 0.1;
      }
    }
    System.out.println("Done");

    Appearance appearance = new Appearance();
    appearance.setColoringAttributes(new ColoringAttributes(new Color3f(Color.WHITE), ColoringAttributes.FASTEST));
    appearance.setPolygonAttributes(new PolygonAttributes(PolygonAttributes.POLYGON_LINE, PolygonAttributes.CULL_NONE, 0));
    
    Shape3D shape = new Shape3D (array, appearance);
    BranchGroup bg = new BranchGroup();
    bg.addChild (shape);
    return bg;
  }
  private void setCoordinate (GeometryArray array, int index, Point3d point)
  {
    //y = 5 / (0.2*x²+0.8)    (und für z)
    point.y = 5 / (0.2 * point.x * point.x + 0.8) + 5 / (0.2 * point.z * point.z + 0.8);
    array.setCoordinate(index, point);
  }
  //Beenden-Menu
  private void setCloseMenuBar (JFrame f)
  {
    JMenuBar jmb = new JMenuBar();
    JMenu jm = new JMenu ("Datei");
    jmb.add (jm);
    JMenuItem close = new JMenuItem ("Beenden");
    jm.add (close);
    close.addActionListener (this);
    f.setJMenuBar (jmb);
  }
  public void actionPerformed (ActionEvent evt)
  {
    System.exit (0);
  }
  //Startmethode
  public static void main (String[]args)
  {
    new PerformanceTest();
  }
}

Btw: Das Thema ist stark teilungsgefährdet ;)
 

sirigor1875

Mitglied
Es hat sogar bei mir funktioniert. Mit Trident 8 MB RAM! :applaus: , leider nicht ruckelfrei, Aber… laut Illuvatar mit Geforce 6800 GT ruckelt es ja auch.
 
E

Elmi

Gast
> Wenn du mir Doom 3 (oder etwas entsprechendes) in Java3D mit dieser Qualität und Performance
> nachprogrammierst, nehm ich alles zurück. ;)

Eine seltsame Beweislastumkehr - du bist nicht in der Lage deine Behauptungen zu belegen also soll ich sie dir - mal eben nebenbei mit einer Monsterapplikation - widerlegen? Und mir wirfst du vor ein Troll zu sein...

> QuadArrays sind nicht so schnell, ich weiß

Da weißt du wohl was falsches. Quads sind unter OpenGL sehr schnell, lediglich wenn DirectX zum Einsatz kommt werden sie wie zwei Triangles behandelt - sind damit also auch nicht langsamer als der Rest.

Zu deiner Applikation: Die Optimierungstools mit denen man die eigenen Geometrien performancesparender gestalten kann sind an dir scheinbar genau so vorüber gegangen wie die Tatsache dass es auch schon optimierte GeometryArrays gibt. Von der Geschichte mit dem Face-Culling ganz zu schweigen. Das sind jetzt nur die Probleme die mir beim Überfliegen deiner Applikation aufgefallen sind.

Wenn ich dann lese dass diese Applikation mit einer Uralt-Grafikkarte ähnlich ruckelt wie bei dir, gilt wohl wieder die Monitor-Rückenlehne-Regel: Welches System hast du, welche Grafikschicht, ist die 3D-Beschleunigung für J3D tatsächlich aktiv?

Elmi
 

Illuvatar

Top Contributor
Elmi hat gesagt.:
> Wenn du mir Doom 3 (oder etwas entsprechendes) in Java3D mit dieser Qualität und Performance
> nachprogrammierst, nehm ich alles zurück. ;)

Eine seltsame Beweislastumkehr - du bist nicht in der Lage deine Behauptungen zu belegen also soll ich sie dir - mal eben nebenbei mit einer Monsterapplikation - widerlegen? Und mir wirfst du vor ein Troll zu sein...

Schon mal was von der Bedeutung eines ;) gehört? :-/

> QuadArrays sind nicht so schnell, ich weiß

Da weißt du wohl was falsches. Quads sind unter OpenGL sehr schnell, lediglich wenn DirectX zum Einsatz kommt werden sie wie zwei Triangles behandelt - sind damit also auch nicht langsamer als der Rest.

Naja, ich hab DX laufen... und ich meinte im Unterschied zu GeometryStripArrays - von denen glaube ich, dass sie schneller sind, falls das nicht stimmt, kannst du mich gerne berichtigen, aber bitte mit Quellenangabe.

Zu deiner Applikation: Die Optimierungstools mit denen man die eigenen Geometrien performancesparender gestalten kann sind an dir scheinbar genau so vorüber gegangen wie die Tatsache dass es auch schon optimierte GeometryArrays gibt. Von der Geschichte mit dem Face-Culling ganz zu schweigen. Das sind jetzt nur die Probleme die mir beim Überfliegen deiner Applikation aufgefallen sind.

Was meinst du damit jetzt genau? Außerdem wäre Culling etwas doof, wenn sich das Objekt dreht und auch noch ein OrbitBehavior eingebaut ist. Nur so: hast du das Programm schonmal ausgeführt?

Wenn ich dann lese dass diese Applikation mit einer Uralt-Grafikkarte ähnlich ruckelt wie bei dir, gilt wohl wieder die Monitor-Rückenlehne-Regel: Welches System hast du, welche Grafikschicht, ist die 3D-Beschleunigung für J3D tatsächlich aktiv?

Ok. Ich nehme so einiges zurück. Wo ich das überprüft habe ist mir aufgefallen, dass eine alte J3D-Version installiert war :roll: Mit der 1.4.0_01 kann ich SIDE_LENGTH verzehnfachen bis es wieder ruckelt - das ist schon ganz ok, ob es jetzt für ein Doom reichen würde weiß ich nicht, aber es ist schon deutlich näher dran.

(Wer das testen will: Es gibt nen Bug, Zeile 60 müsste lauten:)
Code:
GeometryArray array = new QuadArray(SIDE_LENGTH * SIDE_LENGTH * 4, GeometryArray.COORDINATES);

Ach ja @OP: Ist deine Frage jetzt soweit geklärt?
 

EgonOlsen

Bekanntes Mitglied
Muss es PCI sein? Das Board hat kein AGP? In dem Fall kannst du die ruhig nehmen. Oder eine GeForce6200. Generell haftet ATI immer noch das Märchen von den schlechteren Treibern an, aber das stimmt nicht mehr. Für Java3D sind die Dinger völlig ok. Ansonsten ziehst du mit so einer Karte natürlich so oder so keinen toten Hering mehr vom Teller, es sei denn, du hältst den Teller schief. Aber besser als deine Trident ist die auf jeden Fall.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Optimale Wegberechnung einer KI Spiele- und Multimedia-Programmierung 6
M Grafikkarte "benutzen"? Spiele- und Multimedia-Programmierung 7
F Mac: OpenGL Desktop-Screen aus Grafikkarte lesen Spiele- und Multimedia-Programmierung 2
N Minecraft Frage für einen Minecraft Server Spiele- und Multimedia-Programmierung 2
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
B Deepmind Poker Bot für PokerStars konfigurieren? Spiele- und Multimedia-Programmierung 2
G Minecraft PlayerBot (Listener Thread für jeden Spieler?) Spiele- und Multimedia-Programmierung 3
K Wie bekomme ich eine Transition für alle Objekte zum stoppen? Spiele- und Multimedia-Programmierung 1
E Organisation für Game Spiele- und Multimedia-Programmierung 1
Excess Ballerfisch für Android Spiele- und Multimedia-Programmierung 3
coolian ich brauche irgendeine gui lib für lwjgl2 Spiele- und Multimedia-Programmierung 51
krgewb Anderer Algorithmus für Bounding Box Spiele- und Multimedia-Programmierung 9
MiMa MP3 Dateien für Metadaten abgleichen Spiele- und Multimedia-Programmierung 0
Freshy Bot für Discord Spiele- und Multimedia-Programmierung 61
R Ideen für die Backend-Entwicklung eines Games gesucht Spiele- und Multimedia-Programmierung 8
G Mikrophon-/Audiosteuerung für einen Character Spiele- und Multimedia-Programmierung 1
P Tennis- Spielstand- Zähler für Schule programmieren Spiele- und Multimedia-Programmierung 6
M Logik für ein Quiz Spiele- und Multimedia-Programmierung 7
P Hilfe für Seminar Arbeit Spiele- und Multimedia-Programmierung 9
MiMa Metadaten für Multimedia Daten ermitteln Spiele- und Multimedia-Programmierung 4
G Übungsprogramm für Matheaufgaben Spiele- und Multimedia-Programmierung 1
F Algorithmus für bessere Kollisionsabfragen Spiele- und Multimedia-Programmierung 10
S Bilder Für Schachfiguren Spiele- und Multimedia-Programmierung 14
Timo_neu_in_java Suche etwas einfaches für Anfänger Spiele- und Multimedia-Programmierung 6
I Minecraft Suche Plugin Developer für Minecraft Netzwerk! Spiele- und Multimedia-Programmierung 2
S GUI erstellen für Text Adventure Spiele- und Multimedia-Programmierung 4
S Eigene Klasse vec_t - 3 oder 4 Einheiten für x, y, z und w Spiele- und Multimedia-Programmierung 11
R Vererbbarer GameLoop für Engine Spiele- und Multimedia-Programmierung 14
J Vektor für Gravitation erzeugen Spiele- und Multimedia-Programmierung 34
I Minecraft: Craftingrecipe für Braustand ändern Spiele- und Multimedia-Programmierung 9
Z Minimax-Algorithmus für TicTacToe Spiele- und Multimedia-Programmierung 5
H KI für Spiele Spiele- und Multimedia-Programmierung 1
S Pssende Datenstruktur für ein Netz Spiele- und Multimedia-Programmierung 5
S MouseEvents für Sprites Spiele- und Multimedia-Programmierung 3
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
J mehrere Listener für einen Button / Label Spiele- und Multimedia-Programmierung 1
C Port umleiten: lesen und schreiben für MCServer-Client über Skype Spiele- und Multimedia-Programmierung 0
J Musik Bibliothek für GUI Spiele- und Multimedia-Programmierung 7
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
R Ratschlag für 2D-3D Engine für die Spieleentwicklung gesucht Spiele- und Multimedia-Programmierung 4
Androbin KI für Verfolgung im Raster Spiele- und Multimedia-Programmierung 2
A Bot für Browsergame Spiele- und Multimedia-Programmierung 2
H Tutorials für Fortgeschrittene 3D-Anwedungen Spiele- und Multimedia-Programmierung 2
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
Furtano Vektoren für Bewegung für eine 2D-Simulation Spiele- und Multimedia-Programmierung 3
T Sinusgenerator für eine Hp Spiele- und Multimedia-Programmierung 8
J Menü für Snakespiel in einzelnem JFrame Spiele- und Multimedia-Programmierung 5
M Minecraft weitere Java Entwickler für minecraft projekt gesucht Spiele- und Multimedia-Programmierung 0
Guybrush Threepwood Ketzerische Frage: Opus-Codec für Java Spiele- und Multimedia-Programmierung 14
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Aufbau für 2D Spiele Spiele- und Multimedia-Programmierung 7
L Client für ein Browsergame Spiele- und Multimedia-Programmierung 21
Devil0s Swing Elemente für Inventar? Spiele- und Multimedia-Programmierung 9
Kenan89 Ansatzfrage: Kartenspiel für 2 Spieler Online Spiele- und Multimedia-Programmierung 3
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
P Spielfeld für RPG Spiele- und Multimedia-Programmierung 15
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
S Algorithmus zur Ressourcesuche für die KI Spiele- und Multimedia-Programmierung 5
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
K Einfache Engine für einfaches 3D gesucht Spiele- und Multimedia-Programmierung 10
C KI für Skatspiel - Wie können die Computerspieler eigenständig handeln? Spiele- und Multimedia-Programmierung 10
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
Kenan89 Kleines Projekt für Java Spiele- und Multimedia-Programmierung 5
M Empfehlungen für ein 2D-Jump'n'run Spiele- und Multimedia-Programmierung 4
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
C Wo ist der MP3 Plugin für JMF? Spiele- und Multimedia-Programmierung 3
qwerqer Design Pattern gesucht für Spielregeln Spiele- und Multimedia-Programmierung 2
M Java als Programmiersprache für kommerzielle Spieleentwicklung? Spiele- und Multimedia-Programmierung 3
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
Y Warum Thread für Spieleprogrammierung? Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
Gossi Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele" Spiele- und Multimedia-Programmierung 4
M Minecraft Suche Java Programmierer (für Minecraft) Spiele- und Multimedia-Programmierung 2
Luk10 Tipps für bessere Animationen / Grafik Engine Spiele- und Multimedia-Programmierung 2
T 2D Menü für 3D Spiel Spiele- und Multimedia-Programmierung 5
T Grundlagenwissen für den 3D Raum Spiele- und Multimedia-Programmierung 6
I getSubImage sorgt für starken Performanceeinbruch Spiele- und Multimedia-Programmierung 6
M technologie für video, webcam & co Spiele- und Multimedia-Programmierung 25
C Java für große Spiele geeignet ? Spiele- und Multimedia-Programmierung 101
D Libraryempfehlung für Effekte Spiele- und Multimedia-Programmierung 3
B Spiele programmieren für ein Fenster? Spiele- und Multimedia-Programmierung 14
D Tabelle für Spiel Spiele- und Multimedia-Programmierung 3
N Grundlagen für ein Jump&Run Spiele- und Multimedia-Programmierung 3
S Datenbank gesucht für Bilder(gif-dateien) Spiele- und Multimedia-Programmierung 5
J Suche 3D Programm für jMonkeyEngine Spiele- und Multimedia-Programmierung 5
W 3D-APIs für Java - Eine Übersicht Spiele- und Multimedia-Programmierung 8
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
K Lösungsansätze für ein Spiel Spiele- und Multimedia-Programmierung 2
Plastagen Frameworls für Animationen und co Spiele- und Multimedia-Programmierung 3
aze Wie Transform3D für PosPathInterpolator bestimmen Spiele- und Multimedia-Programmierung 8
M Musik für Spiel wo downloaden? Spiele- und Multimedia-Programmierung 7
R Netzwerkstruktur für ein kleines Spiel Spiele- und Multimedia-Programmierung 8
O KI (künstliche Intelligenz) für Schachlogik Spiele- und Multimedia-Programmierung 4
J Brauche denkanstoß für kleines grafikframework Spiele- und Multimedia-Programmierung 3
A Countdown-Timer für Spiel Spiele- und Multimedia-Programmierung 4
J Tips für ein kleines Pong-Applet Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben