Toon posts:

[DirectX] Incorrecte face normals

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor al die directX guru's die hier rondlopen: Ik heb een mooi ;) battleship in 3ds max gemaakt en die vervolgens geexporteerd naar het directX 'X' file formaat mbv de Panda 3ds plugin. Dit filetje lees ik vervolgens in in mn eigen DirectX progsel. Werkt op zich prima met als enige probleem dat om een of andere reden bij één van de subobjecten van mn battleship alle face normals verkeerd om staan.
Nog even in 3ds gecheckt, en daar klopt het dus wel. Als ik ze daar nou (alleen voor dat object) verkeerd om zet, dan klopt het in directX opeens wel, alleen begrijp ik dus absoluut niet waar dit nou door komt.
Nou kan ik in 3ds natuurlijk het materiaal 2-sided maken zodat het er in 3ds ook normaal uit ziet, maar dat is een beetje een hack en geen echte oplossing. Bovendien betekend dat dus dat ik voortaan al mijn modellen uigebreid moet controlleren of er misschien ergens nog iets 'binnenstebuiten' zit. Ook niet echt ideaal dus.

Als iemand dus nog tips heeft dan hoor ik die graag... Want ik heb dus nog absoluut geen idee of dit nou een bug is in mijn programma, de standaard X-file loader, die Panda plugin of 3ds max...

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Mijn tip:

Gebruik je eigen formaat en niet .X, gebruik desnooods .3ds of .asc, .X is langzaam om te laden

Verwijderd

Topicstarter
Op dinsdag 11 juni 2002 19:32 schreef 41.6C.6D.61.72 het volgende:
Mijn tip:

Gebruik je eigen formaat en niet .X, gebruik desnooods .3ds of .asc, .X is langzaam om te laden
Dat langzaam laden is niet zo'n ramp, ik das toch maar eenmalig, verder is het prutsen met directX echt gewoon puur voor de lol, ik denk niet dat ik zover kom om echt een complete game te gaan schrijven...Ik wil dus gewoon snel wat leuke dingen op het scherm hebben, en om nu zelf een file loader + renderer te gaan schrijven gaat me eigenlijk wat ver en vindt ik zonde van mn tijd (okay, t zal niet zo super veel tijd kosten, maar toch...).

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

heb geen ervaring met X-files, maar wel met het feit dat 3dsmax nogal eens z'n normals wil omdraaien idd :)
Tenminste, de normals zijn wel goed, maar soms schakelt ie ineens om van counterclockwise naar clockwise, waardoor de berekening van de normal op het verkeerde resultaat uitkomt

In mijn eigen 3dsmax exporter hou ik daar expliciet rekening mee door te kijken wat de normal echt moet zijn, zodat ik evt de volgorde van de vertices per face kan omdraaien.

Maar goed, misschien is het handig om de scene te exporten naar .ase? Da's een textbased formaat die je makkelijk zelf kunt parsen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Primal
  • Registratie: Augustus 2001
  • Laatst online: 10:52
Op dinsdag 11 juni 2002 18:26 schreef hondass50 het volgende:
Voor al die directX guru's die hier rondlopen: Ik heb een mooi ;) ...
Dit is geen bug in je programma ....
heb geen ervaring met X-files, maar wel met het feit dat 3dsmax nogal eens z'n normals wil omdraaien idd
dit is het probleem ook niet. Ik heb zelf een hele tijd geleden ook eens gebruik gemaakt van dat DirectX 'X' formaat. De files maakte ik door het gebruik van exporter-plugins in 3D Studio of van convertor applicaties. Bij al die applicaties werden inderdaad de normals omgedraaid, waardoor je tegen de binnenkant van je object zit te kijken. Ik heb dat een tijdje opgelost door inderdaad bij alle objecten die ik maakte, de normals in 3D Studio om te draaien. Maar zoals je zelf zegt, dit schiet op den duur niet op. Ik ben vergeten waarom het precies zo ging, is ook al weer ruim anderhalf jaar geleden.

Maar goed, ik heb dus uiteindelijk mijn eigen exporter-plugin voor 3D Studio Max geschreven. Da's veeeeeeel handiger, bovendien kun je zelf bepalen welke features je er wel of niet in wilt hebben. Ik zou zeggen, kijk daar eens naar.

"The fastest code, is the code that is never called."