Sie sind nicht angemeldet.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

1

Donnerstag, 1. Juli 2010, 18:08

editor um 3d Terrain als ISD files speichern

Also, noch eine weitere Thread, wie ich anfange.

Und dieser thread, ist eher für programmierung in Delphi sprache für ein conterter zu basteln.

Also fangen wir mal mit dem Header von dem Pas file ann.

Quellcode

1
2
3
4
5
6
7
8
9
unit MainFm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, AsphyreDef, AsphyreTimers, AsphyreFonts,
  AsphyreDevices, AsphyreImages, AsphyreCanvas, AsphyreDb, Asphyre2D,
  AsphyreSubsc;


dies war also der quellecode von drKohler landscape editor.

und dies weitere, quelle code, ist für 3DS file zu laden.

Quellcode

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
{
   Read 3DS File and view object...
  }
  unit Unit1;
  
   interface
  
   uses
     Windows, SysUtils, Classes, Controls, Forms,
     GLMisc, GLScene, GLVectorFileObjects, GLObjects, GLWin32Viewer;
  
   type
     TForm1 = class(TForm)
       GLSceneViewer1: TGLSceneViewer;
       GLScene1: TGLScene;
       GLCamera1: TGLCamera;
       GLLightSource1: TGLLightSource;
       DummyCube1: TDummyCube;
       FreeForm1: TFreeForm;
      GLCamera2: TGLCamera;
      procedure FormCreate(Sender: TObject);
  
     private
       { Private declarations }
     public
       { Public declarations }
     end;
  
   var
     Form1: TForm1;
  
   implementation
  
   {$R *.dfm}
  
   uses Geometry;
  
   procedure TForm1.FormCreate(Sender: TObject);
   begin
      // Read 3DS File...
      FreeForm1.LoadFromFile('.\media\tree10.3ds');
   end;
  
   end.


Also benötigen wir nicht weiter für den moment, als die 3DS files mit dem Lanscape editor zu laden, und mit umänderung von dem programm, als IDS oder GR2 Files sie zu speichern.


Also erste frage, von mir der Anfänger an Dr. Kohler der Programmierer spezialist.

hier, bei "Use" hier handelt sich doch von Delphi funktionen, also wenn ich der Lanscape1701 und die von dem 3DS quelle code unterscheide, hier bemerke ich, andere Funktionen.

Und so, handelt meine Frage ob diese Neue Funktionen zu den Alten zugezogen können werden?

oder wird es probleme geben?

so das als Resultat, dies als Funktionen in dem Programm einbezogen werden.

Quellcode

1
2
3
4
5
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, AsphyreDef, AsphyreTimers, AsphyreFonts,
  AsphyreDevices, AsphyreImages, AsphyreCanvas, AsphyreDb, Asphyre2D,
  AsphyreSubsc, GLMisc, GLScene, GLVectorFileObjects, GLObjects, GLWin32Viewer;

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »colombus« (1. Juli 2010, 18:21)


drkohler

Master of Editor

Beiträge: 1 578

Registrierungsdatum: 18. Juni 2003

  • Nachricht senden

2

Donnerstag, 1. Juli 2010, 21:03

RE: editor um 3d Terrain als ISD files speichern

Das führt zu gar nichts. Du kannst nicht Asphyre (Grafiksystem auf DX9 aufbauend) und OpenGL Befehle (Grafiksystem aufbauend auf Open GL) vermischen und hoffen, dass dabei etwas Vernünftiges herauskommt.
Um einen 1404/1701 Inseleditor zu bauen, musst du
a) Das isd-Format von Anno entschlüsseln und die Daten Mundgerecht abspeichern
b) Ein Programmiersystem finden, dass alle 3D-Befehle unterstützt
c) Hoffen, das irgend jemand schon einen Landscape Editor gebaut hat mit diesem Programmiersystem, der so umgebaut werden kann, dass er die Mundgerechten Annodaten verwursteln kann (mindestens die Heightmap und das Multitexturing muss er können) und die Resultate wieder Mundgerecht abspeichern kann.
d) Wenn nicht, selber einen Landscape bauen, der Heightmaps und Multitexturing kann und das Resultat Mundgerecht abspeichern kann.
e) Mit dem Landscape die Inseln umbauen/neue Inseln bauen
f) Die neuen Daten wieder in ein isd-Format für Anno verschlüsseln.

