Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 20, 2025 21:23

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 69 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 24, 2003 22:40 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Carad kann jetzt .seth Dateien importieren und exportieren :D . Beim Import wären theoretisch beliebig viele Objekte in einer Datei möglich, exportiert wird nur das gerade selektierte Objekt.

Exportiert werden kann jedes statische Carad Objekt, Animationen sind prinzipbedingt nicht möglich. Beim Export werden Texturkoordinaten und Normalvektoren mit exportiert.
Die Vertexparameter werden korrekt aus SETH übernommen, wenn ein Objekt welche haben sollte, werden diese auch exportiert (1.Parameter nach s-Tangente, 2.Parameter nach t-Tangente, 3.Parameter nach TSpaceLight). Noch können Vertexparameter in Carad aber nicht manuell erstellt und geändert werden.
Ein Problem habe ich allerdings noch:

Interessanterweise scheinen beim Import einige Normale nicht zu stimmen - zumindest werden einige Dreiecke etwas seltsam beleuchtet, was insofern seltsam ist, als die Normale ja bei den Vertexdaten dabei wäre, und die Vertexposition ja völlig korrekt ist.
In SETH schauen die erneut exportierten Objekte dann wieder völlig normal aus - hast du da eine Erklärung dafür?


Dateianhänge:
Dateikommentar: Besonders beim Torus kann man die "falschen" Normale gut sehen.
test.JPG
test.JPG [ 39.9 KiB | 5807-mal betrachtet ]

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 24, 2003 22:49 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das mit den Normalen ist alles andere als normal. Eigentlich dürfte es nämlich keinerlei Probleme geben, da ich die Normalen einfach aus dem 3DS-Objekt übernehme und da selbst nichts dran ändere. Evtl. liegt das Problem bereits im von mir verwendeten 3DS-Loader, denn sonst wüsst ich nicht wos liegen soll.
Werd mir das dann aber ansehen und ggf. hier berichten was (wenn) es war.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 25, 2003 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Habe mir das Ganze grad etwas genauer angeschaut - und denke, dass irgendwo bei der 3DS-Konvertierung etwas durcheinandergekommen ist.
Anbei eine kleine Demo, die eine SETH Datei darstellen kann (nur Normalvektoren, Texturkoordinaten und Schnittpunktposition werden gesendet) - und der Effekt tritt hier ebenfalls auf.
Der Ladecode sieht folgendermaßen aus:

Code:
  1. type
  2.   TSETHVertex = packed record
  3.     Position: TVec;
  4.     Normal: TVec;
  5.     TexCoord: TVec2f;
  6.     sTangent: TVec;
  7.     tTangent: TVec;
  8.     TSpaceLight: TVec;
  9.   end;
  10.   PSETHVertex = ^TSETHVertex;
  11.   TSETHVertices = array[0..9999] of TSETHVertex;
  12.   PSETHVertices = ^TSETHVertices;
  13.  
  14. procedure TFormSETHImport.Button1Click(Sender: TObject);
  15. var
  16.   i, j: integer;
  17.   Stream: TFileStream;
  18.   vnum: integer;
  19.   vert: PSETHVertices;
  20.   inum: integer;
  21.   ind: PIntegerTable;
  22.   seth: PSETHVertex;
  23.   Bodies: integer;
  24. begin
  25.   if OpenDialog.Execute then begin
  26.     Stream := NIL;
  27.     try
  28.       Stream := TFileStream.Create(OpenDialog.FileName, fmOpenRead);
  29.       Stream.Read(Bodies, 4);
  30.       for i := 0 to Bodies-1 do begin
  31.         Stream.Read(vnum, 4);
  32.         GetMem(vert, vnum * sizeof(TSETHVertex));
  33.         Stream.Read(vert^, vnum * sizeof(TSETHVertex));
  34.         Stream.Read(inum, 4);
  35.         GetMem(ind, inum * sizeof(Integer));
  36.         Stream.Read(ind^, inum * sizeof(Integer));
  37.  
  38.         glNewList(DisplayList, GL_COMPILE);
  39.         glBegin(GL_TRIANGLES);
  40.         for j:=0 to inum-1 do begin
  41.           seth := @vert[ind[j]];
  42.           glNormal3fv(Addr(seth.Normal));
  43.           glTexCoord2fv(Addr(seth.TexCoord));
  44.           glVertex3fv(Addr(seth.Position));
  45.         end;
  46.         glEnd;
  47.         glEndList;
  48.  
  49.         FreeMem(vert);
  50.         FreeMem(ind);
  51.         Stream.Free;
  52.       end;
  53.  
  54.     except
  55.       MessageBox(0, 'ERROR LOADING SETH FILE', 'ERROR', MB_OK + MB_ICONERROR);
  56.       if Stream<>NIL then Stream.Free;
  57.       Bodies := 0;
  58.     end;
  59.   end;
  60. end;
  61.  


