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

Strony: [1] 2 3 4 5 ... 8
1
Szkółka / Odp: [C++] Export danych mesha 3d do tablicy
« dnia: Styczeń 02, 2018, 09:36:17 »
Obydwa podejścia są dobre.

2
Szkółka / Odp: [C++] Export danych mesha 3d do tablicy
« dnia: Styczeń 01, 2018, 23:17:26 »
Dzięki za propozycje. Potrzebuje dane mesha mieć w postaci tablicy; idealnie w postaci pliku .h do dołączenia do kodu. Potrzebuje mieć to w takiej postaci, ponieważ robię rozpoznanie i przymiarki do napisania demoscenowego intra 64 kb.

3
Szkółka / [C++] Export danych mesha 3d do tablicy
« dnia: Styczeń 01, 2018, 13:51:05 »
Cześć

Znacie może jakieś nadrzędzie (plugin do softu 3d) umożliwiające wyeksportowanie i zapisanie danych mesha 3d do tablicy C++, którą następnie można zainkludować do kodu? Interesuje mnie zapisywanie do tablicy współrzędnych wierzchołków oraz koordynatów tekstury obiektu. Może istnieje jakiś konwerter?

Pozdrawiam

4
Projekty rozpoczęte / Odp: [Unity][PC] Project Car tune
« dnia: Grudzień 24, 2017, 12:32:09 »
Skąd można ściągnąć jakąś wersję testową gry? Golfik czadowy.

5
OpenGL / Odp: [OpenGL] TV noise - animacja
« dnia: Październik 14, 2017, 01:18:36 »
@JasonVoorhees: Super sposób, bardzo prosty w realizacji i działa bardzo ładnie. W funkcji rysującej quada ze zbindowaną noisową teksturą dodałem do glTexCoord2f losowe generowanie jak poniżej:

glBegin(GL_QUADS);
glTexCoord2f(0.0 + rand()%400, 0.0 + rand()%400); glVertex3f(-15.0, -15.0, 0.0);
glTexCoord2f(0.0 + rand()%400, 1.0 + rand()%400); glVertex3f(-15.0, 15.0, 0.0);
glTexCoord2f(1.0 + rand()%400, 1.0 + rand()%400); glVertex3f(15.0, 15.0, 0.0);
glTexCoord2f(1.0 + rand()%400, 0.0 + rand()%400); glVertex3f(15.0, -15.0, 0.0);
glEnd();

Wątek do zamknięcia.

6
Szkółka / Odp: [OpenGL] Przejście pomiędzye efektami - błąd
« dnia: Październik 08, 2017, 23:28:02 »
Dzięki, sprawdzę oczywiście debuggerem:)

7
Szkółka / Odp: [OpenGL] Przejście pomiędzye efektami - błąd
« dnia: Październik 08, 2017, 22:33:13 »
Proszę bardzo:

