WADMixer

Domande, commenti e bugs report sul Next Generation Level Editor / Questions, comments and report bugs about the Next Generation Level Editor

Moderatori: Raidermatty, Taras, LoreRaider, Delta, Paolone

Rispondi
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

WADMixer

Messaggio da MontyTRC »

DaviDM ha scritto:Scusa Paolone, ma perché non lo fai tu un nuovo WadMerger? C'è gente che scrive programmi ancora in visual basic :O_o: ?
Ehm.... Scripter4 è programmato in Visual Basic 6.0 :D

Visual Basic è un ottimo linguaggio. Se usato a dovere è in grado di dar vita a programmi potenti e complessi. Il problema descritto da Paolone è che i tipi di dato in VB6 sono un po' a casaccio, alcuni con segno, altri senza, mentre in C++ per esempio ogni tipo può essere impostato con o senza segno. Modificando lo script ho avuto lo stesso problema con i dati: per risolvere ho creato qualche piccola funzione in grado di restituire a partire da un intero o da un byte esadecimale il corrispondente decimale con o senza segno. La soluzione c'è ma Michiel è un po' sordo spesso.... Anch'io gli scrissi una volta... Più sentito :mumble: ...

Ovviamente ciò non toglie che il C++ resti la scelta preferibile, in quanto consente di fare le cose in modo diretto e senza vie traverse.

Io una volta ho accarezzato l'idea di scrivere un nuovo WadMerger, però ho quasi rinunciato. Credo che potrei pensarci. Nel frattempo ho realizzato un wad extractor che legge anche i file TR5 modificati dai programmi di Turbo Pascal, che come ben sapete spesso e volentieri TR2WAD non è in grado di aprire.... Ci penserò.... Adesso mi sto adattando alla vita universitaria....

Ciao :D




Guest Reviewer (5)
Avatar utente
DaviDM
Moderator
Moderator
Messaggi: 1552
Iscritto il: 28 maggio 2005, 13:49

Messaggio da DaviDM »

Scusami Monty non voleva essere un offesa la mia frase :oops: . Diciamo che qualsiasi linguaggio se usato male fa schifo , e il WadMerger ne è un esempio :asd: .
Quindi hai mezza idea di fare un WadMerger tutto tuo? Conoscendo Scripter 4, sarà sicuramente meglio di quello che abbiamo adesso :(
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Qui l'unico che si è offeso è Zio Bill, che con il BASIC ha iniziato la sua carriera :P

Comunque sto ancora valutando, in quanto le difficoltà tecniche non sono poche. In particolare, non sono ancora riuscito a creare un algoritmo efficace in grado di combinare pezzi di texture di vari oggetti in una mappa unica. :D




Guest Reviewer (5)
Avatar utente
Walrus
Master TR Player
Master TR Player
Messaggi: 5361
Iscritto il: 24 gennaio 2005, 13:13

Messaggio da Walrus »

MontyTRC ha scritto:[...] non sono ancora riuscito a creare un algoritmo efficace in grado di combinare pezzi di texture di vari oggetti in una mappa unica. :D
E mi sa che è meglio che manco ci provi :asd: A meno che, ovviamente, tu non stia pensando di utilizzare un metodo di mappatura UVW (e se davvero lo fai, ti dò un bacio, ma non farti strane idee :asd:). Utilizzare una immagine unica presa da vari oggetti può essere comodo solo in rare circostanze, ma solitamente è preferibile lavorare con singoli tile. Eventualmente puoi scompattare il codice di STRPix e vedere come fa a mescolare le textures e a salvarle come un'unica mappa utilizzando l'export to bmp.

Altro consiglio, se eventualmente dovessi pensare di metterti a fare una cosa del genere, è quello di cercare di rendere quanto più possibile "traducibile" la trasformazione del formato 3ds in modo che sia compatibile con Tomb Raider. Dalle mie prove con 3ds Max e TRViewer, il formato è ben letto da quel programma, ma per qualche strana ragione, non riesce a tradurre le mappature, e TRViewer salva in maniera balorda i file .tr4. Non so se dipenda dagli strani salvataggi di WADMerger, ma è una vera rogna. Come dicevo in un'altra occasione in cui ho avuto modo di parlare lungamente dell'uso delle UVW Map per texturizzare gli oggetti (con un guadagno temporale enorme nel realizzare un oggetto), è il metodo definitivo per creare oggetti belli, velocemente e senza sbattoni ;)




