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 - Reg

Strony: [1] 2 3 4 5 ... 242
1
OpenGL / Odp: Deffered shading - różne metody oświetlenia / materiały
« dnia: Sierpień 14, 2017, 21:32:53 »
Nie wstawi ifa do kodu shadera. Używanie stencila będzie szybsze, niż pisanie testu w pixel shaderze, bo stencil test, tak jak z-test (kiedy to możliwe) jest wykonywany przed pixel shaderem i dla piksela, który testów nie przechodzi, pixel shader w ogóle się nie uruchomi. Karty graficzne mają specjalny sprzęt do obsługi tego. Nie są aż tak elastyczne, żeby wszystko wsadzać do kodu shadera :)

2
Szkółka / Odp: Płynę przejścia między dwoma kolorami
« dnia: Lipiec 16, 2017, 20:58:01 »
Brzydkie przejścia między kolorami powstają też, jeśli Twoje obliczenia nie są gamma-correct (chociaż to jest dość subtelna różnica). Radzę poczytać o tym, czym jest korekcja gamma i zaimplementować to w swoim kodzie prawidłowo.

W skrócie: Komponenty RGB wszelkich kolorów zarówno wejściowych (dobranych przez artystę, odczytanych z pliku graficznego), jak i wyjściowych (wyświetlanych na ekranie) nie są w przestrzeni "liniowej" w sensie intensywności światła, tylko w funkcji pow(x, 1/2.2) - podniesione do potęgi. Dlatego przesyłając kolor z wejścia prosto na wyjście nie trzeba o tym myśleć, ale wykonując jakiekolwiek operacje na kolorach (choćby interpolację do wykonania gradientu albo alfa-blending do przezroczystości) dla poprawnego i ładniejszego efektu należy wprowadzić korekcję gamma, a więc:

- Po odczytaniu RGB wejściowego zrobić na każdym komponencie: c = pow(c, 2.2)
(Lub, jeśli programujesz w DirectX/OpenGL/Vulkan, po prostu użyć tekstury w formacie "SRGB".)
- Na tych wartościach wykonać obliczenia.
- Przed zapisaniem RGB wyjściowego zrobić: c = pow(c, 1.0/2.2)
(Lub, jeśli programujesz w DirectX/OpenGL/Vulkan, po prostu użyć tekstury w formacie "SRGB".)

Przykładowy obrazek pokazujący tę różnicę zawiera np. ta strona:
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-apply-gamma-correction-to-a-gradient

