Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

1

21.07.2004, 22:19

Zwei *.fx Dateien kombinieren

Ich habe auch mein eigenes Modellformat entwickelt dass vom Grooooben Aufbau her dem tbm ähnlich ist. Dafür habe ich einen Milkshape Exporter geschreiben (noch nicht 100% fertig). In Milkshape kann man ja auch Matetrialien erstellen, die Texturen und deren Eigenschaften wie Specular etc enthalten. Diese wandle ich dann in einen FX effekt um, was ja nicht allzuschwer ist, diese Textureinstellungen/parameter damit so ziemlich kompatibel sind. Im Grunde genommen tu ich ja dann fast genau das gleiche wie David mit seinem 3DS konverter. Also lade ich den Effekt und aktiviere ihn. Bis hierher theoretisch kein Problem. Wenn ich jetzt aber noch einen zusätzlichen *.fx Effekt von FX COMPOSER oder sonstwas mit zeichnen will, der aber die Textur und deren Werte noch brauchen könnte, gibt es ein kleines Problem. Da Milkshape bekanntlich ja keine Shader unterstützt, dachte ich mir, dass man in den Materialnamen am Anfang ein kürzel rein macht, 4Bytes lang, zB "S014 Holztextur Tischunten". Dann erkennt die Engine am Anfang das S, und die 3 Zahlen, und liest eine 14 draus. Das ist dann ein bestimmter Shader der zu dem Material gerendert werden soll. Wie kann ich jetzt aber die fx datei aus dem effektechunk rendern UND noch einen shader drauf? Wären die in EINER fx datei wärs kein Problem, aber wie soll ich das in den exporter reinbringen? Es sollen ja öfter mal neue Shader hinzugefügt werden können, indem man in der Engine einfach deklariert dass Nr15 der Kräusel-Glanzshader ist. Dann kann man halt ein Modell mit dem bestimmten Materialnamen "S015 egal blabla egal" laden.

Ich hoffe in den unendlichen weiten dieses Forums gibt es jemand der diesen Text verstehen kann ;p

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

2

21.07.2004, 23:13

ich mache es so das ich das modell exportiere und die fx datei im nachhinein erstelle. dann übergebe ich einfach einen neuen chunk an das modell mit den namen der fx inder sich auch der shader dann befindet, bzw ich habe eine fertige fx datei, dann übergebe ich sie meinen exporter und der fügt einen chunck an.

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

3

21.07.2004, 23:31

Ich wiederhole: Mein integrierter Ms3d exporter exportiert es ohne eine fx datei, oder vermerkt nur die Parameter der Materialien. Dann kommt ein 2. Exporter oder so ein tool, was dann irgendwie eine shader fx datei da mit rein bringt, und gleichzeitig auch irgendwie die texturen in den shader mit einbezieht.... naja das macht die sache nochmals um einiges komplizierter. Gibt es vielleicht nicht eine Möglichkeit, erst die "Pass"e aus einer fx zu rendern, und danach noch die einer anderen?

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

4

22.07.2004, 00:53

irgendwie verstehe ich nicht ganz was du meinst. passes aus verschiedenen dateien kannst du nicht hintereinander rendern. wenn du mit vs/ps arbeitest dann kann man verschiedene shader schon miteinander kombinieren. ich hab da einen artikel drüber gelesen wie es in der source engine gemacht wird.
wenn du das meinst dann such ich mal nach den artikel...

gruss

5

22.07.2004, 02:22

Da Milkshape keinen Shader-Support, gibt es da schon mal keine Kollision. Der Rest ist ja nur ein "ablesen". Du könntest die beiden fx Dateien auslesen und dann mit einander Kombinieren. Render States oder Textur Stage States aus mehreren fx Dateien zu kombinieren dürfte nicht so das Problem sein. Kompliziert wird es erst wenn es Kollisionen gibt.
Der Shader Code steht ja eh aussen vor.

Zitat

passes aus verschiedenen dateien kannst du nicht hintereinander rendern.
Wieso denn nicht? Du lädst beide fx Dateien. Erst rendert man das Modell mit FX File 1, dann aktiviert man Alpha Blending und rendert FX File 2.

Man kann das ja auch direkt im Effekt vorbereiten. Z.B. Die FX Datei die du mit Milkshape erzeugst ist immer der erste Effekt den du renderst. Der Effekt aus dem Composer ist dann immer der zweite Effekt. Du setzt als im ersten Pass des 2ten Effekts direkt das Alpha Blending.

Idealer ist es natürlich wenn du einfach das Modell erstellst, es mit dem Composer lädst und dann im Composer den Effekt erzeugst.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

DrthM2001

Alter Hase

  • »DrthM2001« ist der Autor dieses Themas

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

6

22.07.2004, 12:40

Ok ich versuchs mal so aufzubauen:
EffektHeader: Name der Textur Textur, und wo die Textur anfängt und aufhört, und ob ein Shader verwendet werden soll. Wenn ja, dann wird platz gelassen, wenn nicht dann wird eine fx mit den Matrialparametern erstellt.
Da wo platz gelassen wird, bzw wo noch was eingefügt werden muss, das macht dann ein externes Tool. Dieses impft dann die FX datei vom Composer da rein, und Texturen sind dann nicht verloren

Ich denk mal so würds funtzen!

Werbeanzeige