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

Strony: [1] 2 3 4 5 ... 15
1
Programowanie grafiki / Odp: OpenGL vs DirectX
« dnia: Styczeń 12, 2018, 23:42:50 »
Cytuj
Za Vulkanem przemawia to, że będę zaczynał od początku nie znając ani OpennGL ani DirectX, a grafika jest po prostu niesamowita.
A ja się wciąz zastanawiałem co ma piernik do wiatraka i na cholere komu uczyć się Vulkana, chcąc zrobić grę w Unreal Engine.

2
Szkółka / Odp: [C++] Export danych mesha 3d do tablicy
« dnia: Styczeń 02, 2018, 00:48:43 »
Wydawało mi się, że w takich demkach chodzi o to, że scene się generuje i animuje programowo. Takie "includowanie scen" brzmi jak oszukiwanie.

3
Szkółka / Odp: [C++] Export danych mesha 3d do tablicy
« dnia: Styczeń 01, 2018, 18:05:02 »
Chcesz z edytora grafiki 3D wyeksportowac plik źródłowy, zawierający tablicę w C++? Po co?.

Jeśli jednak chodzi Ci o ładowanie modeli 3D z pliku, to mam 4 propozycje:
  • .obj - format tekstowy. Bardzo przyjemny do implementacji własnego parsera, bo można po prostu podejrzeć dane chociażby w notatniku. Upośledzony jednak, jeśli chodzi o późniejsze zastosowanie - dużo zajmuje, wolno się ładuje i jeśli dobrze pamiętam, to raczej nie zapisuje się w tym wielu informacji o scenie.
  • Assimp - biblioteka do ładowania modeli z przeróżnych formatów (osobiście używam .dae - Autodesk Collada). Tym już załadujesz prawie wszystko :P Od wierzchołków, normalnych, tangesów, po animacje szkieletowe, światła, kamery.
  • Własny format plików - można napisać plugin do np 3DS Max'a, który wygeneruje Ci plik z tym, czego potrzebujesz w takiej formie, jakiej chcesz. Na upartego nawet plik .h z tablicą wierzchołków i texcoordów. Zdecydowanie będzie to najlepsza opcja, ale wymaga trochę więcej pracy.
  • .3ds - binarny format od 3DS Max'a. Jeśli .obj Cię nie przekonuje, a nie chcesz korzystać z gotowych rozwiązań, jak Assimp, to mogę polecić .3ds. Napisałem kiedyś tego loader i w sumie to była fajna zabawa ;) Taka trochę łamigłówka.

4
Projekty rozpoczęte / Odp: Szukam programisty do tworzenia gry.
« dnia: Lipiec 24, 2017, 18:01:50 »
Cytuj
reszta programowania powinna być prosta.
Lubie, kiedy grafik mówi mi, co będzie proste do zaprogramowania ^.^

5
SDL / Odp: SDL2 Obliczenie proporcji tekstury do rozdzielczości okna
« dnia: Lipiec 12, 2017, 18:12:24 »
Jeśli chodzi o problem, jak na obrazkach, które wysłałeś, to tak na szybko patrząc, to:
if (x == -1) // -1 oznacza że chcę by x bądź y znajdował się na środku ekranu
        x = intrfc->clientArea.w / 2 - p_range.w / 2;
if (y == -1)
        y = intrfc->clientArea.h / 2 - p_range.h / 2;
intrfc->clientArea.w i intrfc->clientArea.h, to rozmiar ekranu w pikselach, tak? Natomiast p_range.w i p_range.h, to rozmiar obiektu w pikselach, ale dla natywnej rozdzielczości, tak? Jeśli tak, to rozmiar obiektu musisz oczywiście wyskalować i będzie w porządku.

Cytuj
Obie metody poprawnie skalują, jednak większy potencjał zauważyłem w skalowaniu tekstur po przez obliczanie ich nowych x,y,w,h, a to dlatego iż wykrywanie eventów jest na podstawie tych właśnie współrzędnych.
Według mnie łatwiej by było zrobić jednak SDL_RenderSetScale() i programować dla natywnej rozdzielczości, a kiedy potrzebujesz przejść z przestrzeni natywnego ekranu do przestrzeni realnego ekranu, lub odwrotnie, to wystarczy użyć SDL_RenderGetScale() i wymnożyć wartości przez scaleX, scaleY, lub 1/scaleX, 1/scaleY.

