Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Krzysiek K.

Strony: 1 ... 857 858 859 860 [861] 862 863 864 865
12901
C++ / Odp: jak prawidłowo pobrać parametry zwrócone przez funkcję
« dnia: Styczeń 27, 2006, 17:43:50 »
Cytuj
Ogólnie stosowany jest __stdcall do zwykłych funkcji
Nie jestem pewien, ale domyślnie kompilatory C++ używają chyba __cdecl. :)

Cytuj
w przypadku metod stosowany jest thiscall i tam różnica jest tylko taka że w ECX przekazywany jest wskaźnik na klasę.
Dodatkowo, wskaźnik na klasę jest także przekazywany jako pierwszy parametr przez stos.

12902
C++ / Odp: jak prawidłowo pobrać parametry zwrócone przez funkcję
« dnia: Styczeń 27, 2006, 11:25:25 »
Podstawowa zasada - ile robisz push'y, tyle musisz zrobić pop'ów, inaczej wszystko się wywali. Pozatym upewnij się, czy wywołujesz funkcję używając właściwej konwencji (w Twoim przypadku wskaźnik i wywoływane funkcje powinny być określone jako __stdcall chyba). Prawdopodobnie będziesz też musiał zmienić kolejność odkładanych parametrów, żeby stała się zgodna z kolejnością w tablicy (parametry na stosie kładzie się od końca. :)

12903
OpenGL / Odp: scianki zawsze rownolegle do ekranu
« dnia: Styczeń 27, 2006, 05:39:23 »
Cytuj
Tylko że w takim razie nie wiem jak sprawdzić rzeczywistą maksymalną dostępną wartość. Wie ktoś?
Nie kojarzę, żeby w OpenGL były ograniczenia sprzętowe na rozmiar point sprite'ów. :)

12904
OpenGL / Odp: scianki zawsze rownolegle do ekranu
« dnia: Styczeń 26, 2006, 20:16:09 »
Cytuj
Wogóle point sprite'y mają różne maksymalne wielkości na różnych kartach. Przeszedłem z radka 9800 Pro na geforce'a 6800 GT i zmalały kilkukrotnie...
O ile pamiętam, GeForce 4 Ti i powyżej potrafią obsługiwać point sprite'y o wielkościach do 4096x4096, co powinno wystarczyć w praktycznie wszystkich zastosowaniach. Inna sprawa, że Direct3D domyślnie ma ustawione ograniczenie wielkości point sprite'ów na 64x64 i może po prostu ATI zapomniało o czymś takim jak maksymalna wielkość point spriteów, a Ty tego nie przestawiłeś i korzystałeś z ich niedociągnięć? :)

Poza tym mogła być to kwestia zmiany rozdzielczości lub ustawień antyaliasingu. :)

12905
Programowanie grafiki / Odp: Normalne
« dnia: Styczeń 26, 2006, 20:11:26 »
Cytuj
Ale czy istnieją formaty 3D, które już w pliku mają wyliczone normalne i znormalizowane, a nasze zadanie polegać bedzie tylko do wyciągnięcia tych danych z pliku.
Większość formatów 3D przechowuje normalne. Polecam OBJ (popularny prosty tekstowy format), MD2 (Quake 2) i MD3 (Quake 3).

Cytuj
A czy formty modeli np. *.md2 i tym potobne także mają zapisane informacje o narmalnych jednostkowych, bo animacje szkieletową posiadają
Cytuj
- Md2 nie posiada normalnych
MD2 przechowuje normalne, jednak przechowuje je skompresowane i z niską jakością.


btw. Normalna chyba ma z definicji długość jeden, więc mówienie o normalizowaniu normalnych i o normalnych jednostkowych brzmi trochę dziwnie. :)

12906
Design / Odp: Dyskusja o robieniu engine'ow
« dnia: Styczeń 26, 2006, 03:52:12 »
Cytuj
Należy mieć jaśnie określony cel, a nie rozważać czym jest tworzenie gry.
A tym jasno określonym celem może być stworzenie silnika. :)

12907
Design / Odp: Warrior
« dnia: Styczeń 26, 2006, 03:49:40 »
Cytuj
Jest to onlineowe fpp akcji.
Cytuj
Gra powinna być szermierką, tańcem bloków, cięć i dźgnięć.
Dlatego koncentruje się ona wyłącznie na refleksie gracza oraz zdolnościach taktycznych.
Odnoszę wrażenie, że zapomniałeś, że istnieje coś takiego, jak PING.

Cytuj
Prawde muwiac chcialbym zebrać grupe osób zdolnych do stworzenia czegoś takiego,
choc niestety jestem kolejnym: "nieumiem tworzyc gier, zrubcie ja" :/ . No ale może sie jacyś ludzie zlituja.
Nie zlitują się. :P

12908
OpenGL / Odp: scianki zawsze rownolegle do ekranu
« dnia: Styczeń 26, 2006, 03:45:44 »
Cytuj
A ja to jest z Point Sprites w DirectX? Czy dobrze kojarzę, że działają one na każdym sprzęcie lepszym niż generacji GeForce 2?
O ile pamiętam, to działają od GeForce 2, ale poniżej GeForce 4 mają ograniczenie wielkości do maksimum 64x64 pikseli.

12909
OpenGL / Odp: scianki zawsze rownolegle do ekranu
« dnia: Styczeń 25, 2006, 17:03:34 »
Cytuj
Mógłby ktoś zapodać jakieś słowo-klucz?
Point sprite i point parameters. Pierwsze pozwala oteksturować przerośnięte piksele, a drugie pozwala zachowywać się im tak, jakby działała na nie perspektywa. :) Zaletą takiego rozwiązania jest to, że na każdą cząsteczkę przypada pojedynczy wierzchołek. Wadą natomiast jest to, że cząsteczki nie mogą się obracać.