Guest Reviewer (6)
Avatar utente
Walrus
Master TR Player
Master TR Player
Messaggi: 5361
Iscritto il: 24 gennaio 2005, 13:13

Messaggio da Walrus »

Postato due volte, scusate :)




Guest Reviewer (6)
Avatar utente
Walrus
Master TR Player
Master TR Player
Messaggi: 5361
Iscritto il: 24 gennaio 2005, 13:13

Messaggio da Walrus »

MontyTRC ha scritto:[...] non sono ancora riuscito a creare un algoritmo efficace in grado di combinare pezzi di texture di vari oggetti in una mappa unica. :D
E mi sa che è meglio che manco ci provi :asd: A meno che, ovviamente, tu non stia pensando di utilizzare un metodo di mappatura UVW (e se davvero lo fai, ti dò un bacio, ma non farti strane idee :asd:). Utilizzare una immagine unica presa da vari oggetti può essere comodo solo in rare circostanze, ma solitamente è preferibile lavorare con singoli tile. Eventualmente puoi scompattare il codice di STRPix e vedere come fa a mescolare le textures e a salvarle come un'unica mappa utilizzando l'export to bmp.

Altro consiglio, se eventualmente dovessi pensare di metterti a fare una cosa del genere, è quello di cercare di rendere quanto più possibile "traducibile" la trasformazione del formato 3ds in modo che sia compatibile con Tomb Raider. Dalle mie prove con 3ds Max e TRViewer, il formato è ben letto da quel programma, ma per qualche strana ragione, non riesce a tradurre le mappature, e TRViewer salva in maniera balorda i file .tr4. Non so se dipenda dagli strani salvataggi di WADMerger, ma è una vera rogna. Come dicevo in un'altra occasione in cui ho avuto modo di parlare lungamente dell'uso delle UVW Map per texturizzare gli oggetti (con un guadagno temporale enorme nel realizzare un oggetto), è il metodo definitivo per creare oggetti belli, velocemente e senza sbattoni ;)




Guest Reviewer (6)
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Non ne so ancora abbastanza sull'UVW mapping, ma ritengo che se si riuscisse a fare una cosa del genere, il motore di TR sarebbe a posto perchè lo supporta, il tool per fare i WAD idem ma lo scoglio è rappresentato dall'editor... L'editor è saldamente ancorato al vecchio sistema tant'è che, decifrando il file TOM, ho scoperto che anche le texture delle stanze sono esportate come pezzi rettangolari, dello stesso formato di quelle dei wad. Bisognerebbe vedere se una simile modifica dell'editor e del tom2pc è possibile senza rovinare troppe famiglie.... :asd:




Guest Reviewer (5)
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Ho esaminato un po' meglio la faccenda... Introdurre l'UVW nei wad comporterebbe anche la riscrittura del sistema delle mesh e delle texture... E non credo che il tom2pc sia d'accordo. A questo punto si potrebbe pensare di creare un nuovo sistema di wad apposta per l'NGLE, che consenta di rompere molti di questi limiti. Bisognerebbe anche scrivere un nuovo tom2pc, cosa che ora è possibile dato che ho decifrato la struttura interna del file tom e sul mio pc esiste l'unico esemplare al mondo di tom2pc progettato per tr3 :D (Ancora incompleto ma funzionante). Direi che più avanti potremmo esaminare la faccenda, intanto pensiamo a migliorare WadMerger. :D




Guest Reviewer (5)
Avatar utente
Walrus
Master TR Player
Master TR Player
Messaggi: 5361
Iscritto il: 24 gennaio 2005, 13:13

Messaggio da Walrus »

Parlandone tecnicamente, tomb4 e tom2pc come gestiscono le mesh e le textures?




