|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
08.07.2010, 07:31 |
| Land: |
 |
| Homepage: |
http://Shiny3D.de |
| |
 Erfahren mit 171 Punkte, 129 Beiträge |
| |
|
Nicht das ich schon so weit wäre aber damit ich nicht in die völlig falsche Richtung abdrifte mal was generelles.
Das CounterPlugin z.B. schreibt direkt in den Canvas Text (auch GL) . Bones werden in allen Ansichten angezeigt im AOI Format gespeicher und sind nicht renderbare "Objekte".
Was für eine Strategie wäre wohl möglich um eigene editierbare, sichtbare aber nicht renderbare Dinge wie Gelenke, Federn, und andere physikalische Dinge in AOI zu intregieren via Plugin um nicht's am AOI Quellcode ändern zu müssen.
Vielleicht ist das aber auch garnicht oder nur mit sehr trickreichen Mitteln zu erreichen. Sonst wüste ich nicht warum bei der FluidPlugin Entwicklung nicht auch ein ähnlicher Weg bestritten wurde.
Nachdenkliche Grüsse 
DJLinux
|
|
|
|
TroY , 23.07.2010, 12:54
|
Beitrag #2
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
25.12.2007, 23:49 |
| Land: |
 |
| 3D Prog.: |
Art of Illusion |
| Homepage: |
http://www.uninformativ.de |
| |
 AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge |
| |
|
Ich glaube, da kannst du dich am NullObject orientieren. Das ist auch eine abgeleitete Klasse von Object3D und man kann es in der Szene rumschubsen, sieht es dort und so weiter. Aber gerendert wird es nicht. Vornehmlich wohl, weil seine Methode „getRenderingMesh()“ nur „null“ zurückliefert – die Methode ist in NullObject.java gar nicht überschrieben, stammt also noch direkt aus Object3D.java.
Sprich, wenn du eine Subklasse von Object3D erzeugst ohne „getRenderingMesh()“ zu überschreiben, dann sollte es nicht rendern. 
- github - Warum der Begriff „Open Source“ am Kern der Sache vorbei geht
|
|
|
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
08.07.2010, 07:31 |
| Land: |
 |
| Homepage: |
http://Shiny3D.de |
| |
 Erfahren mit 171 Punkte, 129 Beiträge |
| |
|
Hallo Troy, man ist das ruhig hier auf dem Forum geworden wohl alle Ihr Konten "geplündert" und in den Urlaub geflogen. 
Ich bin gerade der Javamenia verfallen und "zeune" das Pferd von hinten auf. Erst vor eineinhalb Jahren habe ich mit Elektronik angefangen und schon ein halbes Jahr später meine ersten eigenen Komputerschaltungen entwickelt erst noch auf Breadboards und dann als Platinenschaltungen "gebrutzel". (bin nicht so der perfekte Löter aber er läuft)
Ein Projekt hat 3 CPU's (MCU's) mit insgesamt 24 parallel laufenden Cores und verfügt über SDCard, Video Out, VGA Out, Ethernet Anschluß , PS2 (Mouse,Keyboard) und Stereo Audioausgänge.
Wenn Du so eine Konstruktion unter Strom setzt dann passiert erstmal rein garnix wie auch ohne OS und Treiber.
Die Treiber sind nun zu 90% fertig und da ich nun (fleißig wie nun halt mal bin) schön "brav" Java lerne kam es mir plötzlich in den Sinn das noch fehlende OS in Java zu schreiben.
Als erstes habe ich mir den Quellcode der freien und von Sun bzw. Oracle unabhängigen JAVA Implementation "Kaffe" http://kaffe.org angeschaut und festgestellt das die virtuelle CPU weniger Code ausmacht als eine 6502 CPU Emulation die ich erst kürzlich geschrieben hatte. http://www.freebasic.net/forum/viewtopic.php?t=10692&highlight=c64 Der C64 emulator muste sein weil ich mir einfach nicht vorstellen konnte wie ein Software PC Emulator ein ganzes Motherborad und all dessen Komponenten (Timer, BUS, VGA, BIOS, ...) emuliert. Nun weiss ich wie es geht
Ich rede jetzt nicht von einer JVM mit JIT Compiler und Codeoptimizer das ist ein "ganz anderes Kaliber und spielt in einer anderen Liga", was für ein Reim. 
Also Treiber in Assembler fast fertig, VM nicht wirklich ein Problem für mich das könnte klappen aber der Classloader entpupt sich als das eigentliche Software "Monster" bei diesem Vorhaben.
Ich habe ein Programm geschrieben welches "nur" die Aufgabe hat sich durch kompelierte *.class Files zu "hangeln" und all dessen Geheimnisse mir preis gibt.
Wenn man so an die Sache heran geht lernt man JAVA im Vorbeiflug.
Nur schade das der Tag nicht 32 Stunden hat und die meiste Zeit für meine Spielentwicklung drauf geht.
Hast Du Dich (ich vermute als überzeugter) JAVA Entwickler auch mal auf die "low level" Ebene von JAVA begeben und kanst mir den ein oder anderen "heißen" Tip geben ?
Grüsse DJLinux
edit: Damit Du Dir solch eine Konstruktion besser vorstellen kannst habe ich mal ein Bild angehangen. So sieht das erste größere von mir gelötete Teil aus. ( ~1000 Lötpunkte auf der Rückseite) Alle Bauteile sind absichtlich nicht in SMD Form damit man noch "on the fly" Änderungen machen kann. Eine zukünftige kleinere SMD Version welche dann industriell gerfertigt würde hätte die Ausmaße einer Zigarettenschachtel und wäre so flach wie eine Tafel Schokolade. (Leider sind da noch die ganzen Anschlüsse welche man nicht einfach weiter miniaturiesieren kann.) Die drei senkrechten Chips sind die MCU's, sehr stromsparend und brachen keine Kühlung. Links sieht man zwei Speicherchips rechts unten in der Ecke den SD Cardslot. Obere Reihe Audio, Video, PS2 Mouse,Keyboard, VGA, Netzwerk, PC-Anschluss, Stromversorgung. Die drei kleineren "Käfer" sind serielle EEPROMS wo ich die Treiber dauerhaft Speichern kann. Das eigentliche OS welches noch nicht Existiert wird von SDCard geladen.
Anhänge:
|
475.347 Bytes |
2 Downloads |
Dieser Beitrag wurde insgesamt 14 mal editiert. Das letzte mal 30.07.2010, 05:07 von DJLinux.
|
|
|
|
TroY , 30.07.2010, 00:01
|
Beitrag #4
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
25.12.2007, 23:49 |
| Land: |
 |