int DrawGLScene(GLvoid)
{
int rowNumber = Music_GetPosition();

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
        ...
        tu jest dalsza część kodu





8
Szkółka / Odp: Delta time
« dnia: Październik 08, 2017, 18:32:53 »
Dzięki Sarann.

9
Szkółka / Odp: [OpenGL] Przejście pomiędzye efektami - błąd
« dnia: Październik 08, 2017, 11:12:24 »
Wartość dla zmiennej  rowNumber jest przypisywana na samym początku funkcji Draw() i działa poprawnie, ponieważ jak wstawię wywołanie whiteFlash() wewnątrz warunku rysującego figurę to błysk pojawia się tak jak ma pojawiać w rytm uderzeń perkusji:

if ((rowNumber >= 0) && (rowNumber <=127))
{             
        drawFigure1(); 

if (rowNumber % 8 == 0)
{
whiteFlash(); 
}
}

czy tu:

if ((rowNumber >= 129) && (rowNumber <=256))
{
        drawFigure2();

if (rowNumber % 8 == 0)
{
whiteFlash(); 
}
}

10
Szkółka / [OpenGL] Przejście pomiędzye efektami - błąd
« dnia: Październik 08, 2017, 02:06:40 »
Cześć

Wyłącze jeden z wątków z jednego z moich postów do całkiem nowego wątku, ponieważ gdzieś zapodział się. Eksperymentuje obecnie z synchronizacją prostych efektów z muzyką. Muzyka jest napisana w postaci modułu trackerowego. API playera muzyki zwraca wiersz patternu, co można wykorzystać do synchronizacji. W patternie jest 64 wiersze (numerowane od 0 do 63). Przejście pomiędzy jednym efektem a drugim ma odbyć się w postaci białego błysku. Kod rysujący figury w zależności od tego jaki wiersz modułu muzycznego jest grany przedstawia się następująco:

if ((rowNumber >= 0) && (rowNumber <=127))
{               
        drawFigure1(); 
}

if (rowNumber == 128)
        whiteFlash();                                                           

if ((rowNumber >= 129) && (rowNumber <=256))
{
        drawFigure2();                         
}

Gdy odgrywany jest 128 wiersz ma być biały błysk pomiędzy jednym efektem a drugim, a niestety tego białego błysku nie ma. Kod dotyczący białego błysku działa na 100% poprawnie, ponieważ jak się wywoła biały błysk w czasie trwania jakiegoś efektu to jest ładnie widoczny. Co może być przyczyną tego, że biały błysk nie jest widoczny pomiędzy jednym a drugim efektem? Oto poniżej kod odpowiedzialny za biały błysk:

void whiteFlash()
{
        glLoadIdentity();                                                                       
        glTranslatef (0.0f, 0.0f, -5.0f);

        glPolygonMode(GL_FRONT, GL_FILL);
        glPolygonMode(GL_BACK, GL_FILL);
       
        glDisable(GL_TEXTURE_2D);
        glEnable(GL_BLEND);
        glBlendFunc (GL_SRC_ALPHA, GL_ONE);     
       
        if (alpha <= 1)
        {
                glColor4f(1.0, 1.0, 1.0, alpha);

                glBegin(GL_QUADS);       
                glVertex3f(-1.0f, -1.0f, 1.0f);
                glVertex3f( 1.0f, -1.0f, 1.0f);
                glVertex3f( 1.0f, 1.0f, 1.0f);
                glVertex3f(-1.0f, 1.0f, 1.0f);
                glEnd();

                alpha += 0.025;
        }
        else
        {
                glColor4f(1.0, 1.0, 1.0, alpha_inv);

                glBegin(GL_QUADS);       
                        glVertex3f(-1.0f, -1.0f, 1.0f);
                        glVertex3f( 1.0f, -1.0f, 1.0f);
                        glVertex3f( 1.0f, 1.0f, 1.0f);
                        glVertex3f(-1.0f, 1.0f, 1.0f);
                glEnd();

                alpha_inv -= 0.025;
        }

        glDisable(GL_BLEND);
        glEnable(GL_TEXTURE_2D);       
       
        return;
}

Pozdrawiam

11
Szkółka / Odp: Delta time
« dnia: Październik 07, 2017, 21:01:45 »
@Sarann: Tak.

12
Szkółka / [OpenGL] Zmiana zgodnie z perkusją muzyki
« dnia: Październik 07, 2017, 20:59:02 »
Cześć

W demkach demoscenowych można zobaczyć efekty polegające na zmianie, która odbywa się zgodnie z rytmem uderzeń perkusji. Nie chodzi mi tu o zmianę efektu, która następuje jak jest uderzenie perkusji. Prosty przykład: na ekranie jest wyświetlany obracający się sześcian. Gdy jest uderzenie perkusji jest wyświetlany w oddaleniu, gdy jest kolejne uderzenie perkusji sześcian wyświetlany jest blisko, gdy jest kolejne uderzenie perkusji sześcian wyświetlany jest po prawej stronie ekranu, gdy jest kolejne uderzenie perkusji sześcian wyświetlany jest po prawej stronie ekranu. Ogólnie co kolejne uderzenie perkusji sześcian wyświetla jest w całkowicie innym miejscu niż poprzednio. Jakie najlepiej zastosować jest podejście, aby uzyskać taki efekt bez tworzenia dużej ilości kodu? Do głowy przyszło mi takie rozwiązanie: utworzyć sobie jakąś zmienną; gdy jest uderzenie perkusji zwiększać wartość tej zmiennej o 1. Dalej sprawdzać wartość tej zmiennej i jeżeli jest 1 to wyświetlać sześcian w jednym miejscu, gdy jest wartość zmiennej jest 2 to wyświetlać sześcian w innym miejscu ekranu itd.

Nie potrzebuje konkretnego kodu jako rozwiązania tylko nakierowania jakie rozwiązanie wybrać z punktu widzenia uniwersalności i reużycia kodu:) Zaznaczam, że nie używam shadarów tylko zwykły OpenGL. Na shadery przyjdzie wkrótce czas:)