Guest Reviewer (6)
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Le texture delle mesh di un oggetto sono salvate come pezzi rettangolari, di cui viene annotato il punto di origine x,y e poi la lunghezza e l'altezza del pezzo. Nelle mesh, ogni poligono ha tra i suoi dati anche un campo a 16 bit contenente vari flag, tra i quali che tipo di triangolo è. I valori possibili sono 0, 2, 4, 6 e il TRLE usa questo flag per determinare quale triangolo ritagliare dalla texture rettangolare. Questa cosa è davvero incomprensibile, perchè il livello finito in realtà memorizza i poligoni delle mesh come triangoli e rettangoli, e ognuno di essi ha la sua texture ben definita dalle 3 o 4 coordinate x,y, cioè il tuo tanto sospirato UVW mapping a quanto ho capito :D . Mi sembra una inutile complicazione, un retaggio del passato, o non so cosa. Spero di essere stato chiaro :D .

In sostanza, si tratterebbe di creare un nuovo formato di wad, poi bisognerebbe scrivere un nuovo tom2pc, e bisognerebbe modificare l'NGLE in modo che possa leggere il nuovo wad. Le modifiche non sarebbero colossali: si tratterebbe solo di modificare un po' il campo delle mesh e delle tex info del wad.

In sostanza: Tomb4, UVW mapping; tom2pc/TRLE, sistema del ca**o :lol:




Guest Reviewer (5)
Avatar utente
DaviDM
Moderator
Moderator
Messaggi: 1552
Iscritto il: 28 maggio 2005, 13:49

Messaggio da DaviDM »

In sostanza, si tratterebbe di creare un nuovo formato di wad, poi bisognerebbe scrivere un nuovo tom2pc, e bisognerebbe modificare l'NGLE in modo che possa leggere il nuovo wad. Le modifiche non sarebbero colossali: si tratterebbe solo di modificare un po' il campo delle mesh e delle tex info del wad.
Io direi di parlarne con Paolone , almeno siete in due che ci lavorate
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

@Walrus

Sai dove posso per caso trovare il codice di StrPix? Ho provato a cercare ma niente...




Guest Reviewer (5)
Avatar utente
Walrus
Master TR Player
Master TR Player
Messaggi: 5361
Iscritto il: 24 gennaio 2005, 13:13

Messaggio da Walrus »

Quel pistola di Turbo Pascal sono anni che ha offline la sezione sul suo sito relativa al codice. Mi sa che fai prima a scrivergli una mail: cyber_pascal@yahoo.com

Tornando al discorso della gestione textures/mesh, il fatto che vengano memorizzate le coordinate mi fa sorgere un paio di idee. In sostanza, usare l'UVW Mapping, è applicare una textures (nel sistema semplice) replicando "indicativamente" la forma dell'oggetto su cui viene applicata. Prendiamo una colonna tonda come quella della "Sala della Grande Ipostile" di Tomb4: essendo un cilindro, mapparla in UVW significherebbe prendere la texture nell'editor materiali, applicargli il modificatore e usare l'opzione "cilindro" per farla aderire perfettamente alla mesh. Tale cilindro (il termine tecnico è gizmo) è modificabile in vari modi: scalatura, spostamento, rotazione o modifica delle proporzioni della texture stessa tramite tre finestrelle chiamate proprio UVW. In sostanza, le UVW corrispondono alle coordinate texture sulla forma dell'oggetto. Un po' come dire alla texture: applica il tuo bordo superiore a TOT sull'asse X, a TOT sull'asse Y e a TOT sull'asse Z. Proprio nel periodo in cui ho cominciato ad utilizzare massivamente le UVW, che sono, nel 90% dei casi, usate per il texturing di solidi non-platonici (soprattutto per il character texturing, o il texturing su forme, appunto, inusuali) avevo cominciato a cercare un software che convertisse la mappatura UVW in uno "spezzettamento" della texture per evitare l'incredibile sbattone di doverla dividere manualmente con Photoshop. Tra i programmi che avevo scaricato, il funzionamento della suddivisione era piuttosto complesso, e dopo un paio di prove risultava più difficile usare quel programma che la divisione con forbice e maschere di selezione su PhotoShop. L'altra opzione, che avevo esplicato in questo topic, riguarda l'uso della funzione Render to texture di 3ds Max, un sistema veramente incredibile per mantenere, a prescindere dalle modifiche, la corretta mappatura di un oggetto. Se si fosse interessati, consiglio di puntare sulla imminente 3ds Max Design Studio, che contiene l'innovativo SDK tool che permette di interfacciare le proprie programmazioni (come plugin, scripts in MaxScript ecc...) direttamente e compatibilmente a 3ds Max ;)




