![Avatar](/data/images/profiles/users/default.png)
VXVX (Normal User)
Newbie
![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png)
Messaggi: 5
Iscritto: 16/02/2010
|
Buongiorno a tutti. Espongo subito il problema
Ho una scena di 100.000 poligoni e devo mostrarla in directx.
Il mostrarla non dovrebbe essere un problema: infatti il mio software di modellazione usa directx e va benissimo. La stessa scena viene visualizzata benissimo anche da un plugin wrml, comunque basato su directx.
Se invece la esporto in .X e la carico col visualizzatore dell'SDK o la carico nella form, si inceppa.
Nella mia ignoranza sono arrivato alla conclusione che nei file .X possano essere memorizzati solo semplici modelli, mentre per importare una scena più complessa da un solo file bisognerebbe usare... boh .![:-?](/data/images/smiles/dubbioso.gif) ![:-?](/data/images/smiles/dubbioso.gif) ![:-?](/data/images/smiles/dubbioso.gif) ![:-?](/data/images/smiles/dubbioso.gif) ![:-?](/data/images/smiles/dubbioso.gif) ![:-?](/data/images/smiles/dubbioso.gif)
O forse è un problema del .NET e bisognerebbe usare tipo C++?
Non so nemmeno se si può fare o se la mia supposizione è giusta. Quindi, anche se non avete una soluzione, sono bene accetti consigli di qualunque genere.
Grazie in anticipo .
|
|
![Avatar](/data/images/profiles/users/pierotofy_1482545528.jpg)
pierotofy (Admin)
Guru^2
![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png)
Messaggi: 6230
Iscritto: 04/12/2003
|
Non credo il formato .X abbia particolari limiti, quale programma di modellazione stai utilizzando e quale esportatore utilizzi? Inoltre "si inceppa" non e' abbastanza informativo per trarre conclusioni... durante il debug in quale punto si interrompe il programma?
Ultima modifica effettuata da pierotofy il 16/02/2010 alle 20:45
|
|
![Avatar](/data/images/profiles/users/default.png)
VXVX (Normal User)
Newbie
![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png)
Messaggi: 5
Iscritto: 16/02/2010
|
3ds max, come esportatore uso kwxport
Non da problemi nel debug. Il problema è che comincia a caricare e poi il programma smette di rispondere
|
|
![Avatar](/data/images/profiles/users/pierotofy_1482545528.jpg)
pierotofy (Admin)
Guru^2
![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png)
Messaggi: 6230
Iscritto: 04/12/2003
|
E' quindi un plugin esterno e non ufficiale di 3d max... in caso estremo considera come spiegazione un diffetto del plugin.
No, non hai capito... esegui il codice passo per passo (aka, debug) e identifica la linea di codice in cui il programma si interrompe.
|
|
![Avatar](/data/images/profiles/users/Thejuster_1484207304.png)
Thejuster (Admin)
Guru^2
![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png)
Messaggi: 2331
Iscritto: 04/05/2008
|
mah secondo me sta facendo solo confusione
Il mostrarla non dovrebbe essere un problema: infatti il mio software di modellazione usa directx e va benissimo. La stessa scena viene visualizzata benissimo anche da un plugin wrml, comunque basato su directx.
|
Stai progettando un tuo software di modellazione? o stai usando un qualche programma di modellazione?
Se invece la esporto in .X e la carico col visualizzatore dell'SDK o la carico nella form, si inceppa.
|
Se il DirectX Viewer ti dà problemi e il modello che ha qualcosa che non và.
Non c'entra il formato che utilizzi
ma può dipendere con quale programma hai fatto questo modello.
Per esportare un modello si devono seguire diverse regole.
e altri programmi di conversione funzionano poco e niente
l'unico programma migliore al mondo per esportare in DirectX e 3dsmax
gli errori possono dipendere da tante cose,
Da una Texture Mancante o una mappatura errata
oppure dal script del modello magari ha saltato qualcosa o altro...
ma questo può dipendere solo dal programma con cui hai esportato
prova a farlo con 3dsmax non dovrebbe darti problemi.
o al limite
posta il frammento di codice che utilizzi per visualizzare il modello
e ne sapremo di più per darti una spiegazione.
oppure il contenuto del file .x
su 2 piedi non possiamo dirti molto Ultima modifica effettuata da Thejuster il 17/02/2010 alle 9:26
|
|
![Avatar](/data/images/profiles/users/default.png)
VXVX (Normal User)
Newbie
![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png)
Messaggi: 5
Iscritto: 16/02/2010
|
Grazie dei consigli.
Ho provato a convertire con conv3ds.exe la scena grande e ho ottenuto un file di 5MB (mentre quella esportata col plugin direttamente era 15MB).
Ma il risultato è lo stesso: parte il debug, carica tutto e finisce con:
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
A questo punto rimane il form vuoto il puntatore a clessidra e l'applicazione non risponde.
Ma non credo sia questo messaggio il problema. Con un file più piccolo (10k) sempre esportato allo stesso modo da lo stesso errore, ma l'applicazione parte e mostra la scena.
Per questo dicevo che forse dipende dalle dimensioni del file... in effetti 5Mb sono parecchi!
Poi il fatto che anche il viewer si blocca indica che non è colpa del codice, ma del modello
Comunque ecco il codice:
Codice sorgente - presumibilmente Plain Text |
modello.mesh = Mesh.FromFile(AppPath() & "\file.x", MeshFlags.Dynamic, device, materiali)
|
Ultima modifica effettuata da VXVX il 17/02/2010 alle 10:14 |
|
![Avatar](/data/images/profiles/users/Thejuster_1484207304.png)
Thejuster (Admin)
Guru^2
![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png) ![](/data/images/stars/yellow.png)
Messaggi: 2331
Iscritto: 04/05/2008
|
l'errore che ricevi
System.IO.FileNotFoundException
e chiarissimo
Il file non viene trovato, o probabilmente come avevo detto prima
ti manca qualche Texture che non riesce a trovarla e crasha.
ti consiglio di fare delle prove con dei modelli vuoti e piccoli.
giusto per avere un'idea di cosa succede.
se il DirectX Viewer ti dà problemi che non riesce a vedere il modello
sicuramente li avrai anche nel tuo programma.
assicurati prima di tutto che DirectX Viewer riesce correttamente a vedere il tuo modello.
dopo potrai provare a caricarlo nell'applicazione.
PS.
I programmi di conversione come conv3ds raramente sono efficienti.
per questo ti dicevo prima di usare proprio un programma addatto che
esportasse in .X Esempio Blender che e Free.
altra cosa.
ricordati di eliminare dal modello oggetti come
camera, luci, ed effetti vari, potrebbero appunto causarti questi problemi.
un modello dev'essere pulito, privio di ogni effetto o oggetti che possono provocare appunto questo.
per effetti grafici, esistono gli shader, che vanno implementati nell'applicazione.
|
|
![Avatar](/data/images/profiles/users/default.png)
VXVX (Normal User)
Newbie
![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png)
Messaggi: 5
Iscritto: 16/02/2010
|
Ho gia provato con un file più piccolo e funziona: si vede nel visualizzatore e nel programma, ma da comunque l'errore System.IO.FileNotFoundException.
Ora controllerò per luci ed effetti, forse ce ne sono...
Nel frattempo posto anche l'output che mi da il viewer prima di bloccarsi
Codice sorgente - presumibilmente Delphi |
Tangents and Binormals cannot be generated without a 2-element or greater texture coordinate at TEXCOORD0. Please use DXOps to UV-Atlas your mesh. Normals do not exist on mesh. Attempting to calculate. Binormals do not exist on mesh. Attempting to calculate. Tangents do not exist on mesh. At
|
e poi si blocca.
Fatemi sapere magari che significa.
Il modello piccolo invece non si blocca quindi ho potuto copiare l'output per intero
Codice sorgente - presumibilmente Delphi |
Loading model - cubocono.x Binormals do not exist on mesh. Attempting to calculate. Tangents do not exist on mesh. Attempting to calculate. 'Cone01' material 0 - No effect instance specified. Reverting to the default effect. SAS: Loading effect 'Resource:#103' Binormals do not exist on mesh. Attempting to calculate. Tangents do not exist on mesh. Attempting to calculate. 'Box01' material 0 - No effect instance specified. Reverting to the default effect. SAS: Loading effect 'Resource:#103'
|
|
|
![Avatar](/data/images/profiles/users/default.png)
VXVX (Normal User)
Newbie
![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png) ![](/data/images/stars/gray.png)
Messaggi: 5
Iscritto: 16/02/2010
|
Ecco fatto. Sono sicuro che non dipende da luci o effetti: ho creato una nuova scena: 400 sfere per 300.000 poligoni, 7MB e il viewer si comporta allo stesso modo: arriva a 98 e si blocca. Nella scena non ci sono altro che sfere.
Se cancello una parte della scena lasciandone solo una settantina per 70.000 poligoni invece funziona.
Ho provato con un altra scena 70.000 poligoni 1500 oggetti, arriva a 80 e poi si blocca
Siete mai andati oltre i 100 oggetti? Forse è questo il problema
Ultima modifica effettuata da VXVX il 09/03/2010 alle 16:46 |
|