| 3D Prog.: |
Art of Illusion |
| Homepage: |
http://www.uninformativ.de |
| |
 AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge |
| |
|
Wow. Wenn Leute anfangen, einfach mal Sachen zu bauen, dann beeindruckt mich das jedesmal auf’s Neue. Ich hab leider noch keinen richtigen Zugang zu Hardware gefunden, bin immer nur auf der Software-Seite. Vermutlich auch, weil ich Software nach Belieben erstellen und zerstören kann – einen Chip muss man erstmal haben. 
Insofern kann ich das, was du gebaut hast, noch gar nicht so richtig begreifen und einordnen. Was sind das zum Beispiel für CPUs, hast du da vielleicht den ein oder anderen Link zum Lesen? Auf dem Bild kann man leider nicht erkennen, was auf den Chips draufsteht. Wo kriegst du die Einzelteile her, lässt du das irgendwo fertigen, …? Du siehst, ich hab keine Ahnung. 
DJLinux hat folgendes geschrieben: Hast Du Dich (ich vermute als überzeugter) JAVA Entwickler auch mal auf die "low level" Ebene von JAVA begeben und kanst mir den ein oder anderen "heißen" Tip geben ? *hust*
In derartige Untiefen bin ich noch nicht vorgedrungen. Und als Java-Fan würde ich mich auch nicht gerade bezeichnen. Die Sprache ist überaus sperrig, verlangt nach unendlich viel Boilerplate-Code und so weiter. Die C-Syntax mag ich sowieso nicht besonders. Die Java-Plattform hat halt den Vorteil, dass sie vergleichsweise schmerzneutral auf den gängigen Systemen läuft und ziemlich oft schon installiert ist, aber da endet meine Euphorie dann auch schon. Im Falle von AoI ist es sicherlich für alle Beteiligten die beste Wahl, aber abseits von AoI habe ich (mittlerweile) größtenteils Abstand von Java genommen.
Sprich, nein, leider keinen heißen Tipp. 
DJLinux hat folgendes geschrieben: man ist das ruhig hier auf dem Forum geworden wohl alle Ihr Konten "geplündert" und in den Urlaub geflogen.  Ja, das ist lustig. Ab und an gibt es hier Ausbrüche katastrophal hoher Aktivität – und dann herrscht Totenstille. Klingt komisch, ist aber so.
- github - Warum der Begriff „Open Source“ am Kern der Sache vorbei geht
|
|
|
|
TroY , 30.07.2010, 17:34
|
Beitrag #6
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
25.12.2007, 23:49 |
| Land: |
 |