Viel Glück, vor 1-2 Jahren gab es weder a) noch b) noch c) noch d) noch e) noch f), deshalb hatte ich aufgehört mit Inseleditor basteln. Vor Allem habe ich keine Ahnung von 3D-Programmierung, was die Sache auch nicht grad vereinfacht (Anno macht jetzt Alles mit Shadern, nicht mehr bloss Tiles aneinanderhängen wie 1503).

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

3

Donnerstag, 1. Juli 2010, 21:16

so, heute habe ich mal antworten bekommen auf einigen frage.

Also, Entweder Asphyre engine oder Gl32viewer engine.

und für das Asphyre die 3DS Files kann laden, benötigt er eine weitere funktion:

TAsphyreModels

für das Material von dem 3D Objekt anzuzeigen, wird TAsphyreMaterials, benötigt

und TAsphyreTextures in dem Fall das man Texturen mit Material Anbinden will.

Die Alte Funktion TAsphyreCanvas, ist zuu Entfernen, denn diese ist nur geeignet wenn man Zeichnen will.

und in dem Spiel, sind die Texturen wie auf den 3D objekten zugebunden sind, DDS Files.

Und die DDS Files, diese Enthalten Alpha Layer.
und in dem spiel das Uhrsprünglische Format, bevor das es zum DDS Format gespeichert wurde, war es ein TGA Bild Format.

Und hier, triet TVTDb Funktion ein.
denn, diese Funktion, unterstützt die Weitere gelisteten bilder formaten.
PNG, JPEG, TGA, BMP, DIB

Die Bilder Formate wie den Alpha Layer unterstützen = TGA
PNG
BMP
DIB

das Einzieges Format, von diesen gelisteten Formaten wie kein Alpha layer unterstützt ist JPG bilder Format, also kann mann nicht dies JPG Format Laden oder Speichern.

Aber sowie das Spiel Original TGA Bilder Format Gespeichert hatte, also warum nicht in unserem Editor diese selbe Möglichkeit geben.
Denn die DDS Bilder, werden nicht hier unterstützt.

und hier zum Ende, TAsphyreCamera
denn hier, mit diese Funktion, kann man die Benutzten Spiel Werte eingeben.
so dass man gleich die richtige Vorschau moddus hat, wie die Objekte in dem Spiel Ausehen werden.

Hallo drKohler.

Habe die Antwort auf dein "a'" für die ISD Files GR2 und anderen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »colombus« (1. Juli 2010, 21:19)


colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

4

Donnerstag, 1. Juli 2010, 21:45

Weitereren Möglichkeiten unter Asphyre engine.

TAsphyreMatrix "Unit" AsphyreMatrices.pas
TAsphyreMeshX "Unit"(AsphyreMeshes.pas)

Hier als Beispiel:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
unit MyMesh;

interface

uses
  AsphyreMeshes, AsphyreColors;

type
  TMyMesh = class(TAsphyreMeshX)
  private
    FColor: TAsphyreColor;
  published
  public
    property Color: TAsphyreColor read FColor write FColor;
  end;

implementation

end.


SetColor command wird nicht mehr benötigt, denn die Farbe werden gleich angezeigt.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

5

Freitag, 2. Juli 2010, 00:53

RE: editor um 3d Terrain als ISD files speichern

Zitat

