Main Menu

Publikationsproblem....

Started by dieter1a, February 24, 2007, 12:39:27 PM

Previous topic - Next topic

EgonOlsen

Quote from: "dieter1a"Die Online-Version hättest Du Dir im Internet Explorer anschauen können.
In der .exe Version sehe ich keine Möglichkeit aus dem 3D-Raum auf das Internet zugreifen zu können.
Nee, weil ich den IE7 habe und auch nicht vorhabe, den zu deinstallieren.
Die Möglichkeit des Internetzugriffs hat generell nichts damit zu, ob etwas im Applet/Plugin oder als Applikation läuft...aber wenn das mit dem Blender-Teil nicht geht, dann ist das natürlich ein Problem. Mit Java wäre es keines.
Gibt es dieses Turm-Modell irgendwie als OBJ/MTL-File plus Texturen? Dann könnte man das zumindest mal testweise laden. Würde euch vielleicht einen besseren Eindruck davon geben, wie das aussieht.

dieter1a

Quote from: "EgonOlsen"Nee, weil ich den IE7 habe und auch nicht vorhabe, den zu deinstallieren.
Mit IE7 geht`s auch, man kommt nur nicht vom 3D-Raum ins Web.
Quote from: "EgonOlsen"Mit Java wäre es keines.
Darüber wüßte ich gerne mehr.
Erreicht man denn mit Java die gleiche interaktivität mit Ray usw?
Gibt es für jPCT ein deutsches Handbuch?
Quote from: "EgonOlsen"Gibt es dieses Turm-Modell irgendwie als OBJ/MTL-File plus Texturen? Dann könnte man das zumindest mal testweise laden. Würde euch vielleicht einen besseren Eindruck davon geben, wie das aussieht.
Da müßte ich mich erstmal schlau fragen ob es für Blender 2.25 einen OBJ.Exporter gibt. Ansonsten kein Problem.
Würde mich natürlich interessieren wie das alles mit Eurem Tool funktioniert und aussieht und vor allem welche Möglichkeiten man hat.

EgonOlsen

Quote from: "dieter1a"Darüber wüßte ich gerne mehr.
Erreicht man denn mit Java die gleiche interaktivität mit Ray usw?
Gibt es für jPCT ein deutsches Handbuch?
Was ist "Ray" in diesem Zusammenhang? Was ich mit "kein Problem" meine, ist das ich mit Java problemlos Verbindungen gleich welcher Art zu Servern im Netz herstellen kann. Entweder direkt per http oder über ein eigenes Protokoll über Sockets (TCP, UDP...was immer es sein soll) oder oder oder...
Ein deutsches Handbuch oder eine deutsche API-Beschreibung gibt es leider nicht.

dieter1a

Quote from: "EgonOlsen"Was ist "Ray" in diesem Zusammenhang?
In Blender gibt es diverse Möglichkeiten über unterschiedliche Sensoren bestimmte Prozesse in Gang zu setzen.
Ray ist z.B ein Strahl. Wenn das Fadenkreuz in der Mitte des Windows auf ein bestimmtes Objekt zeigt, wird etwas in Gang gesetzt.

EgonOlsen

Quote from: "dieter1a"In Blender gibt es diverse Möglichkeiten über unterschiedliche Sensoren bestimmte Prozesse in Gang zu setzen.
Ray ist z.B ein Strahl. Wenn das Fadenkreuz in der Mitte des Windows auf ein bestimmtes Objekt zeigt, wird etwas in Gang gesetzt.
Das hat ja primär nichts mit Java zu tun, sondern ob die genutzte Engine sowas bietet oder nicht. jPCT kann natürlich einen Strahl in den Raum "feuern" und man bekommt dann das getroffene Objekt zurück. Was dann passiert ist aber Applikationslogik. Das muss man explizit ausprogrammieren oder sich halt selber ein Framework stricken, welches für diesen Fall bestimmte Aktionen anbietet. Das kann auch eine Interaktion mit einem Server im Internet oder ähnliches sein. Ein Beispiel, wie sowas im Code aussehen kann:


package example;

import com.threed.jpct.*;

public class RayObjectListener implements CollisionListener {

  public RayObjectListener() {}

  public boolean requiresPolygonIDs() {
     return false;
  }

  public void collision(CollisionEvent e) {

     // Ein Strahl hat ein Objekt getroffen, an dem dieser Listener "hängt":
     if (e.getType()==CollisionEvent.TYPE_TARGET && e.getAlgorithm()==CollisionEvent.ALGORITHM_RAY) {
        Object3D obj=e.getObject();

        // Ein bestimmtes Objekt namens "was auch immer"?
        if (obj.getName().equals("was auch immer")) {
             // ok, dann mach schlaue Sachen damit...

             obj.rotateX(1);  // Ein bisschen drehen
             SoundManager.getInstance().play("rums");  // Einen Sound abspielen
             Network.callURL("http://www.schlaue-sachen.de");  // Eine URL aufrufen
             // ...oder sonstwas...
        }
     }
  }
}


Dazu müsste man eine Instanz obiger Klasse an die in Frage kommenden Objekte hängen und die Anwendung müsste zusätzlich noch den Strahl unter bestimmten Bedingungen (z.B. bei Mausklick) in die Szene "feuern".
D.h. mit anderen Worten: Wenn man das so macht, müsste man sich dabei vollständig von Blender lösen. Blender wäre "nur" noch die Modellierungssoftware...der ganze Rest würde in Java stattfinden. Wenn man das nicht will...ja, dann müsste man in der Tat die gesamte Funktionalität des Plugins nachbauen und damit die Büchse der Pandorra öffnen... :wink:

dieter1a

Prima,
Wie sieht es denn eigentlich mit den Anforderungen an die Grafikkarte aus.
Wenn man in Blender zu viel in eine Scene packt. geht das Ruckeln los.
Kann man mit Eurem Tool auch bestimmte Objekte in eine Scene laden und sie bei Bedarf wieder verschwinden lassen?

tonikov

Quote from: "EgonOlsen"Das ist eine gewaltige Aufgabe, die man nicht mal so nebenbei bewältigt.
Das habe ich mir schon gedacht. OpenSource würde es aber  möglich machen.

Quote from: "EgonOlsen"Dazu müsste man sich dann aber von Python verabschieden und auf Java umschwenken, was sicherlich erstmal eine Umstellung sein wird.
Die Leute, welche die Blender GE verwenden, programmieren schon in Python. Wenn die erfahren, daß man mit diesem Exporter nicht nur lokal ausführbare Anwendungen für alle gängigen Betriebssysteme erstellen kann, sondern ihre Games auch als Browser-Applet und auf PocketPC's und Smartphones laufen, dann werden die sich diese Umstellung auch antun. Ganz bestimmt!

Wieder mal so eine Idee von einem Nicht-Informatiker: kann man jPCT nicht gleich komplett in Blender als Ersatz für die bisherige GE integrieren?

Quote from: "EgonOlsen"Warum ist es eigentlich keine Option, einfach die *.exe anzubieten (so wie es beim Turm ja auch gemacht wurde, denn sonst hätte ich den gar nicht begucken können) und sich von der Darstellung direkt im Browser zu verabschieden?
Erst durch die Möglichkeit eine 3D-Simulation (müssen ja nicht immer Games sein) im Internet darstellen zu können, ergeben sich ungeahnete Möglichkeiten auch im kommerziellen Bereich. Und da Blender ein All-In-One Paket ist, welches auf den Betriebssystemen Windows, Mac, Linux und BeOS und ein paar weiteren läuft, hat es gute Chancen im 3D-Bereich die Nummer 1 zu werden.

tonikov

Quote from: "EgonOlsen"D.h. mit anderen Worten: Wenn man das so macht, müsste man sich dabei vollständig von Blender lösen. Blender wäre "nur" noch die Modellierungssoftware...der ganze Rest würde in Java stattfinden. Wenn man das nicht will...ja, dann müsste man in der Tat die gesamte Funktionalität des Plugins nachbauen und damit die Büchse der Pandorra öffnen...
Nur um ein Verständnisproblem zu vermeiden:
Es geht nicht um den Blender-ActiveX-Plugin-Nachbau, denn daß die Anwendung dann als Java-Applet in einem Browser läuft ist sowieso die Sache von jPCT und Java.

Es geht eher um den Export der Blender GE Funktionalitäten  (natürlich auch der Modelle u.s.w.) in eine jPCT-Java-Klasse. D.h. ich kann alle Modelle/Levels/Gamemenü in Blender erstellen und mit Interaktivität ausstatten, dann geht das Ganze nach jPCT. Dort kann ich dann per Hand in einer IDE Sachen dazuprogrammieren, welche die Blender GE nicht bietet.

EgonOlsen

Quote from: "tonikov"
Nur um ein Verständnisproblem zu vermeiden:
Es geht nicht um den Blender-ActiveX-Plugin-Nachbau, denn daß die Anwendung dann als Java-Applet in einem Browser läuft ist sowieso die Sache von jPCT und Java.
Aber das wäre es doch faktisch, denn...

Quote from: "tonikov"D.h. ich kann alle Modelle/Levels/Gamemenü in Blender erstellen und mit Interaktivität ausstatten
...genau das ist das Problem, die Interaktivität. Das sehe ich nicht, dass man das mit moderatem Aufwand hinbekommt. Schließlich müsste man das, was Blender da macht (wie auch immer) erstmal javaseitig nachbilden und dann von Blender nach Java konvertieren (wie auch immer). Das ist sicher nicht trivial und überschreitet zumindest meine zeitlichen Möglichkeiten. Ich kann nicht mal Blender ansatzweise. Ich habe es mir mal angeguckt, fand die Benutzerführung aber schrecklich "anders" und so ungewohnt, dass sie mich abgeschreckt hat. Davon abgesehen stammen meine letzten Modellererfahrungen noch vom Amiga und ich habe auch keine Zeit und Lust, sie aufzufrischen. Deshalb würde ich das momentan komplett nach Java verlagert sehen. D.h. Modelle in Blender, dann Export, dann den Rest in Java.

Mein Vorschlag ist daher erstmal: Wenn ihr mir dieses Turm-Modell als OBJ und inkl. der Texturen zur Verfügung stellt, dann würde ich, wenn es die Zeit erlaubt, mal ein Beispiel bauen, welches das Ding lädt und wo man dann da durch wandern kann. Dann sehen wir mal, wie weit das trägt, oder ob es gar aus irgendwelchen Gründen völlig unbrauchbar für eure Zwecke ist.

tonikov

QuoteDas ist sicher nicht trivial und überschreitet zumindest meine zeitlichen Möglichkeiten.
Genau so sehe ich das auch. Das ist kein 1-Mann-Projekt. Man müsste dafür genügend andere finden, z.B. hier:

http://blenderartists.org/forum/forumdisplay.php?f=12  
oder hier: http://projects.blender.org/
oder hier: http://www.blender.org/development/

oder direkt bei //www.blender.org, vielleicht kann man ja Ton Rosendaal (Mr. Blender himself) selbst dafür begeistern, zumindest wird er einige Leute kennen. Einer sollte halt die Projektleitung darüber haben, und der muß ja nicht die ganze Zeit selber coden.

QuoteIch kann nicht mal Blender ansatzweise. Ich habe es mir mal angeguckt, fand die Benutzerführung aber schrecklich "anders" und so ungewohnt, dass sie mich abgeschreckt hat.
Da geht es Dir wie allen, welche mit Blender begonnen haben. Wenn aber die ersten Hürden (so ca. nach 2 Wochen) überwunden sind, will man mit keiner anderen Software mehr arbeiten.

Für das Programmieren so eines Exporters ist es natürlich zwingend notwendig sich in der Blender GE zumindest ein bißchen auszukennen. Man muss nicht alle Features von Blender kennen, das meiste wird nur für die Rendering-Sachen benötigt. Die GE is ein eigener Bereich in Blender und muss man dabei getrennt sehen.

QuoteD.h. Modelle in Blender, dann Export, dann den Rest in Java.
Diese Möglichkeit gibt es ja schon mit einem Exporter für 3ds (ist in der Zwischenzeit verbessert worden) und obj-Dateien.