- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Symulator => Wątek zaczęty przez: Sm 42 driver w 18 Czerwca 2008, 21:35:37
-
Witam. Dzisiaj przy tworzeniu sceneri pojawił się porblem.
Mam wpis w scenerii:
include;sceneria/las_p.inc;none;1620.0;0.2;66.0;90.0;end
gdzie jak wiemy '90.0' jest kątem obrotu modelu w stopniach.
Następnie zmieniam kąt obrotu na '0.0'
czyli wpis:
include;sceneria/las_p.inc;none;1620.0;0.2;66.0;0.0;end
i odpalam swoją scenerię, ale obiekt, któremu zmieniłem kąt obrotu zostaje w takiej pozycji jak poprzednio. [Nie obrócił się]
Czy jest na to jakaś rada?
Za pomoc z góry dzięki :)
Pzdr
-
Pokaż plik 'las_p.inc', wtedy można coś powiedzieć na ten temat.
(pewnie nie ma przypisanego parametru (p5) do rotate - jeśli w ogóle jest w inc)
-
Pokaż plik 'las_p.inc', wtedy można coś powiedzieć na ten temat.
(pewnie nie ma przypisanego parametru (p5) do rotate - jeśli w ogóle jest w inc)
las_p.inc jest zdefiniowany w pliku *.inc ;)
treść:
origin (p2) (p3) (p4)
rotate 0 (p5) 0
include;tree.inc;Plants/#brzoza1.tga;-46.152;0.0;1.25471;0.0;8.15;5.0;end
include;tree.inc;Plants/#brzoza1.tga;-60.2047;0.0;75.0314;0.0;8.15;5.0;end
include;tree.inc;Plants/#brzoza1.tga;-65.6897;0.0;35.8846;0.0;8.15;5.0;end
include;tree.inc;Plants/#brzoza1.tga;-30.5839;0.0;94.0605;0.0;8.15;5.0;end
include;tree.inc;Plants/#buk1.tga;-24.3675;0.0;29.8706;0.0;10.0;5.0;end
include;tree.inc;Plants/#buk1.tga;-44.9447;0.0;26.3574;0.0;10.0;5.0;end
include;tree.inc;Plants/#buk1.tga;-34.4051;0.0;79.055;0.0;10.0;5.0;end
include;tree.inc;Plants/#buk1.tga;-63.5143;0.0;95.6171;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo6.tga;-47.4541;0.0;48.9421;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo6.tga;-29.3863;0.0;68.0136;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo6.tga;-32.3976;0.0;47.4365;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo6.tga;-26.375;0.0;12.3047;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo6.tga;-61.973;0.0;19.833;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-8.80916;0.0;56.9722;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-41.9334;0.0;17.8254;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-27.8807;0.0;2.76897;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-21.8581;0.0;87.587;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-47.9559;0.0;69.0174;0.0;10.0;5.0;end
include;tree.inc;Plants/#Jesion1.tga;-15.3336;0.0;10.7991;0.0;10.0;5.0;end
include;tree.inc;Plants/#Jesion1.tga;-19.8506;0.0;48.4402;0.0;10.0;5.0;end
include;tree.inc;Plants/#Jesion1.tga;-23.3637;0.0;79.055;0.0;10.0;5.0;end
include;tree.inc;Plants/#Jesion1.tga;-49.4616;0.0;97.1228;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna2.tga;-20.1513;0.0;23.8767;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna3.tga;-8.97244;0.0;4.35811;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna4.tga;-9.50478;0.0;26.8933;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna5.tga;-11.8115;0.0;42.3307;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna5.tga;-71.7617;0.0;2.10959;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna5.tga;-58.9859;0.0;7.78773;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna6.tga;-18.5405;0.0;64.4252;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna6.tga;-10.3781;0.0;94.9452;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-12.33;0.0;72.0552;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-11.7977;0.0;84.1213;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-49.238;0.0;85.3633;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-39.3012;0.0;58.3922;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-67.6646;0.0;60.8581;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-39.4269;0.0;38.9376;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-54.9853;0.0;38.4357;0.0;10.0;5.0;end
include;tree.inc;Plants/#Sosna7.tga;-58.7494;0.0;54.7469;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-90.9702;0.0;1.18119;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-94.7343;0.0;9.71318;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-97.2437;0.0;21.0055;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-90.2174;0.0;33.3016;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-100.506;0.0;43.3393;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-91.2211;0.0;48.609;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-82.4382;0.0;56.1373;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-93.2287;0.0;61.9089;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-88.2098;0.0;69.939;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-93.4796;0.0;76.2125;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-89.7155;0.0;85.4974;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-97.2437;0.0;92.2728;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-89.2136;0.0;99.0482;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-84.4457;0.0;96.0369;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo5.tga;-81.9363;0.0;79.7257;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-84.5712;0.0;0.365629;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-87.3315;0.0;6.63915;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-89.7155;0.0;12.7872;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-90.9702;0.0;18.4334;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-92.8522;0.0;27.8437;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-94.7343;0.0;38.6341;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-96.7418;0.0;46.4133;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-86.6745;0.0;52.1173;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-92.0698;0.0;55.3795;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-86.0472;0.0;62.4058;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-93.0735;0.0;67.4247;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-85.9217;0.0;77.2114;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-91.9443;0.0;80.85;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-84.6494;0.0;85.0704;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-93.8764;0.0;89.329;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-86.7787;0.0;91.9906;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-92.723;0.0;96.338;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-88.3143;0.0;27.0675;0.0;10.0;5.0;end
include;tree.inc;Plants/#drzewo8.tga;-88.8162;0.0;43.1277;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-86.3068;0.0;10.5054;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-87.2927;0.0;15.4442;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-91.64;0.0;23.2517;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-88.2686;0.0;31.2365;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-90.8416;0.0;36.4711;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-93.7693;0.0;43.4801;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-84.0988;0.0;38.7778;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-84.622;0.0;49.7852;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-88.888;0.0;59.3209;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-82.7399;0.0;65.8454;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-84.7475;0.0;72.2444;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-87.8842;0.0;87.0499;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-89.2644;0.0;80.0236;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-83.2418;0.0;90.6886;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-85.2494;0.0;102.671;0.0;10.0;5.0;end
include;tree.inc;Plants/#lipa2.tga;-84.1957;0.0;24.3822;0.0;10.0;5.0;end
rotate 0 0 0
endorigin
Pzdr
-
Taka sprawa, że rotate nie działa na .inc (jest nadpisywane przez rotate w include).
-
Wywal stąd:
origin (p2) (p3) (p4)
rotate 0 (p5) 0
...
rotate 0 0 0
endorigin
Każdemu obiektowi musisz osobno zmieniać kąt obrotu, jeśli chcesz aby każdy był obrócony inaczej.
Z 'origin' możesz jedynie (po zamienieniu w każdym wpisie parametru obrotu:
include;tree.inc;Plants/#brzoza1.tga;-46.152;0.0;1.25471;0.0;8.15;5.0;end
na (p5):
include;tree.inc;Plants/#brzoza1.tga;-46.152;0.0;1.25471;(p5);8.15;5.0;end
Obrócić wszystkie obiekty dookoła własnej osi, co z resztą mija się z celem.
-
@ZiomalCl: Ja wiem, że można każdemu drzewku przypisać kąt obrotu. Tutaj chodziło o to, żeby robić, ale się nie narobić, czyli zrobić jeden wpis zamiast kilkudziesięciu wpisów drzewek ;) [Oraz o to, żeby cały "kawałek lasu" się obrócił]
Dzięki za rady
Pozrdawiam
PS. Panie moderatorze, proszę jeszcze nie zamykać wątku, mogę mieć jeszcze jakieś pytania. Dziękuję.
-
Nie do końca zrozumiałem o co chodzi, ale domniemam, iż chcesz ileś tam drzewek przesunąć i obrócić o te same wartości. Co do obrotu pewny nie jestem (powinno to rotate zadziałać również), ale przesunięcie musi zadziałać.
W Testowie cała część scenerii jest przesunięta za pomocą orgin i działa. Ja zrobiłbym na początek tak:
1)zapisał te drzewka w jednym pliku
2)w głównym module scn napisałbym:
origin coś coś coś
include nazwa_pliku_z_drzewkami end
endorigin
3)Sprawdził, czy przesunięcie zadziałało-powinno (bo to działa w Testowie)
4)Wziął się za ten obrót, czyli rotate, wpisałbym:
origin coś coś coś
rotate coś coś coś
include nazwa_pliku_z_drzewkami end
endorigin
5)Sprawdził - też powinno zadziałać, bo niby dlaczego przesunięcie tak, a rotate nie?
6)Jeśli zadziała, to kombinowałbym właśnie z jednym inc, gdzie byłyby parametry określone (przesunięcie i obrót)
Zasady przy takim kombinowaniu: ponieważ nie wiadomo co jest przyczną nie takiego zachowania, jakie oczekiwaliśmy, nie wiemy gdzie leży błąd, to maksymalnie upraszcza się coś i sprawdza się krok po kroku jakie to przyniosło efekty. Zawężamy tym samym krąg podejrzeń.
-
@ZiomalCl: Ja wiem, że można każdemu drzewku przypisać kąt obrotu. Tutaj chodziło o to, żeby robić, ale się nie narobić, czyli zrobić jeden wpis zamiast kilkudziesięciu wpisów drzewek ;) [Oraz o to, żeby cały "kawałek lasu" się obrócił]
Obróci się - zrób tak jak Mariusz napisał. Tylko mówię, obrócą się wszystkie - każde jedno indywidualnie wokół własnej osi.
Tylko ja nie rozumiem jednego.
Piszesz, że masz kąt 90 i zmieniasz na 0.
Mam wpis w scenerii:
include;sceneria/las_p.inc;none;1620.0;0.2;66.0;90.0;end
gdzie jak wiemy '90.0' jest kątem obrotu modelu w stopniach.
Następnie zmieniam kąt obrotu na '0.0'
czyli wpis:
include;sceneria/las_p.inc;none;1620.0;0.2;66.0;0.0;end
I (jeśli to nie jest wartość wymyślona dla przykładu i naprawdę tak wpisujesz w scenerii) w ten sposób nie zauważysz nawet obrócenia drzewek, bo składają się one z 2 plane'ów każde - i środek mają na połowie każdego z nich i jedno jest obrócone względem drugiego pod kątem 90*. Widok z góry wygląda tak: +
Gdy obrócisz o 90* to też wygląda tak: +
Chyba wiesz o co mi chodzi... Ale podkreślam to co napisałem wyżej - jeśli ten obrót o 90* nie jest dla przykładu, tylko tak robisz w scenerii. (Wiem, czepiam się szczegółów takich, że nie ma 'np.' ;d)
-
Obróci się - zrób tak jak Mariusz napisał. Tylko mówię, obrócą się wszystkie - każde jedno indywidualnie wokół własnej osi.
Dawno tego nie sprawdzałem ale OIDP - mylisz się :) Powinny się obrócić wokół osi wskazywanej przez argumenty origin.
Ja sprawdziłbym wstecz czy wszystkie poprzednie pliki *.inc (włącznie z tree.inc) zawierają wpis: rotate 0 0 0
endorigin
-
Witam :) Tu nie chodziło o to, żeby drzewka się obróciły, tylko żeby cały segment drzewek się obrócił.
Czyli:
++++++++++++++++++++
++++++++++++++++++++
++++++++++++++++++++
++++++++++++++++++++
to jest nasz segment drzewek i chcemy go obrócić, żeby wyglądał tak:
++++
++++
++++
++++
++++
++++
++++
++++
++++
Mam nadzieję, że dobrze to pokazałem.
Ps. Mariusz, dzięki za wytłumaczenie, pokombinuję jeszcze z tym :)
Pozdrawiam
-
Zrób je w t3d, wtedy powinno być więcej FPS i możliwość obrotu.
-
Zrób je w t3d, wtedy powinno być więcej FPS i możliwość obrotu.
Prawda to, mozna też zapisać do pliku *.scm, te do tej pory udawało się przesuwać i obracać bez problemu.
-
Dawno tego nie sprawdzałem (...)
Ja też ;d
ale OIDP - mylisz się :)
I pewnie dlatego mi się pomyliło. Zdarza się.
-
Zrób je w t3d, wtedy powinno być więcej FPS
Powiedz mi yB, czy symek liczy współrzędne podczas wczytywania się scenerii, czy na bieżąco?
Innymi słowy, na jakim etapie pracy symulatora, przesunięcia (orgin) o pewne wartości są obliczane (nie bierzemy pod uwagę eventów w moim pytaniu, bo one zmieniają często położenie obiektów w przestrzeni np. szlabany)?
-
Podczas wczytywania scenerii.
Natomiast dla niektórych obiektów trójkąty są zapisywane do listy (np. t3d) i wywoływane przy renderingu, a dla niektórych są tworzone na bieżąco (np. szyny).
-
No bo o co chodzi, mianowicie swego czasu dla całej oryginalnej przesuniętej orginem części Testowa, zmieniałem współrzędne każdego obiektu, aby pozbyć się orginu i FPS ani tyci się nie zmienił.
-
No niestety, nie ma podstaw do wzrostu ilości FPS w konstruckcji symulatora po tej operacji.
-
A są jeśli chodzi o operację jeśli chodzi o te drzewka?
Jeśli są, to jakie?
Już wiemy,
1)że orgin na drzewkach nie ma wpływu na FPS.
2)Podczas wczytywania scenerii.
Natomiast dla niektórych obiektów trójkąty są zapisywane do listy (np. t3d) i wywoływane przy renderingu, a dla niektórych są tworzone na bieżąco (np. szyny).
Ja z ww punktów, mam tezę, iż to:
include;tree.inc;Plants/#brzoza1.tga;-46.152;0.0;1.25471;0.0;8.15;5.0;end
include;tree.inc;Plants/#brzoza1.tga;-60.2047;0.0;75.0314;0.0;8.15;5.0;end
....
i zawartość tree.inc:
//---------------drzewo---------------
//parametry: tekstura, x, y, z, kat, wysokosc, rozpietosc
origin (p2) (p3) (p4)
rotate 0 (p5) 0
node 500 0 none triangle_strip (p1)
0,0,(p7) 0,0,0 1,0 end
0,(p6),(p7) 0,0,0 1,1 end
0,0,-(p7) 0,0,0 0,0 end
0,(p6),-(p7) 0,0,0 0,1 end
0,0,(p7) 0,0,0 1,0 end
0,(p6),(p7) 0,0,0 1,1
endtri
node 600 0 none triangle_strip (p1)
-(p7),0,0 0,0,0 1,0 end
-(p7),(p6),0 0,0,0 1,1 end
(p7),0,0 0,0,0 0,0 end
(p7),(p6),0 0,0,0 0,1 end
-(p7),0,0 0,0,0 1,0 end
-(p7),(p6),0 0,0,0 1,1
endtri
rotate 0 0 0
endorigin
Jeśli to jakoś zamienimy na t3d nie zwiększy nam FPS.
I tu i tu, ilość trójkątów czy tekstur do wyświetlnia się nie zmieni, a współrzędne oblicznane są podczas wczytywania się scenerii (jak domniemam dla drzewek).
-
FPS może i by wzrósł... Ale nie wiem, nawet nie próbowałem się z tym bawić ze względu na to, że nie dało by się już zmieniać dowolnie wysokości i szerokości każdego drzewa. Musiało by to być stałą liczbą dla wszystkich rodzajów drzew, no chyba że zaczęli byśmy robić każdy rodzaj drzewa jako inny model. Ale też wysokości/szerokości byśmy już nie zmienili dla każdego osobno.
-
Ja to tak rozumiem, tworzymy las drzewek pod nazwą las.t3d. Dla każdego elementu (drzewa) opisujemy wszystko co trzeba, aby opisać pojedyncze drzewo. Teraz tworzymy inc, który będzie np. nazywał się las.inc, gdzie byłyby parametry jak ten las ulokować w przestrzeni.
Następnie w scm za pomocą instrukcji include + parametry dodajemy ten las. Tak ja zrozumiełem yB.
Nie sądzę, aby to wpłynęło na FPS, ale się nie upieram. Wynik jest mi nie znany, a jedynie mogę się domyślać na podstawie własnych, czy cudzych doświadczen.
-
Czekaj, to masz tezę, że include? Przynajmniej tak żeś to zapisał (za dużo wtrąceń i skrótów myślowych), ale da się zrozumieć :P
I tu i tu, ilość trójkątów czy tekstur do wyświetlnia się nie zmieni, a współrzędne oblicznane są podczas wczytywania się scenerii (jak domniemam dla drzewek).
Zmienia się ilość node - elementów scenerii. Teraz jedno drzewko to 2 takie obiekty, a n drzewek - 2n. Jeżeli zamienimy teraz owe drzewka na model t3d, to uzyskamy 1 obiekt (node ... model). Oznacza to zmniejszenie ilości obliczeń związanych z każdym takim obiektem przy renderingu (np. liczenie odległości). Poza tym, jak wspominałem w poprzednim poście, póki co obiekty node ... triangle_strip i triangle są niejako tworozne od nowa co klatkę, co również nie nalezy do najlepszych rozwiązań.
-
Zmienia się ilość node - elementów scenerii. Teraz jedno drzewko to 2 takie obiekty, a n drzewek - 2n. Jeżeli zamienimy teraz owe drzewka na model t3d, to uzyskamy 1 obiekt (node ... model). Oznacza to zmniejszenie ilości obliczeń związanych z każdym takim obiektem przy renderingu (np. liczenie odległości). Poza tym, jak wspominałem w poprzednim poście, póki co obiekty node ... triangle_strip i triangle są niejako tworozne od nowa co klatkę, co również nie nalezy do najlepszych rozwiązań.
Przepraszam, a t3d, nie wymaga obilczeń?
Samo się to maxdistance, macierze itp. dla każdego trójkąta, obiektu się liczą?
Dobrze rozumiem?
Skoro tak, to modelarze nie ma co się przejmować ilością poly w modelach t3d.
node ... triangle_strip i triangle są niejako tworozne od nowa co klatkę, co również nie nalezy do najlepszych rozwiązań.
To do mnie przemawia i tu widzę uzasadnienie t3d a zwiększenie FPS
PS
Poprzedni twój post był za bardzo ogólny, by wysnuć wniosek jak to się ma z drzewami. A mój post, hmmmm, czy za dużo skrótów myślowych, rzecz dyskusyjna. Ja nie zauważam ani jednego :P
Napisz jaki masz plan yB w związku z tym lasem, aby nie było nieporozumień.
-
Przepraszam, a t3d, nie wymaga obilczeń?
Samo się to maxdistance i te różne trójkąty się liczą?
Dobrze rozumiem?
Skoro tak, to modelarze nie ma co się przejmować ilością poly w modelach t3d.
No nie do końca. Trójkąty też się liczą, ale dużo trójkątów zgrupowanych w jednym modelu i kilku submodelach powinno być liczone szybciej, niż wybieranie ich z kilkudziesięciu/-set grupek.
PS
Poprzedni twój post był za bardzo ogólny, a mój post, hmmmm, czy za dużo skrótów myślowych, rzecz dyskujyjna. Ja nie zauważam ani jednego :P
Cóż, to taki modny zwrot swego czasu był :)
Napisz jaki masz plan yB w związku z tym lasem, aby nie było nieporozumień.
Zrobić ładną teskturkę z połączenia kilku składowych, w 3dsie zrobić drzewka (skrzyżowane plane), zmapować ładnie teksturką (jedną, góra dwoma); zrobić z tego jeden model (najlepiej jak najmniej submodeli) i wyeksportować do t3d. Wtedy można się nim posługiwać jak zwykłym modelem (obracać i przesuwać bez problemów).
Do tego można użyć opcji "light", żeby uzyskać kilka wariacji lasu w jednnym modelu :)
-
No nie do końca. Trójkąty też się liczą, ale dużo trójkątów zgrupowanych w jednym modelu i kilku submodelach powinno być liczone szybciej, niż wybieranie ich z kilkudziesięciu/-set grupek.
Jeśli to jest liczone w trakcie ładowania się scn, to nie ma znaczenia, ale chyba już jest jasne, skoro dla node liczy się co jakiś czas w trakcie symulacji.
To może być ważna uwaga dla trasopisarzy, aby unikali node.
Wtedy można się nim posługiwać jak zwykłym modelem (obracać i przesuwać bez problemów).
Do tego można użyć opcji "light", żeby uzyskać kilka wariacji lasu w jednnym modelu :)
A i tak to trzeba później do include :)
-
Jeśli to jest liczone w trakcie ładowania się scn, to nie ma znaczenia, ale chyba już jest jasne, skoro dla node liczy się co jakiś czas w trakcie symulacji.
Pytałeś o korzystanie z origin - współrzędne wierzchołków ustala się tylko raz wtedy. Natomiast jest jeszcze kwestia przygotowania trójkątów do wyświetlania. Z wypadku modeli t3d jest to robione przy wczytywaniu modelu i zapisywane w pamięci, natomiast w przypadku trójkątów luzem operacja ta dokonuje się co klatkę.
To może być ważna uwaga dla trasopisarzy, aby unikali node.
W pewnym sensie jest to racja, ale z drugiej strony to przejmować się tym mozna tylko przy ekstremalnej optymalizacji.
A i tak to trzeba później do include :)
Głupie pytanie: no i co z tego? :P Poza tym można bez ;]
-
Głupie pytanie: no i co z tego? :P Poza tym można bez ;]
Głupia jest twoje pytanie!
Ja pytania nie zadawałem, tylko stwierdziłem.
Ja wiem, yB, że rozumy wszystkie pozjadałeś :P
A co z tego, nic, poprostu includujemy.
Z wypadku modeli t3d jest to robione przy wczytywaniu modelu i zapisywane w pamięci, natomiast w przypadku trójkątów luzem operacja ta dokonuje się co klatkę.
Ok.
Pewno są odstępstwa od tego np. w przypadku taboru, bo tam jesli byłoby tylko raż, to ilość poly w t3d modelu nie miajłaby znaczenia, a ma. Chociaż tabor jest zapisywany jako node i stąd samo t3d może być niewystraczającym elementem to zwiększenia FPS.
PS
Weź poprawkę yB zjadaczu wszystkich rozumów, iż to Ty grzebiesz w exe, a ja się muszę tylko domyślać pewnych rzeczy...
Jeśli masz zamiar robić mi głupie docinki, to sobie podaruj geniuszu.
-
Ok, ale pewno są odstępstwa, coś mi się nie zgadza w stosunku co do taboru.
Masz na myśli pewnie wszelakie animacje. Otóż są to przekształcenia przestrzeni w której dany submodel (czyli lista trójkątów się znajduje), natomiast nie dotyka to już bezpośrednio trójkatów (znaczy w sumie dotyka, ale nie bawimy się z konkretnymi wierzchołkami).
Pewno są odstępstwa od tego np. w przypadku taboru, bo tam jesli byłoby tylko raż, to ilość poly w t3d modelu nie miajłaby znaczenia, a ma. Chociaż tabor jest zapisywany jako node i stąd samo t3d może być niewystraczającym elementem to zwiększenia FPS.
Pewno są odstępstwa od tego np. w przypadku taboru, bo tam jesli byłoby tylko raż, to ilość poly w t3d modelu nie miajłaby znaczenia, a ma.
Ilość trójkątów ma bardzo duże znaczenie w procesie renderingu, który tutaj nie był brany pod uwagę. Ja ciągle pisałem o procesach przygotowawczych do samego aktu wyświetlenia.
Głupia jest twoje pytanie!
Ja pytania nie zadawałem, tylko stwierdziłem.
Ja wiem, yB, że rozumy wszystkie pozjadałeś :P
A co z tego, nic, poprostu includujemy.
Kontekst mi się rozszerzył troszkę i tyle :)
Tylko nie edytuj co chwilę, proszę, bo się trudniej odpowiada :)
-
Kontekst mi się rozszerzył troszkę i tyle :)
To niech Ci się nie rozszerza :)
Tylko nie edytuj co chwilę, proszę, bo się trudniej odpowiada :)
A bo to co chwilę coś mi nowego w głowie się rodzi, a nie znam czasu odp. i myślę, że zdążę za nim przeczytasz i odpowiesz :)
W pewnym sensie jest to racja, ale z drugiej strony to przejmować się tym mozna tylko przy ekstremalnej optymalizacji.
Chyba nie do końca, o czym świadczy twoja propozycja odnośnie drzewek, a nie uwżam jej za ekstremalną optymalizację.
PS
Coś tam próbuje sobie poskładać to w całość tę dyskusję. Warto może napisać jakiś tutorial jak to się dzieje, iż symek wyświetla. Poznając mechanizm, mamy ułatwioną drogę do optymalizacji.
-
Mariuszu sprawa jest stosunkowo prosta, dla każdego node'a symulator musi wykonać przy każdej klatce pewny stały zestaw operacji OpenGL. Jeśli mamy dużo prostych node'ów to narzut tych operacji jest wiekszy niz przy jednym nodzie z duza geometria.
-
Dzięki Shax.