| 3D Prog.: |
Art of Illusion |
| Homepage: |
http://www.uninformativ.de |
| |
 AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge |
| |
|
Sehr gut, danke. Die Handbücher dort sind ja nicht gar so kurz, da wird bestimmt das ein oder andere Licht aufgehen. Und:
DJLinux hat folgendes geschrieben: Das hat nicht viel mit anloger Elektronik zu tun sondern eher mit Software und Protokollen.
Soll heissen das ich einen modernen Komputer "Bauen" kann aber keinen blassen Schimmer habe wie man z.B. einen guten HiFi Verstärker entwickelt oder einen alten Fernseher repariert. Das macht mir Hoffnung. 
Bloß mit GNU/Linux sieht’s jetzt bei deiner speziellen Hardware etwas düster aus, oder? Lese überall nur Windows. Aber pinguinfreundliche Bastelhardware dieser Art gibt es ja bestimmt auch – vom Arduino habe ich schon öfter mal gehört, aber das ist wohl nicht mit dem vergleichbar, was du da hast.
Wenn ich das jetzt richtig verstehe, dann willst du auf deiner Büchse eine eigene, einfache JVM zum Laufen bringen und in der soll dann erst das „richtige“ OS laufen? Also quasi ein OS im OS?
DJLinux hat folgendes geschrieben: Aslo wenn nicht JAVA als Hochsprache deine Mastersprache ist und Du auch kein C Style magst Linux ohne C das geht doch garnicht :-) dann bleibt ja nicht mehr viel übrig oder sind Scriptsprachen Bash, PHP, Phyton und Co Deine Favoriten ? Naja, was heißt „Mastersprache“? Eigentlich habe ich die nicht, ich fahre eher nach dem Motto „für jedes Problem das geeignete Werkzeug.“ Ans Herz gewachsen ist mir zwar eindeutig Python, aber für alles ist das auch nicht zu gebrauchen. Oft dreht es sich zum Beispiel nur um kleine Alltagsprobleme, die sich durch Kombination existierender Programme lösen lassen. In solchen Fällen wird dann ein Bash-Skript daraus, das einfach nur andere Programme miteinander verbindet. Wenn es etwas spezieller wird und mehr eigene Logik ins Programm muss, dann kommt Python zum Zug. Bei Sachen, wo es auf die letzte Millisekunde ankommt, dann C. Java mache ich hauptsächlich dann, wenn ich weiß, dass es auf Windows, GNU und/oder Mac laufen muss und wenn die Leute dort nicht so vertraut mit dem Selbst-Kompilieren sind. Das ist dann quasi Faulheit meinerseits, denn mit einer JAR können die meisten etwas anfangen, ohne dass man ihnen noch großartig Sachen erklären muss. 
- github - Warum der Begriff „Open Source“ am Kern der Sache vorbei geht
|
|
|
|
Siri , 31.07.2010, 00:04
|
Beitrag #12
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
26.12.2007, 12:02 |
| Land: |
 |
| 3D Prog.: |
AoI, 3DC, Blender, Bryce &a... |
| |
 AoI-Board Inventar mit 1777 Punkte, 1540 Beiträge |
| |
|
|
|
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
08.07.2010, 07:31 |
| Land: |
 |
| Homepage: |
http://Shiny3D.de |
| |
 Erfahren mit 171 Punkte, 129 Beiträge |
| |
|
Also Metrologen sind echt schlechte "Hellseher" und meiner Meinung nach überbezahlt hier ist absolut nichts mit Sonne im Garten.
Nicht grillende Grüsse
DJLinux
|
|
|
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
08.07.2010, 07:31 |
| Land: |
 |
| Homepage: |
http://Shiny3D.de |
| |
 Erfahren mit 171 Punkte, 129 Beiträge |
