Symulator EU07 (i nie tylko) > Symulator
Typ submodelu stars
Stele:
--- Cytat: wiki ---Obiekt taki zachowuje się jak wielopunktowy FreeSpotLight bez możliwości ustalenia kierunku świecenia, za to każdy punkt może świecić innym kolorem. Pierwotnie powstał do obsługi modelu nocnego nieba, ale może także służyć jako oświetlenie wież, światła obrysowe samochodów ciężarowych lub samolotów, czy latarnie w odległej miejscowości. Obiekt można dowolnie animować (Anim:, eventy), załączać gdy się ściemnia (Selfillum: z liczbą), jak również załączać eventem lights. Obiekt nie jest wyświetlany w trybie VBO, będzie to naprawione w przyszłych wersjach.
--- Koniec cytatu ---
Mam wiec następujący submodel:
--- Kod: ---Parent: none
Type: Stars
Name: lampki
Anim: false
Diffuse: 255.0 255.0 255.0
SelfIllum: 0.24
MaxDistance: -1
MinDistance: 0
Transform:
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
NumVerts: 4
1
0 -4 57 90240 0
0 4 57 5331695 0
-4 0 57 4477779 0
1
4 0 57 6574411 0
--- Koniec kodu ---
I nijak nie mogę uzyskać składowej czerwonej różnej od zera. Wg dokumentacji e3d za barwę odpowiada 16 bajtów. Cztery najmłodsze nie mają widocznego wpływu. 5-8 to składowa niebieska. 9-12 zielona. 13-16 ustawione na ff dają cyjan a na przykładowe 10 czerń. Z kilkoma osobami głowiłem się nad tym kilka godzin bezowocnie. Niech wisi psując krew mającym dostęp do kodu.
Ra:
Jest tak:
--- Kod: --- parser.getToken(j); //zakodowany kolor
Vertices[i].Normal.x=((j )&0xFF)/255.0; //R
Vertices[i].Normal.y=((j>> 8)&0xFF)/255.0; //G
Vertices[i].Normal.z=((j>>16)&0xFF)/255.0; //B
--- Koniec kodu ---
I potem:
--- Kod: --- glColor3f(Vertices[i].Normal.x,Vertices[i].Normal.y,Vertices[i].Normal.z);
--- Koniec kodu ---
Stele:
Czyli najmłodsze odpowiadają za składową czerwoną. Zmieniłem atmo na dzienne by było widać. Wpisałem 0x0101ff=66047. Efekt? Czarna kropeczka taka sama jak dla zera. Ewidentnie coś mi ucina składową czerwoną. Diffuse mam biały, żeby nie było. Tylko gwiazdy na niebie przyjmują pełną paletę, wiec o co chodzi? W załączniku model testowy z jednym punktem świetlnym w 0 0 5.
Ra:
No tak, zapomniałem o tym, że potem się robi optymalizacja, która modyfikuje wektory normalne, a tutaj zamiast wektorów normalnych są składowe koloru i nie powinny być przeliczane. Aby wyłączyć optymalizację proponuję dać Anim: true.
Stele:
Dzięki, działa. :D Szkoda tylko, że tyle czasu na to zmarnowaliśmy.
Nawigacja
[#] Następna strona
Idź do wersji pełnej