3
DirectX / Odp: D3D_FEATURE_LEVEL_9_3?
« dnia: Lipiec 16, 2017, 19:34:07 »
Nie :) Z mojego doświadczenia wynika, że większość współczesnych gier jednak wymaga obsługi Direct3D 11 i odpowiedniego sprzętu, bo większość graczy PC już taki sprzęt ma (co widać na Steam Hardware Survey http://store.steampowered.com/hwsurvey/ wykres drugi). Na wymaganie DirectX 12 albo Vulkan może jeszcze nie czas (a może już?), ale prościej jest napisać renderer mając wyższe bazowe wymagania.

Chyba, że Twoja gra ma w miarę prostą grafikę i jest np. grą sieciową przeznaczoną do jakiś dawno nieaktualizowanych sprzętowo ani programowo kafejek internetowych w Chinach/Rosji/Brazylii. Wtedy może jest sens napisać ścieżkę DirectX 11 Feature Level 9 albo nawet czyste DirectX 9 (żeby działało na Windows XP).

4
Szkółka / Odp: [OpenGL] Wyświetlenie fontów w interkach 4kb
« dnia: Czerwiec 21, 2017, 23:22:05 »
Może dałoby się użyć czcionek systemowych za pomocą funkcji WinAPI? Wtedy nie trzeba pakować do intra żadnych danych, jedynie trochę kodu. CreateFont, HDC itp...

5
Programowanie grafiki / Odp: Program do generowania normal map
« dnia: Luty 06, 2017, 23:10:24 »
Tu nie można mówić o palecie barw, bo w kolorach pikseli na komponentach RGB są po prostu zakodowane wektory. Wektor normalny to (x, y, z) w zakresie -1.0...1.0 wskazujący kierunek prostopadły do powierzchni w danym punkcie, więc się ten zakres upycha do 0.0...1.0 (albo, jeśli przyjmiemy kodowanie jako liczba całkowita 1 bajt, to 0...255), tak że -1.0 to jest komponent koloru 0, 0.0 to jest 0.5 (albo 128), a +1 to jest 1.0 (albo 255).

Dlatego na obrazku powyżej, powierzchnia płaska, która ma wektor zwrócony w kierunku widza (0, 0, 1) ma kolor jasnoniebieski - (0.5, 0.5, 1.0) albo (128, 128, 255) / #8080FF.

6
Szkółka / Odp: c++ Struct , zapis i odczyt z pliku
« dnia: Styczeń 29, 2017, 14:38:05 »
Typy proste - tzw. POD - Plain Old Data, czyli np. bool, char, int, float, a także ich tablice można zapisywać i odczytywać tak, jak próbujesz, czyli jako surowe dane binarne. Wskaźników oraz obiektów różnych klas, takich jak std::vector czy std::string, ogólnie nie należy w ten sposób traktować.

Tym, jaki rozmiar mają poszczególne typy, czy zapis liczb w pamięci jest big-endian, czyli little-endian oraz jakie są zasady wyrównania typów, należy się przejmować przy przenoszeniu danych między programami skompilowanymi na różne architektury (kompilator Visual Studio kontra GCC, Windows kontra Linux, 32-bit kontra 64-bit, procesory x86 kontra ARM itd.) Jeżeli Twój program ma działać tylko na platformie jednego typu, to nie powinno być problemu.

Natomiast Twój konkretny problem najprościej byłoby rozwiązać używając w strukturze tablicy znaków zakończonej zerem, zamiast std::string.

struct st_profil
{
        nazwa[5][256];
        int ilosc;
};

st_profil PROFIL;

Wtedy można taką strukturę zapisać i odczytać z pliku tak, jak chciałeś. Są jednak z tym rozwiązaniem dodatkowe problemy:

- Operowanie na takich łańcuchach jest mniej wygodne, niż z użyciem std::string. Trzeba używać funkcji typu strcpy, strcat, strlen itd.
- Maksymalna długość łańcucha jest ograniczona i z góry określona w kodzie. Trzeba uważać, żeby jej nie przekroczyć.
- Łańcuch zapisany w pliku zawsze zajmuje tyle bajtów, ile wynosi jego maksymalny rozmiar i miejsce na niewykorzystane znaki marnuje się.

7
Dyskusje / Odp: Jak pracują freelancerzy?
« dnia: Styczeń 20, 2017, 23:56:16 »
Z tego co piszesz, to może faktycznie masz w domu wyjątkowo ciężkie warunki i przydałoby się wynająć jakieś miejsce do pracy. Chociaż to nie rozwiąże problemu, jak się czujesz i jak dobrze wypoczywasz poza godzinami pracy. Dlatego ja bym na Twoim miejscu chyba raczej poszukał mieszkania albo pokoju do wynajęcia i wyprowadził się od rodziny, jak tylko zacząłbym zarabiać na tyle, że byłoby mnie na to stać.

Z drugiej strony, może powinieneś się do tego wszystkiego przyzwyczaić? Wielu ludzi ma tak, że w pracy jest open space, w kubiku obok siedzi jakiś manager i ciągle głośno gada przez telefon, panuje ogólny hałas i zamieszanie i trzeba w tych warunkach pracować. Słuchawki na uszach pomagają w tym. W domu natomiast dzieci płaczą i nie dają spać, teściowa zrzędzi, piętrzą się obowiązki domowe... To się nazywa dorosłość :)

8
Dyskusje / Odp: Jak pracują freelancerzy?
« dnia: Styczeń 20, 2017, 01:30:00 »
Piszesz:
Z tym że od czasu założenia firmy sytuacja mocno się zmieniła. Już nie mogę pracować w domu, nie ma tu warunków.
Ale nie podajesz szczegółów, w czym jest problem. Młodszy brat hałasuje? Rodzice każą Ci wyjść na dwór i nie siedzieć przy komputerze? Nie zdradzając szczegółów możesz liczyć tylko na ogólne rady typu:
znaj siebie.
(...)
Lepiej podjąć błędną decyzję, rozumiejąc konsekwencje, niż nie podjąć żadnej.
Ale takie możesz też przeczytać w każdej książce o "kołczingu i rozwoju osobistym" :)

