URL: https://www.overclockers.at/coding-stuff/3d_koordinaten_gt_2d_koordinaten_17870/page_1 - zur Vollversion wechseln!
wie das topic schon sagt, will ne 3d koordinaten auf ne 2d koordinaten (am bildschirm) abbilden. wär froh über ein paar einfache (schnelle) formeln, wenn möglich auch mit erklärung...
die ich früher verwendet habe waren zwar für kleine 'demos' ok, aber wenn das objekt zu nah an die kamera kommt wirds ziemlich unrealistisch verzogen : /
lol du brauchst formel fürs clipping oder?
weil bei pc-3dgfx normalerweise die z-achse nach 'innen' geht, also rein für die darstellung kannst du sie ignorieren.
wenns ums clipping oder irgendeine form von rendering geht ist es natürlich was anderes
also schreib was du genau brauchst und dann sehen wir weiter.
twistn@z
hehe, na also es is ned >so< komisch verzogen wie du jez vielleicht glaubst - kein clipping problem, will einfach die 2d koordinaten fürn bilschirm von nem beliebigen punkt im 3dimensionalen raum haben.
so hab ichs immer gemacht, 320x200 (13h mode ):
screen_x=160+(3d_x*camera_distance)/((3d_z+camera_distance)+0.0001);
screen_y=100+(3d_y*camera_distance)/((3d_z+camera_distance)+0.0001);
die +0.0001 san nur dazu da um a division by zero zu verhindern...
i such ned nach irgendwelchen grossartigen sachen, nur nach anderen (einfachen) möglichkeiten...
hehe, immer noch voll auf ausgfallene sachen.. was wirds denn? jump & run 3d? mit leveleditor? *g*
noledge
ein kahkcuf-killer-shooter in 3d natürlich
na, is nur für a kleines flash skriptchen, nix aufregendens...
Zitat von MetalBladeein kahkcuf-killer-shooter in 3d natürlich
Zitat von noledgemah, des war eine der w00testen zeiten meines lebens
kannst doch die "anti division durch 0" mit /1 umgehen, anstatt dieses +0.00001 zeugs
is genauer
Zitat von MetalBladehast eh noch unser geniales 'last_hak' program? auf meiner '286er schreibmaschine isses noch immer drauf
VG
und übrigends... psigdgdpadmmnkpuss!
Normalerweise macht man das mit 4x4 Matrizen. Gibt haufenweise gute Beispiele und Tutorials für sowas. Ich hab's aus dem cube Beispiel vom SDK für WinG von Microsoft gelernt, der gleich Code ist auch in irgendeinem DirectX SDK Sample drin, cube3d oder so ähnlich heißt's dort.
Ich hab da
-- snip --
2DX = 3DX / 3DZ
2DY = 3DY / 3DZ
-- snip --
Schaut irgendwie primitiver aus als die anderen
Lactobacillus
Wie war das nochmal?
y' = (a*y)/z
x' = (a*x)/z
wobei a der abstand des auges zum bildschirm ist, z die 'tiefe' des objektes 'hinter' dem bildschirm, was jetzt aber mit x und y gemeint ist..... keine ahnung
supi wars in assembler wennst für a eine zweierpotenz genommen hast, dann konnte man die multiplikation durch shiften (SHL/SHR) enorm beschleunigen....
ciao
Harry
thx, die formeln sind meiner im prinzip eh ziemlich ähnlich/gleich...
@ringding - jo des mit den matrizen ist mir bekannt, damit berechnet ma aber eher die drehungen, oder?
Da geht gleich alles auf einmal, das ist ja das w00te dran. Drehung, Skalierung, Perspektive, Translation - alles was du willlst.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025