[ bokiko @ 30.11.2006. 11:51 ] @
Tek sam poceo sa ucenjem DirectX-a (mada sam dosta radio u Visual C#) i kvalitativno mi je sve jasno, medjutim neki tehnicki detanji mi nisu jasni. Kada radim u koordinatnom sistemu monitora, koordinate se mere u odnosu na gornji levi ugao i to je OK. Ali ako hocu da definisem scenu i da koordinate merim u odnosu na scenu, onda ne znam gde se nalazi moj koordinatki pocetak. Predpostavljam da se nalazi u centru scene ali kada zadam sledece koordinate sve je u redu
Code:


            CustomVertex.PositionColored[] verts = new CustomVertex.PositionColored[3];
            verts[0].SetPosition(new Vector3(0.0f, 1.0f, 1.0f));
            verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
            verts[1].SetPosition(new Vector3(-1.0f, -1.0f, 1.0f));
            verts[1].Color = System.Drawing.Color.Black.ToArgb();
            verts[2].SetPosition(new Vector3(1.0f, -1.0f, 1.0f));
            verts[2].Color = System.Drawing.Color.Purple.ToArgb();


medjutim
Code:

            CustomVertex.PositionColored[] verts = new CustomVertex.PositionColored[3];
            verts[0].SetPosition(new Vector3(5, -5, 0));
            verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
            verts[1].SetPosition(new Vector3(-20, 15, 1.0f));
            verts[1].Color = System.Drawing.Color.Black.ToArgb();
            verts[2].SetPosition(new Vector3(1.0f, -1.0f, 1.0f));
            verts[2].Color = System.Drawing.Color.Purple.ToArgb();

ne desava se nista.
P.S Scena je dobro definisana kao i kamera i svetlo.
Da li su koordinate date u pikselima i gde je taj koordinatni pocetak?
[ yooyo @ 30.11.2006. 13:10 ] @
U D3D-u postoje 3 matrice koje uticu na iscrtavanje objekata:
- model
- view
- perspective (projection)

view je pozicija kamere, perspective "daje 3d utisak", a model je pozicija 3d modela u prostoru. Sve koordinate koje saljes ce se transformisati kroz model, pa kroz view pa kroz perspektivnu matricu pre iscrtavanja na ekranu.

Mozda nisam bio dovoljno precizan tako da bi vise detalja o ovome mogli reci D3D programeri na ovom forumu.
[ Filip Strugar @ 30.11.2006. 13:45 ] @
Mislim da si sasvim dovoljno objasnio, yooyo, al evo jos jednom:

kada das vertex, on se prvo transformise koriscenjem Model, pa View pa Projection matricama, i onda se nalazi u onom (-1,-1,0) (1, 1, 1) cube-u, koji se onda 'razvuce' na Viewport koordinate, tj uglavnom na ekran.

Bokiko, imas u okviru DirectX SDK-a tutoriale, pa kreni od jednog od prvih sa iscrtavanjem trougla, pa ces se snaci sam!
[ bokiko @ 30.11.2006. 19:14 ] @
Radio sam onaj primer sa trouglom, ali kad ja zadam svoje koordinate trougao jednostavno nestane. Kada prebacim TriangleList u ListPoint nekad mi prikaze tacke a nekad ne. Nikako da ukapiram gde ce se na formi prokazati trougao. Imate li neki savet kako da sam pre pokretanja programa pretpostavim gde ce se prokazati trougao u odnosu na formu ili cu to morati da sticem osecaj kroz iskustvo u 3D-u
[ yooyo @ 01.12.2006. 10:41 ] @
U 3d programiranju ne postoji forma (prozor) kao kod UI programiranja. Da bi "video" neko 3D objekat, kamera mora da gleda u njega. Najjednostavnije je da pomocu D3DXMATRIXLookAtLH postavis view matricu, da model ostavis idenity, a perspective matricu postavis pomocu D3DXMatrixPerspectiveFovLH. Objekat crtas lokalno u odnosu na model matricu.

Ono sto si ti uradio je da si zadao prevelike koordinate tako da je trougao van ekrana. Takodje, redosled slanja vertexa moze da utice na iscrtavanje ako je ukljucen backface culling.
[ bokiko @ 01.12.2006. 13:55 ] @
Kako da podesim model matricu?