Problem mit Texturen im Web.

  • Themenstarter Themenstarter TotoWaga
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

TotoWaga

Gast
Hallo,
ich habe ein kleines Programm das .obj File einliest, was auch prima funktioniert, wenn ich's z.B. über java starte oder in ein HTML einbette und dieses mit dem Browser öffne. Nur wenn ich die Seite und alles dazu ins Netz lege, klappt es nicht, ich bekomme folgenden Fehler:

un.misc.ServiceConfigurationError: javax.imageio.spi.ImageTranscoderSpi: http://totowaga.kilu2.de/3d/META-INF/services/javax.imageio.spi.ImageTranscoderSpi:1: Illegal configuration-file syntax
at sun.misc.Service.fail(Unknown Source)
at sun.misc.Service.fail(Unknown Source)
at sun.misc.Service.parseLine(Unknown Source)
at sun.misc.Service.parse(Unknown Source)
at sun.misc.Service.access$100(Unknown Source)
at sun.misc.Service$LazyIterator.hasNext(Unknown Source)
at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(Unknown Source)
at javax.imageio.spi.IIORegistry.<init>(Unknown Source)
at javax.imageio.spi.IIORegistry.getDefaultInstance(Unknown Source)
at javax.imageio.ImageIO.<clinit>(Unknown Source)
at com.sun.j3d.utils.image.TextureLoader$2.run(TextureLoader.java:386)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:381)
at com.sun.j3d.loaders.objectfile.ObjectFileMaterials.readMapKd(ObjectFileMaterials.java:302)
at com.sun.j3d.loaders.objectfile.ObjectFileMaterials.readFile(ObjectFileMaterials.java:361)
at com.sun.j3d.loaders.objectfile.ObjectFileMaterials.readMaterialFile(ObjectFileMaterials.java:408)
at com.sun.j3d.loaders.objectfile.ObjectFile.loadMaterialFile(ObjectFile.java:525)
at com.sun.j3d.loaders.objectfile.ObjectFile.readFile(ObjectFile.java:589)
at com.sun.j3d.loaders.objectfile.ObjectFile.load(ObjectFile.java:1248)
at com.sun.j3d.loaders.objectfile.ObjectFile.load(ObjectFile.java:718)
at ObjLoad.createSceneGraph(ObjLoad.java:223)
at ObjLoad.init(ObjLoad.java:399)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Es hat irgendetwas mit den Texturen zu tun.
Wenn ich im der mtl Datei die Texture
map_Kd bild.jpg
entferne, kracht's nicht, ich sehe dann aber natürlich keine Textur.

Genau so wenig geht folgendes:
TextureLoader loader = new TextureLoader( "bild.jpg", null );
Texture2D texture = ( Texture2D ) loader.getTexture();

Ich hatte im Forum schon gesehen, das man evtl. die volle html Adresse angeben soll, das bringt aber auch nichts!

Wer kann helfen?
 
Ich habe jetzt mal ein ganz einfaches Bsp hochgeladen:
http://totowaga.kilu2.de/texture/

Der SourceCode sieht ungefähr so aus, bekommt Ihr auch den gleichen Fehler?:

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import javax.media.j3d.*;
import com.sun.j3d.utils.image.TextureLoader;