Jeżeli natomiast dobrze rozumiem, że nic konkretnego Ci w tym domu nie przeszkadza, tylko po prostu nie możesz się zmobilizować, żeby usiąść i popracować, to pomyśl, czy to może nie jest kwestia pracy z domu, ale raczej ogólnie niechęci do tej pracy? Jeżeli tak, to myślę, że taki sam problem może wystąpić równie dobrze u kogoś pracującego w biurze jakiejś firmy - chociaż nie ma wtedy tyle rozpraszaczy, to będzie siedział cały dzień na Facebooku czy Kwejku i robił wszystko, żeby tylko nie wziąć się za swoje zadanie. Tak samo niejeden uczeń gotowy jest nawet posprzątać swój pokój, byle tylko dłużej nie zabrać się za naukę :) To się nazywa prokrastynacja - możesz poszukać informacji o tym, jak z nią walczyć. Natomiast wcale nie musi to być spowodowane faktem, że jesteś freelancerem i pracujesz z domu.

9
Projektowanie kodu / Odp: kompozycja, agregacja ich odpowiednik w c++
« dnia: Styczeń 20, 2017, 01:12:45 »
Ja bym dodał jeszcze przypadek inteligentnego wskaźnika - np. kiedy Klasa2 zawiera std::unique_ptr<Klasa1>. Co to jest wtedy?

Moim zdaniem kluczowe jest tu określenie własności.

Jeśli obiekt klasy Klasa2 jest właścicielem obiektu klasy Klasa1 - co można poznać przede wszystkim po tym, że on go tworzy oraz usuwa z pamięci - to mamy tu do czynienia z agregacją lub kompozycją, obojętne czy w C++ zrealizujemy to za pomocą wskaźnika inteligentnego, czy zwykłego Klasa1* z alokacją przez operator new i zwalnianiem przez operator delete.

Natomiast jeśli obiekt Klasa2 przechowuje wskaźnik lub referencję do obiektu Klasa1, ale stworzył i zwolni go zupełnie inny obiekt (trzeba wtedy świadomie kontrolować jego czas życia, żeby przypadkiem nie odwołać się do już zwolnionej pamięci), wtedy mamy do czynienia z asocjacją (bez strzałek).

10
Grafika 2D / Odp: Mierzenie złożoności obrazu.
« dnia: Grudzień 16, 2016, 19:28:28 »
Przydałoby się lepiej zdefiniować tę złożoność. Możesz pokazać przykłady takich obrazów? Chodzi na przykład o to, czy liczy się bardziej ilość tych krzywych, ich wielkość, czy może różnorodność kolorów?

Na początek możesz zastosować filtr wykrywający krawędzie. Wtedy zliczając wynikowe piksele możesz obliczyć, jak dużo jest na obrazie zmian koloru w stosunku do plam o jednolitym kolorze.

11
Programowanie grafiki / Odp: DebugDraw
« dnia: Grudzień 11, 2016, 21:06:02 »
Moim zdaniem nie ma większego sensu poddawanie tych debugowych informacji oświetleniu. Pytanie, czy powinny podlegać Z-testowi, czy rysować się niezależnie od zasłaniania z geometrią nieprzezroczystą? A może dać to do wyboru?

Zobacz, jak to ma zrobione Unity: https://docs.unity3d.com/ScriptReference/Debug.html Klasa Debug ma metody DrawLine, DrawRay i w nich możesz podać kolor linii oraz flagę, czy ma być włączony Z-test.

12
Dyskusje / Odp: Brak motywacji (aka jak znalezc prace?)
« dnia: Listopad 10, 2016, 13:02:38 »
Prowadzenie przez lata forum dyskusyjnego na temat modowania gier - jak najbardziej warto wpisać do CV.

Umiejętności personalnych typu dogadywanie się z innymi - ja bym nie wpisywał. To są takie nic nie znaczące hasła.

Na temat Twojego nowego CV w PDF:

Adresu pocztowego nie musisz podawać, bo po co on komu? Ktoś, kto Cię rekrutuje, ma do Ciebie przyjść albo przysłać Ci tradycyjny list? Wystarczy miasto, choć to też ma znaczenie o tyle, o ile nie jesteś gotowy do relokacji. Tak to wcale nie musi być miejsca zamieszkania.

Podsumowanie na początku: Wyrzuć to zdanie "I love the zombies popculture, my favourite music is probably rap, disco and classic.". Informacje o zainteresowaniach pozazawodowych, jeżeli w ogóle umieszczać je w CV (ja tego nie robię), to nadają się gdzieś na sam koniec, a nie w tym kluczowym miejscu.

Podsumowanie na początku: Masz literówkę - "prefeer" pisze się przez jedno "e".

Education: Skoro reszta jest po angielsku, to też przetłumacz. Szkoła średnia to jest "high school".

"Proudest Projects" - to jakoś źle brzmi. To Ty jesteś dumny z tych projektów, a nie te projekty są dumne :) Napisz może lepiej "Major projects", albo "notable", albo "important", albo "biggest".