12910
Matematyka i fizyka / Odp: Konwersja między układami współrzędnych
« dnia: Styczeń 25, 2006, 00:12:34 »
Cytuj
Gorzej, kiedy przychodzi konwertować również inne informacje geometryczne, jak kąty Eulera oraz (szczególnie) kwaterniony do opisywania obrotów.
Możesz zkonwertować kąty/kwaterion na macierz przekształcenia 3x3, pozamieniać/zanegować wiersze albo kolumny i przekształcić spowrotem na kąty/kwaterion już w swoim układzie. Pozatym, nie jestem pewien, ale być może zamienianie składowych i negowanie ich zadziała także z kwaterionami (składowej 'w' nie ruszasz). :)

12911
C++ / Odp: Tiny Vector Matrix library i operator =
« dnia: Styczeń 24, 2006, 22:56:49 »
Cytuj
A = 1, 0, 0, 0,
    0, 1, 0, 0,
    0, 0, 1, 0,
    0, 0, 0, 1;
Jeżeli to ma być macierz, to niech chociaż poszczególne wiersze będą objęte czymkolwiek dla czytelności i wyłapywania błędów. :)

Cytuj
btw: KrzysieK, widzę sporą zmianę w podejściu, co się stało?
Jeżeli chodzi Ci o OOP, to źle widzisz. :) Podejście się nie zmieniło - OOP tam, gdzie to pomaga, funkcje tam, gdzie OOP bardziej przeszkadza, niż pomaga. Matma jest akurat takim miejscem, gdzie używanie obiektów pomaga zdecydowanie. :) Swoją drogą, stopniowo coraz bardziej się przyzwyczajam do pakowania różnych funkcji w klasy, więc obiektów powoli u mnie przybywa (ale zakręconego dziedziczenia i hermetyzacji jeszcze w moim kodzie nie uświadczysz). :)

12912
C++ / Odp: Tiny Vector Matrix library i operator =
« dnia: Styczeń 24, 2006, 20:59:44 »
Cytuj
KrzysieK: nie do końca masz rację. W przypadku bibliotek matematycznych w C++ (a w ogólności w przypadku bibliotek szablonów wyrażeń (expression templates)) tak właśnie przyjęło się używać przecinka.
Być może, ale moim zdaniem używanie operatora o tak niskim priorytecie może przy odrobinie nieuwagi sprawić trochę kłopotów.

Głównym zarzutem z mojej strony jest to, że, podczas gdy dla człowieka ten zapis rozumiany jest tak:
v = (1, 2, 3);to kompilator tak naprawdę interpretuje to jako:
( ( (v = 1), 2 ), 3);więc część często używanych konstrukcji nie zadziała, albo zadziała źle (na przykład a=b=1,2,3). Dodatkowo programista nie może sobie poprawić czytelności dodając nawiasy jak w pierwszym przykładzie.

Na szczęście dotychczas nie potrzebowałem wektorów więcej niż 4-wymiarowych, dla których konstruktory sprawują się wystarczająco dobrze (v=vec4(x,y,z,w)). :)

12913
Projekty rozpoczęte / Odp: Programy ułatwiające życie
« dnia: Styczeń 24, 2006, 19:11:18 »
Cytuj
tu wcale nie chodziło o zrobienie linkowiska do wszystkich kalkulatorów w necie ;-)
Wiem, chodziło o przydatne narzędzia, dlatego dałem link do EvalDraw, który potrafi sporo więcej niż kalkulator. Jeżeli chodzi o proste obliczenia, to zazwyczaj używam do tego zwykłego kalkulatora. :)

Cytuj
Program zapisuje dane znajdujące się pomiędzy tokenami: @START nazwa_pliku@ i @END@
Dzięki temu jeśli np. na scenie jest kilka modeli to każdy z nich można zapisać do oddzielnego pliku.
Już wcześniej podawałeś do tego linka i bardzo mi się przydało Proponuję tylko zrobić wersję, która nie wymaga oznaczeń START i END do działania i po prostu zrzuca zawartość listenera do pliku (np. o nazwie podanej jako parametr programu). W ten sposób można wykorzystać ten program z gotowymi skryptami dostępnymi na sieci (np. eksport do MD5). Oczywiście dysponując źródłem łatwo zrobić taką poprawkę samemu (np. ja musiałem), ale taki sposób działania, moim zdaniem, ma szersze zastosowanie (nie każdy pisze skrypty do eksportu, zwłaszcza do pokręconych formatów, jak MD5). :)

12914
C++ / Odp: Tiny Vector Matrix library i operator =
« dnia: Styczeń 24, 2006, 16:35:33 »
Przecinek jako operator ma ustalone działanie - oblicza oba wyrażenia i zwraca wartość drugiego. Ja na przykład czasem z tego korzystam dla czytelności:
if(a<0) a=0, too_small=true;
if(a>1) a=1, too_big=true;
Oszczędza się parę klamerek. :)

12915
C++ / Odp: Tiny Vector Matrix library i operator =
« dnia: Styczeń 24, 2006, 16:10:17 »
struct vec {
  float data[3];
  int index;

  vec() : index(0) {}

  vec &operator =(float f) { data[index++]=f; return *this; }
  vec &operator ,(float f) { data[index++]=f; return *this; }
};


vec v;
v = 1.0f, 2.0f, 3.0f;
Nie testowałem, ale powinno działać. Tak, czy inaczej, przykładem dobrego stylu programowania toto nie jest. :P

Strony: 1 ... 857 858 859 860 [861] 862 863 864 865