Przykładowo współrzędne myszki musiałbyś przenieść z przestrzeni ekranu realnego do natywnego, co by wyglądało jakoś tak:
float scaleX, scaleY;
SDL_RenderGetScale(renderer, &scaleX, &scaleY);
int newMouseX = mouseX / scaleX;
int newMouseY = mouseY / scaleY;

Zawsze, zanim coś na piszesz, to zastanów się, czy to, co chcesz zrobić nie zablokuje Cię w przyszłości i staraj się myśleć jak najbardziej w przód. O ile na początku wszystko idzie gładko, to przy źle zaprojektowanym kodzie im dalej zajdziesz, tym bardziej będziesz musiał kombinować, albo przerabiać podstawy. Bez doświadczenia oczywiście skutek projektowania kodu będzie mierny, ale IMHO warto sobie wyrobić taki nawyt i trenować ;)

Życzę wytrwałości :D

6
SDL / Odp: SDL2 Obliczenie proporcji spritów do rozdzielczości okna
« dnia: Lipiec 11, 2017, 18:14:23 »
Twój kod byłby tu najbardziej wskazany.

Myślę, że próbówałeś zrobić to dobrze, ale gdzieś się walnąłeś.
SDL wymnaża koordynaty przez wartości ustawione w SDL_RenderSetScale(), więc jeśli programujesz pod rozdzielczość 1920x1080, a rozdzielczość okna to 800x600, to musisz koordynaty "zmniejszać" tak, aby wartość na osi x równa 1920 była równa 800 pikseli, a wartość na osi y równa 1080 była równa 600 pikseli.

Robisz więc SDL_RenderSetScale(renderer, 800/1920.0f, 600/1080f) i kodzisz tak, jakbyś miał ustawioną rozdzielczość 1920x1080.

Tyle wywnioskowałem z dokumentacji. Funkcji nigdy nie używałem, ale mam nadzieje, że pomoglem :)

7
Oferuję / Odp: Programista Python/Django / chętny na staż w Unity3D
« dnia: Lipiec 06, 2017, 20:22:41 »
Cytuj
A skoro mówicie tak o tym wysyłaniu CV i płacy minimalnej... naprawdę znacie jakąś firmę, w której zatrudnią na stanowisko programisty Unity3d osobę, która nie zna Unity3d i na co dzień nie pisze w C# ?
Tak. Elementarna wiedza, którą zdobywa się po przeczytaniu/obejrzeniu jednego tutorialu to dla mnie wciąż "nie zna się na Unity"xd

EDIT: W sumie to źle przeczytałem. Nie znam firmy, które takie osoby zatrudnią. Znam firmy, które takie osoby zatrudniły.

8
Oferuję / Odp: Programista Python/Django / chętny na staż w Unity3D
« dnia: Lipiec 05, 2017, 21:03:49 »
Cytuj
Porozsyłaj CV. Da się dostać na staż, czy praktyki bez żadnego doświadczenia, czy umiejętności.
Czy też wypłaty...
Dają minimalną, więc w sumie masz rację :P

Zawsze warto wysyłać CV. Okazuje się, że nawet, jeśli ktoś szuka eksperta, to może znaleźć Ciebie :P

9
Oferuję / Odp: Programista Python/Django / chętny na staż w Unity3D
« dnia: Lipiec 03, 2017, 21:12:16 »
Porozsyłaj CV. Da się dostać na staż, czy praktyki bez żadnego doświadczenia, czy umiejętności.

10
Szkółka / Odp: [OpenGL] Animacja 3d
« dnia: Czerwiec 29, 2017, 11:18:23 »
Jeśli chciałbyś coś niższego poziomu, niż Irrlicht, to Assimp jest bardzo przyjazny. Oczywiście w tym wypadku rendering jest na Twojej głowie, ale przecież to sama frajda :)

11
Szkółka / Odp: [C++] Nazewnictwo zmiennych
« dnia: Czerwiec 15, 2017, 19:30:46 »
Notacja węgierska według mnie to okropieństwo. Chociaż swego czasu uważałem ją za bardzo praktyczną (bardzo krótki okres mojego życia :D).