| |
|
Hallo TroY, ich habe mal meinen Class Reader über Dein "OFFExporter.class" laufen lassen
Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| magic CAFEBABE version 50.0 constant_pool_count 147 access_flags &H21 class public super this_class artofillusion.translators.OFFExporter super_class java.lang.Object interfaces_count 0 fields_count 0 methods_count 3 method[0] public <init>()V method attributes 1 attribute[0] Code size 29 byte code >&H2A,&HB7,&H00,&H01,&HB1< nCodeExceptions 0 nCodeAttributes 1 LineNumberTable 1 end code attributes
method[1] public static exportFile(Lbuoy.widget.BFrame;Lartofillusion.Scene;)V method attributes 1 attribute[0] Code size 144 byte code >&H03,&H3D,&H1C,&H2B,&HB6,&H00,&H02,&HA2,&H00,&H46,&H2B,&H1C,&HB6,&H00 ,&H03,&H4E,&H2D,&HB6,&H00,&H04,&HC1,&H00,&H05,&H99,&H00,&H30,&HBB,&H00,&H06,&H59 ,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08,&H12,&H09,&HB6,&H00,&H0A,&H1C,&HB6,&H00,&H0B ,&H12,&H0C,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB7,&H00,&H0E,&H3A,&H04,&H19,&H04,&H2D ,&HB6,&H00,&H04,&HC0,&H00,&H05,&HB8,&H00,&H0F,&H84,&H02,&H01,&HA7,&HFF,&HB8,&HB1 < nCodeExceptions 0 nCodeAttributes 2 LineNumberTable 7 end code attributes
method[2] private static exportObjectToFile(Ljava.io.File;Lartofillusion.object.FacetedM esh;)V method attributes 1 attribute[0] Code size 510 byte code >&HBB,&H00,&H10,&H59,&H2A,&HB7,&H00,&H11,&H4D,&HBB,&H00,&H12,&H59,&H2C ,&HB7,&H00,&H13,&H4E,&H2D,&H12,&H14,&HB6,&H00,&H15,&H2D,&HB6,&H00,&H16,&H2B,&HB9 ,&H00,&H17,&H01,&H00,&HBE,&H36,&H04,&H2B,&HB9,&H00,&H18,&H01,&H00,&H36,&H05,&H2D ,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08,&H15,&H04,&HB6,&H00,&H0B,&H12,&H19,&HB6,&H00 ,&H0A,&H15,&H05,&HB6,&H00,&H0B,&H12,&H1A,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB6,&H00 ,&H15,&H2D,&HB6,&H00,&H16,&H2B,&HB9,&H00,&H17,&H01,&H00,&H3A,&H06,&H03,&H36,&H07 ,&H15,&H07,&H19,&H06,&HBE,&HA2,&H00,&H54,&H2D,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08 ,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00,&H1C,&HB6,&H00,&H1D,&H12,&H19 ,&HB6,&H00,&H0A,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00,&H1E,&HB6,&H00 ,&H1D,&H12,&H19,&HB6,&H00,&H0A,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00 ,&H1F,&HB6,&H00,&H1D,&H12,&H19,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB6,&H00,&H15,&H2D ,&HB6,&H00,&H16,&H84,&H07,&H01,&HA7,&HFF,&HAA,&H03,&H36,&H07,&H15,&H07,&H15,&H05 ,&HA2,&H00,&H5F,&H2B,&H15,&H07,&HB9,&H00,&H20,&H02,&H00,&H36,&H08,&H2D,&HBB,&H00 ,&H07,&H59,&HB7,&H00,&H08,&H15,&H08,&HB6,&H00,&H0B,&H12,&H19,&HB6,&H00,&H0A,&HB6 ,&H00,&H0D,&HB6,&H00,&H15,&H03,&H36,&H09,&H15,&H09,&H15,&H08,&HA2,&H00,&H29,&H2D ,&H2B,&H15,&H07,&H15,&H09,&HB9,&H00,&H21,&H03,&H00,&HB8,&H00,&H22,&HB6,&H00,&H15 ,&H15,&H09,&H15,&H08,&H04,&H64,&HA2,&H00,&H09,&H2D,&H12,&H19,&HB6,&H00,&H15,&H84 ,&H09,&H01,&HA7,&HFF,&HD6,&H2D,&HB6,&H00,&H16,&H84,&H07,&H01,&HA7,&HFF,&HA0,&H2D ,&HB6,&H00,&H23,&HA7,&H00,&H0B,&H4D,&HB2,&H00,&H25,&H2C,&HB6,&H00,&H26,&HB1< nCodeExceptions 1 nCodeAttributes 2 LineNumberTable 28 end code attributes
end methods runtime code overall 384 class attributes_count 1 attributes[0] Sourcefile OFFExporter.java |
Von den 2384 Bytes des class files braucht die VM zur Ausführung nur 384 Bytes "Code"
Um abhängige Pakete laden zu können bedarf es noch vollgende Bytes artofillusion.translators.OFFExporter //<37> java.lang.Object //<16> <init>()V // <9> exportFile(Lbuoy.widget.BFrame;Lartofillusion.Scene;)V //<54> exportObjectToFile(Ljava.io.File;Lartofillusion.object.FacetedM //<63>
Code = 384 Bytes Skriptoren = 179 Bytes Benötigt = 563 Bytes
Somit bräuchte eine eigene VM nur 563 Bytes um OFFExporter.class fehlerfrei ausführen zu können.
Das ist natürlich prima für Geräte die nicht über so viele MB's Speicher Verfügen wie ein heutiger PC.
In den class files ist meiner Meinung nach so viel "Balast" das die JR6 Runtime classes (60MB gepackt) auch in ein 20MB *.jar file passen würden.
In den class files sind z.B. Tabellen drin die die Zeilennummern speichern "LineNumberTable" wo der kompelierte Byte code aus den source codes herkommt. Das ist toll für einen einzelschritt debuger und sollte auch in der "Runtime" des JDK's vorhanden sein aber in der Java Runtime JRE6 des Users hat das aber nichts zu suchen.
Nur mal so als Info
Grüsse DJLinux
Dieser Beitrag wurde insgesamt 3 mal editiert. Das letzte mal 31.07.2010, 17:29 von DJLinux.
|
|
|
|
TroY , 05.08.2010, 15:32
|
Beitrag #17
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
25.12.2007, 23:49 |
| Land: |
 |