Originally posted by drkohler
Das führt zu gar nichts. Du kannst nicht Asphyre (Grafiksystem auf DX9 aufbauend) und OpenGL Befehle (Grafiksystem aufbauend auf Open GL) vermischen und hoffen, dass dabei etwas Vernünftiges herauskommt.
Um einen 1404/1701 Inseleditor zu bauen, musst du
a) Das isd-Format von Anno entschlüsseln und die Daten Mundgerecht abspeichern
b) Ein Programmiersystem finden, dass alle 3D-Befehle unterstützt
c) Hoffen, das irgend jemand schon einen Landscape Editor gebaut hat mit diesem Programmiersystem, der so umgebaut werden kann, dass er die Mundgerechten Annodaten verwursteln kann (mindestens die Heightmap und das Multitexturing muss er können) und die Resultate wieder Mundgerecht abspeichern kann.
d) Wenn nicht, selber einen Landscape bauen, der Heightmaps und Multitexturing kann und das Resultat Mundgerecht abspeichern kann.
e) Mit dem Landscape die Inseln umbauen/neue Inseln bauen
f) Die neuen Daten wieder in ein isd-Format für Anno verschlüsseln.

Viel Glück, vor 1-2 Jahren gab es weder a) noch b) noch c) noch d) noch e) noch f), deshalb hatte ich aufgehört mit Inseleditor basteln. Vor Allem habe ich keine Ahnung von 3D-Programmierung, was die Sache auch nicht grad vereinfacht (Anno macht jetzt Alles mit Shadern, nicht mehr bloss Tiles aneinanderhängen wie 1503).


Also ein weiteres mal hallo drKohler.

Und, so als Antwort auf
a) Du selber, hast eine von den möglischen wegge für die Entschlüssellung formel Gefunden.

b)das Programmier system ist schon gefunden, es wird nicht weiter als die Update version sein von dem Asphyre Engine.

c) ollllla halte mal, der landscape programm, dies ist ja dein Entwurf.
also du selber hast in schon gebaut. nur muss er ein wenigst umgeändert werden, dies ist ja logisch, denn er enthalt leichte bug.

d) die neue Version von dem asphire engine, hat eine menge möglischkeiten, wo die alte version, nicht gehabt hatte. also multi texturing, sowie es schon beispiele gebe, wird dann eher leichter sein. Denn, wenn ich diese Geschriebenen Programme Verstehe, also ja, ist klaro, ich habe schon einigen jahre 3D Praxis, also hier kann ich ja verstehen, dass wenn du noch nie mit 3D Rumgebastelt hast, das so die texturen usw, für dich sehr unverständig können sein.

e) Ne, der Landscape programm, muss nur hier sein, für die Objekte, ein letztes mal anzuschauen zu können, bevor das sie in ISD oder GR2 files Gespeichert werden.

Also der landscape, muss nur basis funktion, von der Rotation, Ansicht, und ein bisschen Edition Behalten, denn die Haupt 3D Modelle, diese werden Besser untern einem Richtige 3D Editor Erzeugt. wo es in dem 3D Editor, alle tools gebe für die objekte sie zu modeliesieren.

und so, wenn man in einem minimale zeit, eine Insel will bearbeiten, einfach nur Bryce benutzen, seine Insel Erstellen, und in 3DS speichern.

F) für den f) hier, leider muss zu erst, alle kleinen bug von dem programm umgeändert werden, so dass die ISD Speicherung, kein fehler anzeigen. Denn für den moment, hat der Landscape als haupt problem, mit den Süd Inseln die Datein nicht zu erkennen.

Nord Inseln, kein problem.....

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

6

Freitag, 2. Juli 2010, 01:36

und so, das du auch etwass verstehst.

hier eine beispiel mit asphyre engine.

Quellcode

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
//--------------------------------------------------------------------------- 
procedure TMainForm.DeviceInitialize(Sender: TObject; var Success: Boolean); 
var 
 Model: TAsphyreModel; 
begin 
 // Create and initialize 3D lights. 
 InitLights(); 
 
 // This material has default properties and ID 0 
 Materials.Add(); 
 
 // This texture has ID 0 
 Success:= Textures.AddTexture('material1.jpg', aqHigh, alNone); 
 
 // Update 3D States. 
 DevState.Update(); 
 
 Model:= Models.Add();       // <- add model to the list 
 
 // Configure the texturing & material parameters *before* loading model! 
 Model.Texturing.Include(0); // use Texture ID 0 
 Model.Material:= 0;         // use Material ID 0 
 Model.Lighting:= True;      // enable lighting for this model 
 
 // Load the model now that all parameters are set. 
 if (Success) then 
  Success:= Model.LoadFromFile('cube.mesh'); 
 
 Timer.Enabled:= Success; 