Formatowanie: Nie podoba mi się używanie indeksów górnych. Ta czcionka jest przez to dużo mniejsza, niż normalna. Napisz te rzeczy może lepiej w nawiasie, albo np. kolorem szarym.

Formatowanie: Adres portfolio nie jest linkiem :(

Sorry, że tak dużo uwag, ale to są drobiazgi. Tak ogólnie to CV bardzo mi się podoba.

13
Dyskusje / Odp: Brak motywacji (aka jak znalezc prace?)
« dnia: Listopad 09, 2016, 17:29:36 »
Współcześnie CV zwykle przesyła się w postaci elektronicznej, więc linki do projektów są jak najbardziej wskazane.

Natomiast większość firm żąda od kandydatów przysłania takiego tradycyjnego CV, dlatego warto:

- Zrobić go w postaci dokumentu, np. w formacie PDF.
- Sformatować to w tradycyjny sposób - krótka forma, białe tło, nie za dużo grafiki.
- Wymienić tam też te Twoje najważniejsze projekty.

Portfolio tworzą zwykle artyści. Myślę, że programista piszący gry też może takie mieć, ale jednak nie polegałbym na nim, bo nie każda osoba będzie zainteresowana jego zobaczeniem.

Ja mam tradycyjne CV jako PDF na 2 strony, a "portfolio" stworzyłem sobie, też jako PDF, z dużą ilością grafiki - ale posługuję się nim bardzo rzadko.

14
Dyskusje / Odp: Brak motywacji (aka jak znalezc prace?)
« dnia: Listopad 07, 2016, 22:25:04 »
To zależy, jak dużo ich masz. CV powinno być nie za długie - myślę, że maksymalnie na dwie strony, chyba że chodzi o osobę bardzo doświadczoną. Dlatego warto wybrać te wpisy, które mają największe znaczenie, bo inne schodzą wtedy na dalszy plan. Kto pracował już w kilku firmach, ten wymienia, jakie projekty tam robił i jakich technologii używał, a nie pisze już o projektach robionych dla zabawy w domu albo w ramach studiów. Natomiast kto nie ma doświadczenia komercyjnego, ten takie projekty jak najbardziej może i powinien wpisać.

Czy wpisywać tylko adekwatne? Niekoniecznie, mogą być różne. Oczywiście jak ktoś aplikuje na programistę, to nie musi wpisywać, że należał do kościelnego chóru albo pracował w McDonalds (chyba, że to tłumaczy, co robił przez 2 lata między jedną pracą czy studiami a drugą), natomiast różnorodne projekty programistyczne warto wpisać, nie tylko związane z grami. Po prostu wybierz te, które są najważniejsze, największe, najbardziej dokończone i potrafisz coś o nich opowiedzieć albo pokazać.

15
Dyskusje / Odp: Brak motywacji (aka jak znalezc prace?)
« dnia: Listopad 06, 2016, 21:05:20 »
Myślę, że kluczowe jest tu - niestety - miejsce zamieszkania. Nie wiem, jakim dokładnie miastem jest Przemyśl, ale mam wrażenie, że większość polskiego gamedevu dzieje się w Warszawie, ewentualnie w kilku innych największych miastach naszego kraju. Tak samo z resztą jest ze wszystkim innym - jakąkolwiek pracę, np. jako programista czegokolwiek (jakieś aplikacje mobilne, strony WWW, Java) znajdziesz pewnie wszędzie, ale jak chcesz robić coś bardzo specyficznego (jak gamedev), innowacyjnego, pracować w dużej firmie, dobrze zarobić, to taka praca jest raczej w większych miastach.

Podobnie z wysokością zarobków - statystyki pokazują, że Warszawa znacznie odstaje tu na plus względem innych miast. Czy to znaczy, że tam mieszkają sami najlepsi programiści? Nie. To znaczy raczej, że na wysokość zarobków (a także liczbę firm, ofert pracy itp.) bardziej wpływa to, czy zdecydujesz się na przeprowadzkę, niż to, czy lepiej umiesz C++ albo OpenGL. Tak samo jest z wyjazdem za granicę.

Ja wychowałem się w Częstochowie, która jest dużo większa od Przemyśla i nawet nie próbowałem szukać tam pracy - po studiach od razu wyjechałem do Warszawy :)

Napisz jeszcze, w jaki sposób próbowałeś szukać tej pracy?

Strony: [1] 2 3 4 5 ... 242