import java.net.MalformedURLException;
import java.net.URL;
public class MySimpleUniverse extends Applet
{
// Inhaltszweig
public BranchGroup erzeugeInhalt()
{
// Erzeugen einer (Wurzel)Gruppe die den geamten Inhalt des Universum aufnehmen soll
BranchGroup inhalt = new BranchGroup();
System.out.println(",))");
// Load in the Texture File
TextureLoader loader = null;
try
{
loader = new TextureLoader(new URL("http://totowaga.kilu2.de/texture/brick.jpg"),this);
}
catch (MalformedURLException e)
{
System.out.println("can't load.....");
System.err.println(e);
}


// Create Texture object
Texture brick = loader.getTexture();

// Erzeugen eines geometrischen Objektes inklusive voreingestellten Aussehens
ColorCube farbigerWuerfel = new ColorCube(0.4);

// Erzeugen einer Transformgruppe mit Zugriffsrechten fuer Maussteuerung
TransformGroup tg = new TransformGroup();
tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

// Gebe dem verwaisten Wuerfel drehfreudige Eltern
tg.addChild(farbigerWuerfel);

// Erzeuge ein Mausdrehobjekt in einem geplanten Bereich mit Ziel-Transformgruppe
MouseRotate rotor = new MouseRotate();
rotor.setSchedulingBounds(new BoundingSphere());
rotor.setTransformGroup(tg);

// Einhaengen der Transformgruppe und des Mausverhaltens in die Wurzelgruppe
inhalt.addChild(tg);
inhalt.addChild(rotor);

// Optimiert den gesamten Inhaltszweig - nicht unbedingt erforderlich
inhalt.compile();

return inhalt; // Los, gibs mir!
}

// Sichtzweig
public SimpleUniverse erzeugeSicht()
{
// Erzeugen eines minimalen virtuellen Universums mit Hilfe der SimpleUniverse-Klasse
SimpleUniverse minimalesUniversum = null;

// Besorgen der besten Konfiguration hinsichtlich der
// Anzeigeumgebung (Farbtiefe, Tranzparenzwerte der Pixel, ...)
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();

// Erzeugen des aeusserst schweren Anzeigeflaeche-Objektes
Canvas3D canvas3d = new Canvas3D(config);

// Hinzufügen der Anzeigeflaeche zum Clientbereich des Fensters
add(canvas3d);

// Uebergabe des Canvas3D-Objekts als Anzeigeflaeche
minimalesUniversum = new SimpleUniverse(canvas3d);

// setNominalViewingTransform() stellt den Betrachter 2,41m auf die positive
// z-Achse mit Sichtrichtung nach unten in negative z-Achse
minimalesUniversum.getViewingPlatform().setNominalViewingTransform();

return minimalesUniversum; // Her mit dem Mist!
}

// Diese Methode wird vom Browser beim Laden des Applets aufgerufen.
public void init()
{
// Erzeuge neues Layout für Container
setLayout(new BorderLayout());

// Sei Gott und erzeuge ein minimales Universum mit Sicht auf den Inhalt
SimpleUniverse su = erzeugeSicht();

// Sei Gott und erzeuge den Inhalt des Universums mit Maussteuerung
BranchGroup suInhalt = erzeugeInhalt();

// Es werde Licht! - verbindet Universum inklusive Sicht mit Inhalt
su.addBranchGraph(suInhalt);
}

// Startpunkt fuer die Laufzeitumgebung
public static void main(String[] args)
{
new MainFrame(new MySimpleUniverse(), 800, 600);
}
}
 
Am JDK scheint es wohl nicht zu legen. Wenn ich mir die class vom Server, auf dem es läuft, auf den kilu Server kopiere, funktioniert dort auch nicht!
 
Wenn ich hinter einem Proxy hänge (wie jetzt in der Firma), geht das Beispiel unter
http://www-evasion.imag.fr/~Francoi...va3d/TextureTest/MultiTextureTest_plugin.html
auch nicht mehr?!
Bei meinem eigenen Beispiel, bei dem ich via ObjectLoader ein obj-File einlese wird, geht aber (ohne Texturen). Werden die Images-Files (für die Texturen) und obj-Files über einen anderen Mechanismus geöffnet, oder warum werden .obj-Files gefunden, jpg-Files nicht?!

om.sun.j3d.utils.image.ImageException: javax.imageio.IIOException: Can't get input stream from URL!
at com.sun.j3d.utils.image.TextureLoader$2.run(TextureLoader.java:388)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:381)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:351)
at MultiTextureTest.createSceneGraph(MultiTextureTest.java:131)
at MultiTextureTest.init(MultiTextureTest.java:239)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(Unknown Source)
at com.sun.j3d.utils.image.TextureLoader$2.run(TextureLoader.java:386)
... 7 more
Caused by: java.io.IOException: Server returned HTTP response code: 502 for URL: http://www-evasion.imag.fr/~Francoi...a/demo/java3d/TextureTest/../images/stone.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
... 9 more
com.sun.j3d.utils.image.ImageException: javax.imageio.IIOException: Can't get input stream from URL!
at com.sun.j3d.utils.image.TextureLoader$2.run(TextureLoader.java:388)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:381)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:351)
at MultiTextureTest.createSceneGraph(MultiTextureTest.java:131)
at MultiTextureTest.init(MultiTextureTest.java:239)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(Unknown Source)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben