Skocz do zawartości

Znikające vertexy


Rekomendowane odpowiedzi

Mam taki problem. Otóż bawię się 3D i chcę zrobić takie... coś za pomocą vertex'ów. Wygląda to m.w. jak ostrosłup z 4 wierzchołkami u podstawy, tyle że obcięty w 1/3 wysokości. I teraz tak: jeżeli lighting=false, wszysko jest OK, ale jeżeli włączam światło, kształt znika. (może nie znika, robi się czarny i nie reaguje na światło). Nie jest to wina światła, bo są tam też inne modele 3D i wszystko jakoś działa. Wie ktoś o co chodzi?

Odnośnik do komentarza
Udostępnij na innych stronach

1. Musisz zrobic vertexami wektory normalne - bez nich swiatlo nie dziala na recznie rysowanych brylach

2. ustaw d3d_set_shading(true)

Odnośnik do komentarza
Udostępnij na innych stronach

chodzi o dodanie do prymitywow d3d_vertex_normal. Wektory normalne 'mowia' swiatlu gdzie jest twarz poligonu, 'mowia' jak dodawac swiatlo

Odnośnik do komentarza
Udostępnij na innych stronach

To ci powinno pomoc zrozumiec wektory normalne:

vectorswc0.png

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, działa. Trochę skakcze, ale dobra. A mógłbyś coś dla mnie jeszcze zrobić? Otóż coś mi się robi z teksturą. Kod wygląda tak:

d3d_model_primitive_begin(MT11,pr_trianglestrip)
    d3d_model_vertex_normal_texture(MT11,-10,20,10,-10,26,20,0,0)
    d3d_model_vertex_normal_texture(MT11,10,20,10,10,26,20,1,0)
    d3d_model_vertex_normal_texture(MT11,4,30,4,4,36,14,1,1)
    d3d_model_vertex_normal_texture(MT11,-4,30,4,-4,36,14,0,1)
    d3d_model_vertex_normal_texture(MT11,-10,20,10,-10,26,20,0,0)
d3d_model_primitive_end(MT11)

 

Ogólnie jest dobrze, ale tekstura jest trochę poplątana, tzn są trzy tekstury, wszystkie mają inny kształt i są na sobie. Wygląda to m.w tak:

image1.jpg

 

Wiesz o co chodzi?

Odnośnik do komentarza
Udostępnij na innych stronach

d3d_model_primitive_begin(MT11,pr_trianglestrip)
    d3d_model_vertex_normal_texture(MT11,-10,20,10,-10,26,20,0,0)
    d3d_model_vertex_normal_texture(MT11,10,20,10,10,26,20,1,0)
    d3d_model_vertex_normal_texture(MT11,4,30,4,4,36,14,1,1)
    d3d_model_vertex_normal_texture(MT11,-4,30,4,-4,36,14,0,1)
d3d_model_primitive_end(MT11)

Odnośnik do komentarza
Udostępnij na innych stronach

d3d_model_primitive_begin(MT11,pr_trianglelist)

d3d_model_vertex_normal_texture(MT11,-10,20,10,-10,26,20,0,0)
d3d_model_vertex_normal_texture(MT11,10,20,10,10,26,20,1,0)
d3d_model_vertex_normal_texture(MT11,4,30,4,4,36,14,1,1)

d3d_model_vertex_normal_texture(MT11,4,30,4,4,36,14,1,1)
d3d_model_vertex_normal_texture(MT11,-4,30,4,-4,36,14,0,1)
d3d_model_vertex_normal_texture(MT11,-10,20,10,-10,26,20,0,0)

d3d_model_primitive_end(MT11)

Jak nie stripem to lista trojkatow. powinno dzialac :)

Odnośnik do komentarza
Udostępnij na innych stronach

To ci powinno pomoc zrozumiec wektory normalne:

vectorswc0.png

A to nie jest przypadkiem iloczyn wektorów znormalizowanych tego trójkąta?

A wektor "normalny" to po prostu wektor podzielony przez jego długość - określa tylko jego kierunek, nie?

Odnośnik do komentarza
Udostępnij na innych stronach

Ee tam, pomylily mi sie nazwy ;P kazdemu sie moze zdazyc. Grunt ze dziala :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...