Domanda

un amico artista mi ha mandato un file obj esportato da 3DS Max 2009 che contiene tre texture coordinate come parametri al comando vt. E questo è corretto in base alla specifica .obj. Tuttavia, non sono sicuro di come mappare le coordinate U-V-W che vengono forniti per un 2D regolare .jpg texture.

Questo è relativamente importante per me, perché ho giocato con 3DS Max a cercare di capire come forzare per esportare solo le coordinate U-V, ma sembra che vi sia alcun modo straightfoward. In questo caso si tratta solo di uno skybox, ma in altri casi potrebbe essere qualcosa di molto più complesso e non risolvibile a mano.

Grazie!

È stato utile?

Soluzione

C'è una sezione in questo articolo cosa è UVW Mapping che spiega?:

  

Si potrebbe chiedersi perché avete bisogno di un   coordinate profondità come W per un 2D   aereo. Uno dei motivi è perché è   talvolta utile essere in grado di capovolgere   l'orientamento di una mappa, relativo alla   la sua geometria. Per fare questo, è necessario il   terza coordinata. coordinata W   ha anche un significato per 3-dimensionale   materiali procedurali.

Nel tuo caso, si può semplicemente ignorare il W coordinare e leggere solo le prime due galleggianti di linee che iniziano con vt. Questo presuppone che non siete molto preoccupati per lo spazio extra presa dal W coordinata dal obj è piuttosto un formato di file inefficiente per cominciare.

Personalmente non mi piace usare .obj in OpenGL perché fornisce vertice normali per il viso, invece di per vertice. Per illuminare un oggetto correttamente dovete o duplicare i vertici o calcolare le normali facendo la media dei normali ai vertici circostanti in un volto. Se si desidera esplorare alternative più efficienti, dare un'occhiata a formati binari, come il formato .md2 accuratamente documentato. Anche considerare l'utilizzo glDrawElements se non stai utilizzando già.

Altri suggerimenti

scusate se ho frainteso la tua domanda. Ma could't semplicemente ignorare il terzo parametro, w? Da quanto ho capito, w è solo una coordinata in un piano perpendicolare al piano descritto da u e v, quindi è raramente necessaria per una semplice texture mapping 2d.

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top