Guest Reviewer (6)
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Purtroppo il wad, così com'è ora, non consente di fare una cosa simile: o rettangoli o triangoli rettangoli che corrispondono a metà della texture rettangolare. Ho letto sul tutorial che spesso non riuscivi a giocare i livelli con un 3ds importato con le UVW: dipende proprio da TR (e allora è inutile che sitamo qui a parlare :D ) oppure dal fatto che magari TRViewer salva il livello con le UVW in modo schifoso? Perchè se è questo il problema allora si può semplicemente cestinare TRViewer e pensare a qualcos'altro.

Se ho inteso bene il tutto, cioè che per texturizzare oggetti in modo umano bisogna che il wad supporti la possibilità di specificare le texture attraverso le loro 3 o 4 coordinate, allora si rende necessario creare dei nuovi strumenti e un nuovo formato per il wad.

Avevo pensato di creare un WADMerger avanzato che possa importare i 3ds, però ho visto che in tutti i programmi di questo genere, ad ogni salvataggio tutte le 1000 e passa texture del wad vengono riposizionate e ottimizzate per risparmiare spazio: una cosa del genere è impraticabile con texture che possono avere la forma di un triangolo isoscele, scaleno, lungo 2 km, o qualsiasi triangolo che non sia rettangolo. L'algoritmo sarebbe troppo complesso, e non so neanche se si possa fare. Qui bisogna introdurre un formato wad migliorato, che supporti per esempio le texture separate: come negli ultimi TR, in cui ogni mesh ha la sua DDS dedicata da 128x128, 256x256, etc. Se si potesse fare una cosa simile, qualora io importassi per esempio una bella mascherona Maya di quelle che piacciono a te :D (a proposito, Spring quando esce :asd: ?) il programma salverebbe nel wad tutte le tex info coordinata per coordinata, ma al momento del salvataggio andrebbe a ottimizzare la exture globale da 256x256 o 128x128 o quello che è SENZA toccare le singole texture contenute al suo interno. Ne deriverebbe una mappa con prima le texture di Lara, poi quelle delle pistole, poi quelle dei nemici, eccetera, e non quel minestrone di adesso.

E' un progetto interessante, che però prospetta numerose difficoltà. Innanzitutto, dovremmo far perdere il sonno a Paolone per fargli intercettare la funzione di caricamento dei wad nell'editor e sostituirla con una "ad hoc" nella dll esterna in grado di leggere il nuovo wad, poi bisognerebbe realizzare un nuovo tom2pc che sia in grado di gestire il nuovo wad. Quest'ultima cosa, che una volta era impossibile, ora si può fare perchè finalmente è nota la struttura interna del tom. Inoltre, un nuovo formato di wad renderebbe inutili tutti i tool esistenti.

Ci si può pensare, la mia è un'idea e ho esposto pro e contro. Non prometto nulla, anche perchè è la cosa più titanica che abbia mai concepito nella mia breve vita di diciannovenne.

In sintesi: un nuovo wad con una mappa texture suddivisa in sottoblocchi, contenentoi ciascuno le texture di un singolo oggetto, i quali saranno gli unici ad essere traslati in fase di salvataggio; dopo la mappa delle texture ci andrebbero le tex info, salvate non con il sistema obsoleto che ci fa dannare la testa ma specificando le coordinate dei vertici; infine gli oggetti veri e propri, magari separati tra loro come entità a sè stanti.




Guest Reviewer (5)
Avatar utente
MontyTRC
Average TR Player
Average TR Player
Messaggi: 394
Iscritto il: 11 maggio 2005, 17:26

Messaggio da MontyTRC »

Walrus ha scritto:Quel pistola di Turbo Pascal
34_108




Guest Reviewer (5)
Rispondi