end; 


hier als beispiel, muss nicht weiter als der Jpg File forma umgeändert werde zu TGA file format, so dass es für uns ein nutzt hat.

ebenso, muss hier weiter, nur cube.mesh mit der 3Ds formel eingegeben werden, so dass die 3ds files angeschaut werden.

denn die id, von den objekte bleiben immer auf "0" eher an dem 3D Model, wurde meheren materialien oder texturen angegeben, aber hier per basis, bleibt diesen wert immer auf "0"

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

7

Samstag, 3. Juli 2010, 05:30

also, hier ein weitere bug gefunden in dem Program.



Dies mal habe ich kontroliert mit der Originale ISC datei.
Und mit den stellungen, hier ein weiteres mal, diese haben sicher falsche Werte.
denn.

Wenn man nun davon aus geht, das es sich um Single-Fließkommazahlen handelt, kann mal das dann folgendermassen zerlegen:
Vorzeichen(1Bit), Mantisse(24 Bit), Exponent(7Bit)

und hier, wenn ich die 1. oberste Hexadecimal kette benutze als beispiel.

Quellcode

1
2
3
AE F1 3A 44 
40 48 93 42 
7D C5 BD 44


also dies zu Binary code umgeändert ergibt.

Quellcode

1
2
3
10101110111100010011101001000100
01000000010010001001001101000010
01111101110001011011110101000100


Zahl = (Vorzeichen)* Mantisse * 2^(0x111111-Exponent); (ist nicht weiter wie das IEE754)http://kipirvine.com/asm/workbook/floating_tut.htm

so dass man diese weitere Werte bekommt für die Stellungen.

Quellcode

1
2
3
X -0,0427105203270912
h 0,18777684867382
Y 0,0619561560451984


also diese werten, könnte eher Grid Stellungen sein.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

8

Samstag, 3. Juli 2010, 15:04

ja, also hier, heute, habe ich etwas rausgefunden, so dass es sich um keine Single-Fließkommazahlen handelt, Denn, bei jede Kategorie von Datei, wie der Editor Benutzt für die Inseln.

also bitte eher als ein großen speech zu machen, hier bitte lesen.
http://www.mkssoftware.com/docs/man1/printf.1.asp

Denn ich habe bemerkt, bei den Hex string, diese behalten einigen "%d"
wie für dies bestimmt ist.

Zitat

decimal integer. The value must be between -2147483648 and 2147483647 for 32-bit integers

so handelt es sich um Dateien, wie keine Koma bei den zahlen haben.
denn dies ist mal, die benötigung von dem Insel editor dass er die Dateien von der karte annerkannt.

und einiegen anderen hatten "%s" für "string".

so gab es noch weiter %4d bei einigen Dateien, dies ist dann für 4bit zahl.

ich werde euch die ganze liste von den gefundenen "%" rausgeben, aber zu erst muss ich dies alles nach kontrolieren.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

9

Sonntag, 4. Juli 2010, 22:01

So jetzt als erste phasis, werde ich mal test ausführen, und dies, um ein isd nach 3DS zu speichern.
so dass ich direkt, mal die Richtige Anzeige unter einem 3D Editor habe.

hier, sowie der 3DS Files format, von den meisten 3D Editor aufgenommen sind.
Also ob ich der file dann in 3DS Studio max editor, oder maya oder mit ein andere editor in aufrufe, dies spielt dann keine rolle.

so mit glück, habe ich dann ein 3ds files konverter erzeugt.

aber hier, muss ich noch weitere datein beaufsichtigen, so dass, der Gespeicherte 3DS files, das Objekt das exakte Skala von dem spiel behält.

Aber hier, darf man nicht Vergessen, dass, hier die Isd files, schon fertige Objekte sind, denn sie behalten die dateien von den importierten 3D Objekte, sowie die Berge, Wasser, und Ober Ebenen Objekte.

So unter dem 3D Editor, kann ich dann die Richtige Inseln werte Rausfinden.
Breite, Länge, und höhe, sowie jede koordinaten punkt wie die Inseln Hat.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

