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

three.js webgl


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

Δημοσ.

Ξέρει κανείς σε τι μονάδες είναι το σύστημα συν/νων του webgl.

 

 

Ενοώ όταν κάνει ένα κύβο ας πούμε με εντολή new THREE.CubeGeometry(20, 20, 20);

ή new THREE.Vector3(10,10,10); Τι είναι αυτά τα νούμερα σε σχέση με τον καμβά μου που είναι ας πούμε 800x600 px.

 

 

 

Δημοσ.

Σε... Μονάδες.

 

0 κέντρο.

Σε τι μονάδες είναι η ερώτηση;

Σε τι μονάδες είναι η ερώτηση;

Αντιλαμβάνομαι ότι πέζει ρόλο η θέση / απόσταση της κάμερας αλλά ψάχνω μια αντιστοιχία γιαυτές τις μονάδες γιατί μου φένεται πολύ αόριστο. 

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

-1 1

 

Μην σε μπερδεύει το viewport. Τα 3d πρακτικά τα projectαρεις. Όσο πιο κοντά στη κάμερα είναι, τόσο πιο μεγάλα θα είναι, οι μονάδες, είναι απλές μονάδες. Η default οθόνη πρέπει να είναι -1 1 με κέντρο το 0.

 

 

Edit... Ας πούμε πως έχεις μια λάμπα η οποία φέγγει σε έναν τοίχο. Ο τοίχος είναι το viewport ο καμβάς στη περίπτωση σου. Η λάμπα είναι το λεγόμενο eye της κάμερας. Ο χώρος ανάμεσα από την λάμπα και τον τοίχο είναι το λεγόμενο view frustum. Αν βάλεις το χέρι σου σε αυτό το χώρο, τότε θα δεις την σκιά του στο τοίχο.

 

Κάπως έτσι είναι τα πράματα, με την διάφορα ότι εσύ δεν βλέπεις τον τοίχο αλλά ένα άλλο panel (near clip panel)

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

-1 1

 

Μην σε μπερδεύει το viewport. Τα 3d πρακτικά τα projectαρεις. Όσο πιο κοντά στη κάμερα είναι, τόσο πιο μεγάλα θα είναι, οι μονάδες, είναι απλές μονάδες. Η default οθόνη πρέπει να είναι -1 1 με κέντρο το 0.

 

 

Edit... Ας πούμε πως έχεις μια λάμπα η οποία φέγγει σε έναν τοίχο. Ο τοίχος είναι το viewport ο καμβάς στη περίπτωση σου. Η λάμπα είναι το λεγόμενο eye της κάμερας. Ο χώρος ανάμεσα από την λάμπα και τον τοίχο είναι το λεγόμενο view frustum. Αν βάλεις το χέρι σου σε αυτό το χώρο, τότε θα δεις την σκιά του στο τοίχο.

 

Κάπως έτσι είναι τα πράματα, με την διάφορα ότι εσύ δεν βλέπεις τον τοίχο αλλά ένα άλλο panel (near clip panel)

Ναι για το -11 το είδα στα forums για webgl.webgl-axes.png

και η αντιστοιχία βγαίνει έτσι var objectWidth = OBJECT_WIDTH_IN_PIXEL / CANVAS_WIDTH;

 

Το three.js είναι βιβλιοθήκη του webgl και λογικά θα έπρεπε να ισχύει το ίδιο.

Δεν μπορώ να καταλάβω γιατί οι τιμές δεν είναι μεταξύ -1 και 1 παράδειγμα var geometry = new THREE.SphereGeometry(50, 64, 64); Το 50 είναι η ακτίνα. Γιατί δεν βγαίνει εκτός ορίων.

 

Προσπαθώ να καταλάβω τι γίνεται πειραματικά σχεδιάζοντας ένα ορθογώνιο στο επίπεδο XY

new THREE.PlaneGeometry(50, 25); και μου γεμίζει όλη την οθόνη, μετά απομακρύνω την κάμερα και το ορθογώνιο μου μικραίνει και μπορώ να το μεγαλώσω κι άλλο. Πού φτάνει αυτό;

Δημοσ.

Το θέμα είναι που έχεις τον projectorα τη κάμερα δηλαδή. Αν είναι στο 100z τότε μια σφαίρα με ακτίνα 25, τότε θα γεμίζει την μισή οθόνη.

 

Ξέρεις από matricies? World view projection σου λέει κάτι;

Δημοσ.

Ναι, αυτό το καταλαβαίνω. Αυτό που δεν καταλαβαίνω είναι πόσο μεγάλο σε αριθμούς είναι αυτό το τρισδιάστατο κουτί και τι αντιπροσωπεύουν αυτοί οι αριθμοί. Μπορώ δηλαδή την ακτίνα της σφαίρας αντί 25 να την κάνω 25000 και να βάλω την κάμερα στο 100000. Και τη σχέση έχουν αυτοί οι αριθμοί με τις διαστάσεις τη οθόνης.

Δημοσ.

Ναι μπορείς να βάλεις ότι θέλεις. Όλο το πράμα έχει να κάνει με σχέσεις, άρα σου είναι αδιάφορο αν έχεις 0.000001 ή 1000000 επειδή πολύ απλά το 0.0001/0.0003 είναι ισοδύναμο με το 1000/3000

 

Δες λίγο στο google τις αγγλικές λέξεις που έβαλα πιο πάνω. Δες και δω http://www.insomnia.gr/topic/477835-share-3d-console/

Δημοσ.

Σε κάθε περίπτωση ευχαριστώ. Πειραματικά έχω αρχήσει και καταλαβαίνω τι πέζει πάνω κάτω πρέπει να το δουλέψω λίγο να το χωνέψω.


Απλά κόλλησα με τα pixels που δουλεύει ο 2d καμβάς

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

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

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

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

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

Σύνδεση

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

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