Dateianhänge:
Dateikommentar: Der SETH Import
SETHImport.zip [108.38 KiB]
336-mal heruntergeladen
Dateikommentar: Die seltsamen Streifen sind gut zu sehen
screenshot.jpg
screenshot.jpg [ 14.97 KiB | 5776-mal betrachtet ]

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 25, 2003 19:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Eingartiges Verhalten, zumal ich wirklich nichts anderes mache als die Normalen einfach aus dem 3DS-Mesh zu übernehmen :
Code:
  1. SModel.Mesh[i].Vertex[j].Normal[0]   := Model3DS.Mesh[i].vNormal[j].x;
  2. SModel.Mesh[i].Vertex[j].Normal[1]   := Model3DS.Mesh[i].vNormal[j].y;
  3. SModel.Mesh[i].Vertex[j].Normal[2]   := Model3DS.Mesh[i].vNormal[j].z;

Wobei Model3DS.Mesh der 3DS-Mesh ist, den ich über Noeskas Loader einlesen lassen. Von daher liegt das Problem also wahrscheinlich dort.
Aber schonmal danke für den Fehlerrapport, werd dann mal genauer schauen wo das Problem liegt, bin sowieso grade dabei die neue SETH-Version zu finalisieren bevor ich sie in den nächsten Tagen als Installer hochlade.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 25, 2003 19:55 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ah, ich habe mich schon gewundert, wo man aus Lischkes Loader Normale her bekommt - außerdem sind die Vorderseiten der Dreiecke im Uhrzeigersinn orientiert (fällt beim Einschalten der Rückseitenentfernung auf), wahrscheinlich wäre es geschickter, die Orientierung umzukehren - bin übrigens gespannt, auf die nächste Version von SETH.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 17, 2004 18:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
is it possible to use seth without the fragment program extension? Also with only the vertex program extension.

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 17, 2004 20:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
No, it's not possible. That's because of the fact that you can't do very much with vertex shaders only. But as the source is freely available, you're free to disable the support for fragment shaders.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 02, 2004 17:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Da ja Noeska das gleiche Prob wie ich zu haben scheint, nämlich den Besitz einer GF 4Ti 4200, wollte ich fragen, ob es zur Zeit einen aktuellen Editor (mehr oder weniger so wie SETH, dessen erste Versionen ja noch meine Graka unterstützten) gibt, den ich selbst verwenden kann und der auch einige Samples dabei hat. Ich möchte einfach mal schön langsam mit Shadern(auch ohne HLSL) anfangen, und dass man dafür nicht die neueste Graka braucht, hat ja Far Cry einrucksvoll gezeigt...

Ciao,
La_Boda

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 02, 2004 18:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Du kannst den integrierten Shadereditor von Carad verwenden, dort werden Vertex- und Fragmentprogramme getrennt behandelt - und du kannst entweder mit Lars fxPascal oder direkt im ARB "Assembler" programmieren.

Ein Beispiel für die Erstellung eines einfachen Vertexprogrammes gibt es hier:
http://www.basegraph.com/bg/tutorials/ger_tutor_handsonarbvp/handsonarbvp.htm

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 69 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.033s | 17 Queries | GZIP : On ]