Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

πως γίνεται η απεικόνιση τρισδιάστατων μοντέλων; βασικά έχω προσέξει σε έτοιμες συναρτήσεις ότι χρησιμοποιούν πίνακες για τις 3 διαστάσεις,

 

θέλω να ρωτήσω, ουσιαστικά τραβάνε τα x y z από τα αρχεία (obj) και τα χρησιμοποιούν σαν Points για να κάνουν Draw ??

 

Κάποιο σχετικό link;

Δημοσ. (επεξεργασμένο)

Πρωτα απο ολα πρεπει να ξερεις πως να ζωγραφιζεις 3D. Αν οχι κοιτα τη σελιδα που εδωσε πιο πανω ο migf1. Φυσικα υπαρχουν ΑΠΕΙΡΕΣ αλλες πηγες να ψαξεις !

 

Αν ξερεις κατι τετοιο , τοτε θα γνωριζεις οτι τα 3D σχηματα αποτελουνται απο τριγωνα( οχι παντα, αλλα αυτο ειναι αλλη κουβεντα ). Καθε 3D σχημα , το λεγομενο mesh , φτιαχνεται απο ενα προγραμμα σχεδιασης σαν το MAX ( blender φορ δε γουιν μωρεεεεε :-D ). Οταν εχεις το mesh, το αποθηκευεις σε μια μορφη αρχειου που σου δινει το προγραμμα. Μια τετοια μορφη ειναι το .obj , το οποιο ειναι αρχειο κειμενου. Αν ανοιξεις ενα τετοιο αρχειο σε εναν text editor θα δεις τα σημεια ( vertices ) που φτιαχνουν το mesh.Φυσικα υπαρχει και αλλη πληροφορια , οπως normals , texture coords ! Δεν υποστηριζει βεβαια animation και γενικως δεν χρησιμοποιειται πολυ στην πραξη.

 

Απο την αλλη υπαρχουν και τα binary αρχεια , που φυσικα ειναι σχετικα πιο δυσκολα να κανεις parse, οπως για παραδειγμα τα .3ds , τα collada κτλ.

 

Ξεκινα με .obj και επειτα συνεχιζεις με καποιο binary

Επεξ/σία από ChRis6
Δημοσ.

Θανκς Migf,

 

Παιδιά, έχω την εντύπωση ότι είναι "ανούσιο" να ασχολείται κανείς με C/C++ & OpenGL,

το λέω αυτό γιατί δεν περιέχει κάποιες έτοιμες-βασικές βιβλιοθήκες(συναρτήσεις) όπως πχ για τα 3D Models

 

κάτι μου λέει ότι και για αναπαραγωγή βίντεο δεν έχει έτοιμη συνάρτηση

 

(όπως όλα τα Games, δείχνουν ένα βίντεο πριν το παιχνίδι)

 

τι λέτε;

 

Πρωτα απο ολα πρεπει να ξερεις πως να ζωγραφιζεις 3D. Αν οχι κοιτα τη σελιδα που εδωσε πιο πανω ο migf1. Φυσικα υπαρχουν ΑΠΕΙΡΕΣ αλλες πηγες να ψαξεις !

 

Αν ξερεις κατι τετοιο , τοτε θα γνωριζεις οτι τα 3D σχηματα αποτελουνται απο τριγωνα( οχι παντα, αλλα αυτο ειναι αλλη κουβεντα ). Καθε 3D σχημα , το λεγομενο mesh , φτιαχνεται απο ενα προγραμμα σχεδιασης σαν το MAX ( blender φορ δε γουιν μωρεεεεε :-D ). Οταν εχεις το mesh, το αποθηκευεις σε μια μορφη αρχειου που σου δινει το προγραμμα. Μια τετοια μορφη ειναι το .obj , το οποιο ειναι αρχειο κειμενου. Αν ανοιξεις ενα τετοιο αρχειο σε εναν text editor θα δεις τα σημεια ( vertices ) που φτιαχνουν το mesh.Φυσικα υπαρχει και αλλη πληροφορια , οπως normals , texture coords ! Δεν υποστηριζει βεβαια animation και γενικως δεν χρησιμοποιειται πολυ στην πραξη.

 

Απο την αλλη υπαρχουν και τα binary αρχεια , που φυσικα ειναι σχετικα πιο δυσκολα να κανεις parse, οπως για παραδειγμα τα .3ds , τα collada κτλ.

 

Ξεκινα με .obj και επειτα συνεχιζεις με καποιο binary

 

Ε ναι, ας μάθουμε πρώτα τα βασικά και μετά μιλάμε.

ασε ασε, βασικά μήπως ξέρεις τι είναι τα (v,vt) στα obj files?

 

λεω να τα τραβήξω και να τα αποθηκεύσω σε έναν πίνακα και να τα κάνω draw, το θέμα είναι όταν τα κάνω draw, σαν τι θα τα κάνω; Points; Lines; Polygons;

Δημοσ.

v : vertices

 

vt : texture coords

 

vn : vertex normals

 

f: faces που φτιαχνονται απο τα παραπανω v,vn,vt του αρχειου. Με / χωριζονται τα στοιχεια της καθε κορυφης τριγωνου με αυτη τη σειρα: vertex,text coord,normal

 

για παραδειγμα το :

f 6/4/1 3/5/3 7/6/5

λεει οτι για την πρωτη ( 1 ) κορυφη του τριγωνου εχεις: το 6ο vertex που διαβασες , το 4ο texcoord και το 1ο normal που διαβασες.

Αντιστοιχα, για τη δευτερη κορυφη του τριγωνου εχεις: το 3ο vertex που διαβασες , το 5ο texcoord και το 3ο normal.

 

Ετσι βγαζεις ολα τα τριγωνα του mesh και αν τα ζωγραφισεις ολα σου δινουν το model !

Στο link που δινει ο kagelos απο πανω τα εξηγει πολυ καλα ^_^

 

 

Edit: σχετικα με αυτο που λες παραπανω

 

Λογικο ειναι να μην περιεχει κατι τετοιο , δηλαδη mesh, video loader κτλ γιατι δεν ειναι αυτος ο σκοπος της openGL/ directX. Εξαλλου, αν το εκανε , θα ηταν εξαρτημενη απο μερικα model formats.Τα βιντεο στα παιχνιδια ειναι pre rendered, δηλαδη δεν ζωγραφιζονται εκεινη την ωρα ( δεν ειναι real time ).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...