Pozdrawiam

13
OpenGL / Odp: [OpenGL] Synchronizacja białego błysku z muzyką
« dnia: Wrzesień 17, 2017, 22:31:40 »
.

14
OpenGL / Odp: [OpenGL] Synchronizacja białego błysku z muzyką
« dnia: Wrzesień 14, 2017, 22:04:46 »
@Karol: Dzięki za wskazówkę, przydała się. Wystarczyło dać w warunku tylko sprawdzenie (rowNumber % 8 == 0) i wszystko działa poprawnie:) I wyjaśnienie do Twego pytania. Wiersze w patternie są numerowane od 0 do 63. To widzi muzyk, który tworzy muzykę w edytorze. Patternów może być więcej niż jeden. API playera zwraca jako numer wiersza kolejne liczby od 0 w górę, czyli do ostatniego wiersza ostatniego patternu:)

15
OpenGL / [OpenGL] Synchronizacja białego błysku z muzyką
« dnia: Wrzesień 14, 2017, 00:47:17 »
Cześć

Eksperymentuje obecnie z synchronizacją prostych efektów z muzyką. Muzyka jest napisana w postaci modułu trackerowego. API playera muzyki zwraca wiersz patternu, co można wykorzystać do synchronizacji. W patternie jest 64 wiersze (numerowane od 0 do 63). W związku z tym mam  dwa zagadnienia:

1. Zależy mi, aby w przypadku zwrócenia przez API, że grany jest wiersz o numerze 8, 16, 32 i tak dalej dodając 8 aż do 63 na ekranie pojawił się biały błysk. Warunek sprawdzający mam skonstruowany tak (rowNumber to numer aktualnie granego wiersza):

if (rowNumber % 8 == 0 ||
rowNumber % 8 == 2 ||
rowNumber % 8 == 3 ||
rowNumber % 8 == 4 ||
rowNumber % 8 == 5 ||
rowNumber % 8 == 6 ||
rowNumber % 8 == 7 ||
rowNumber % 8 == 8)
{
whiteFlash();
}
Można jakoś tą rozbudowaną logikę sprawdzającą w nawiasie uprościć i zastąpić bardziej czytelnym kodem? Muzyka ma paręset wierszy w pattermach i oprogramowanie synchronizacji białego błysku do tych wierszy zajmie bardzo dużo sprawdzających warunków logicznych:)

2. Przejście pomiędzy jednym efektem a drugim ma odbyć się w postaci białego błysku. Kod rysujący figury w zależności od tego jaki wiersz modułu muzycznego jest grany przedstawia się następująco:

if ((rowNumber >= 0) && (rowNumber <=127))
{
drawFigure1();
}

if (rowNumber == 128)
whiteFlash();

if ((rowNumber >= 129) && (rowNumber <=256))
{
drawFigure2();
}

Gdy odgrywany jest 128 wiersz ma być biały błysk pomiędzy jednym efektem a drugim, a niestety tego białego błysku nie ma. Kod dotyczący białego błysku działa na 100% poprawnie, ponieważ jak się wywoła biały błysk w czasie trwania jakiegoś efektu to jest ładnie widoczny. Co może być przyczyną tego, że biały błysk nie jest widoczny pomiędzy jednym a drugim efektem? Oto poniżej kod odpowiedzialny za biały błysk:

void whiteFlash()
{
glLoadIdentity();
glTranslatef (0.0f, 0.0f, -5.0f);

glPolygonMode(GL_FRONT, GL_FILL);
glPolygonMode(GL_BACK, GL_FILL);

glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE);

if (alpha <= 1)
{
glColor4f(1.0, 1.0, 1.0, alpha);

glBegin(GL_QUADS);         
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glEnd();

alpha += 0.025;
}
else
{
glColor4f(1.0, 1.0, 1.0, alpha_inv);

glBegin(GL_QUADS);         
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glEnd();

alpha_inv -= 0.025;
}

glDisable(GL_BLEND);
glEnable(GL_TEXTURE_2D);

return;
}

Dziękuję z góry za odpowiedzi

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