| 3D Prog.: |
Art of Illusion |
| Homepage: |
http://www.uninformativ.de |
| |
 AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge |
| |
|
|
|
|
TroY , 06.08.2010, 15:01
|
Beitrag #19
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
25.12.2007, 23:49 |
| Land: |
 |
| 3D Prog.: |
Art of Illusion |
| Homepage: |
http://www.uninformativ.de |
| |
 AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge |
| |
|
Ich befürchte, ich stehe auf dem Schlauch. Was du prinzipiell mit den „native“-Deklarationen meinst, ist mir jetzt klar. Aber wo finde ich diese Information?
DJLinux hat folgendes geschrieben: 2) Im JDK hast Du sicherlich einen Ordner wo alle klassen in HTML dokumentiert sind. Den habe ich nicht. Hast du den? Ich benutze dafür immer die Online-Version. Das meinst du doch, oder? Das jedenfalls finde ich partout nicht als durchsuchbaren Download. Kann mich zwar erinnern, dass es das irgendwann mal gab, aber heute finde ich das nicht mehr. 
Da stünde es aber auf jeden Fall nicht drin. Dein Beispiel mit „java.lang.Math.cos()“ als Wrapper für „java.lang.StrictMath.cos()“, was dann wiederum nativen Code ausführt, kann man anhand der Online-JavaDocs nicht nachvollziehen – da stehen keine „native“-Attribute drin. Nur im Fließtext wird erwähnt, dass das vermutlich „native“ sein könnte.
Es gibt hier den Sourcecode des JDK. Wenn man da in den Java-Dateien nach „native“ sucht, kommt die Datei im Anhang heraus. Bringt dir das was? Suche ich darin nach „cos“, dann sehe ich, dass „java.lang.StrictMath.cos()“ nur eine „native“-Deklaration ist – so weit, so gut. Mehr als einmal „find“ mit „grep“ ist das aber auch nicht, das hättest du auch selbst hingekriegt. Irgendwie schwant mir, dass du etwas anderes haben willst. 
– edit: Tippen ist heute nicht meine Stärke.
- github - Warum der Begriff „Open Source“ am Kern der Sache vorbei geht
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 06.08.2010, 15:02 von TroY.
|
|
|
|
|
|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
08.07.2010, 07:31 |
| Land: |
 |
| Homepage: |
http://Shiny3D.de |
| |
 Erfahren mit 171 Punkte, 129 Beiträge |
| |
|
Hi TroY, "Source Code des JDK's" da hätte ich eigentlich auch selbst drauf komen können.
Danke für die Datei jetzt weiss ich schon mal wo ich da ansetzen kann.
Wuste gar nicht das es unter Windows "findstr" in der Konsole gibt, ist zwar nicht so mächtig wie "grep" aber nach (("public" OR "private") AND "native") in *.html suchen geht schon.
By the way.
Ich habe herraus bekommen wie ich unter Windows "ohne Linker" Linux Programme (nicht JAVA) erzeugen kann auch ist es mir gelungen unter Linux ein Windows programm zu erzeugen welches ohne Probleme auf windows lief.
Beide öffnen ein Fenster (nicht Konsole) mit der beliebten "Hello, World." Message.
Win32 Binary = 1380 und Linux Binary 980 Bytes.
Als Kompiler "backend" wäre das echt der Hit:
Neues Projekt erzeugen ...
Bitte wählen Sie die Zielplattform(en) Windows 32 [X] Linux x86 [x]
Wählen sie die Art Ihrer Applikation ... Konsole ( ) GUI (x) OpenGL ( )
Wie schon angemerkt "schade das der Tag keine 32 Stunden hat"
Grüsse DJLinux
|
|
|
|
|
|