Ja przez cały czas próbowałem różnych styli pisania i od niedawna wydaje mi się, że się ustaliłem:
enum EColor {
eColorRed,
eColorGreen
};
Dodaję "Color" przy każdym polu ze względu na to, że to są jednak nazwy globalne (tak, wiem, że istnieje enum class) i staram się zachować ich unikalność. Troche dłuższa nazwa mi w tym wypadku nie przeszkadza.
class MyClass
{
MyClass(float firstParameter, int secondParameter);
float mMyFloat;
int mMyInt;
float GetFloat();
void SetFloat(float floatParameter);
};
Do pól klasy dodaje przedrostek "m" (też to tłumacze, jako "member" :D). To pozwala mi mieć zarówno pola, jak i metody pisane z dużej litery, nie licząc tego przedrostka. Nie podoba mi się pisowniaCamelCase w takich miejscach i używam jej do parametrów, zmiennych tymczasowych, etc.

Makra, stałe i podobne standardowo piszę duzymi literami, lub KazdyCzlonZDuzejLitery, w przypadku niektorych makr, jak np:
#define CastToMyClass(a) ((MyClass)a)

12
Szkółka / Odp: poruszenie sprita z punktu A do B
« dnia: Grudzień 18, 2016, 02:39:36 »
Cytuj
Podejrzewam, że posiadasz pętlę czasu rzeczywistego, która ogranicza Ci jakoś prędkość programu do np. 60 klatek na sekundę?
Ta, bo jak ktoś zaczyna naukę, to pierwsze co robi, to zaczyna od pętli czasu rzeczywistego, liczenia fps'ów i ich ograniczania. Ludzie, trzymajcie mnie.

Cytuj
float obj_target_dist = delta.magnitude(); // Math.sqrt(delta.x * delta.x + delta.y * delta.y) ... obliczasz odległość obiektu od celu i przechowujesz tę wartość w obiekcie
   
    delta.normalize(); // float max = Math.max(delta.x, delta.y); delta.x /= max; delta.y /= max; ... normalizujesz wektor delta, będziesz wiedział ile razy na 1 jednostkę x musisz się przemieścić na osi y (albo na odwrót, zależy od tego czy delta.x jest większe, czy delta.y)

    float delta_dist = delta.magnitude(); // obliczasz jaką odległość pokonasz po jednym przesunięciu obiektu przez wektor delta (już znormalizowany)

    float translation = player.speed * Time.deltaTime; // mając prędkość obiektu obliczasz jaką odległość pokona w jednej klatce, Time.deltaTime dla 60 klatek = ~16ms

    float ratio = translation / delta_dist; // obliczasz ile razy zmieści musisz przesunąć obiekt o znormalizowany wektor aby przenieść o dystans jaki pokona w jednej klatce
    Vec2D velocity = ratio * delta; // ostateczny wektor prędkości obiektu
"Kto sam nie umie, ten uczy", czy jakoś tak.


13
OpenGL / Odp: Speech Bubble
« dnia: Listopad 25, 2016, 23:02:21 »
http://www.angelcode.com/products/bmfont/

Program generuje texturki z czcionką i zapisuje do własnego formatu wraz z szerokościami znaków.
Bardzo proste i znakomicie udokumentowane.

14
Oferuję / Odp: Scenariusze do wszystkiego i na każdy temat
« dnia: Październik 29, 2016, 00:06:05 »
Nie odróżniasz hejtu od krytyki.
Nikt nie kazał autorce rzucić tego co robi, ani nie powiedział, że jest w tym kiepska.

15
Szkółka / Odp: Procesory arm (stm32)
« dnia: Październik 27, 2016, 00:42:57 »
PlatformIO jest trochę dziwaczne. Nie rozumiem wymogu wybrania płytki.

btw, korzystając z okazji, może ktoś wyjaśni mi o co chodzi z cmsis, opencm3, spl ?
To są po prostu biblioteki wspomagające kod i przy okazji zapewniające przenośność na inne cortexy, czy chodzi o coś więcej ?

EDIT
Ktoś wie, jak pobrać najnowsze TrueStudio ? Pisze, że za darmo, jest przycisk, każą się zarejestrować i nic. Dostałem pakiet kursów i instrukcję instalacji, ale nawet nie mam czego instalować :(

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