10

Donnerstag, 8. Juli 2010, 23:01

merkwürdig diese hexa kette!!!



denn diese gebe es 10x (2x als nachfolge hexa 4200 und 8x mit 4220)

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

11

Freitag, 9. Juli 2010, 01:21

sehr interesant!



aha unbennanten files in der liste.
cam könnte eine extension sein für camera files.
efc für effect files
BLB dies sind Blob Files
die ISD und isc files diese kennen wirr.
msh und GR2 kennen wirr auch. MSH files sind mesh files von Ogres 3D, GR2 die kommen ja von Granny.

lgt könnte für ligth files sein. (also licht )

mcf,dcl diese beide bleiben weiterhin unbekannt.

obj, also dies ist natürlich für object.
Aber, sowie es eine menge obj, extension gebe, hier, kann ich nicht schwören dass es sich um ein Standard Wavefront files handelt.

denn für das es ein standard files ist, müssen die files mit solchen daten ausehen.

http://www.martinreddy.net/gfx/3d/OBJ.spec

jetzt kann es ja möglich sein, dass die Schlaubursche von Sunflower, ganz einfach die dateien wie in den files geschrieben waren, dass sie einfach in ein compiler eingezogen haben, und so wurden die normale standarte gezyffert.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »colombus« (9. Juli 2010, 01:25)


colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

12

Samstag, 10. Juli 2010, 01:18

die Extension (.mcf) = Mesh config Datei

und Eine Weitere datei Extension ist (.Ocf) = Object config datei

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

13

Samstag, 10. Juli 2010, 02:20

also weitere files.

http://de.wikipedia.org/wiki/C_for_graphics

CG. Files (in J:\anno 1701\data6\data\system\shader\ "Unterverzeichnisse")

Also .CG Dateien, wurden von Nvidia und Microsoft Programmer Erzeugt.

also hier in Englisch sprache, für die wie interessen haben, zu Verstehen, wie die Shader programmierung funktioniert.

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=47
und hier, für die wie ein bisschen probleme haben mit einigen englische wörter
http://fr.babelfish.yahoo.com/translate_…nTrUrl=Traduire

aber achtung, die übersetzung tools, die haben fehler, denn sie übersetzen alles was Geschrieben ist.
Also eher mit Englische und mit der übersetztung version, Lesen!!!

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

14

Freitag, 23. Juli 2010, 20:05

so, ich denke jetzt, habe ich etwass neues gefunden.
Und dies ist nicht mehr oder weniger, als die möglichkeit von der Kryptographie, wie benutzt war für ISD files zu speichern, denn hier, handelt es sich um nur eine winziege protection, also Openssl.

Sha1
Md5
RSA

und so wurde von eine basis GR2 insel file,eine isle.isd geziffert.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

15

Samstag, 24. Juli 2010, 14:03


also jetzt, danach das ich dies angeschaut habe, habe ich dies gefunden.

http://www.cg.tuwien.ac.at/courses/proje…cpp-source.html
also auch so ein mcnamen.cpp file.

hier, habe ich keine ahnung, ob diese, von der selbe programmation stuffe wie in dem program benutzt war.

und als weitere information, habe ich als antwort bekommen, dass einigen 3D editor c header file exportieren können, denn die inseln, diese waren als basis in einem 3D editor gebastelt. Bryce 3d oder ein andere Terrain generator.

und so kommt wieder ogres 3D program Vor.
http://geenux.free.fr/wp/ogre/blender_export/export.png

denn hier, bemerkt man das bei dem export odres xml files speichern kann, und dies xml wurde als isc file umgewandelt.

colombus

Piratenschreck

  • »colombus« ist der Autor dieses Themas

Beiträge: 566

Registrierungsdatum: 7. Mai 2016

  • Nachricht senden

16

Freitag, 30. Juli 2010, 05:50

also jetzt bin ich nach 8 stunden intensive suchungen echt ko.
und so füge ich kurz diesen kode ein, bevor das ich heute nachmitag euch die alles verrate.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'