Skocz do zawartości

Cyan

Użytkownik
  • Postów

    8
  • Dołączył

  • Ostatnia wizyta

Osiągnięcia Cyan

Newbie

Newbie (1/14)

0

Reputacja

  1. Witam. Mam problem dotyczący pisania shaderów w OpenGL. Mam sobie najzwyklejszy shader: #version 330in vec4 vVertex;in vec4 vColor;uniform mat4x4 MVPMatrix;out vec4 vVaryingColor;void main() { vVaryingColor = vColor; gl_Position = MVPMatrix * vVertex;}, który był bezpośrednio przepisywany z tego, co prowadzący ma na swojej stronie, a który jednak nie działa. Program kompiluje się, ale pojawiają się jakieś głupoty zamiast figury, a konsola wywala błąd: "Version number not supported by OGL driver", a na koniec: "uniform MVPMatrix could not be found". Program działa na komputerach na uczelni, więc to raczej nie jego wina. OpenGL sam z siebie (bez shaderów) działa tutaj znakomicie. Wpisanie innej wersji nie pomaga, dopiero przy version 120 pierwszy komunikat znika, ale pojawia się "'in' : syntax error parse error" i macierz nadal nie może być znaleziona. Co może być tego przyczyną? Ktoś na pomysł?
  2. No to uwierz, że nam nie podawali. Udowodnić ci tego nie mogę/nie chce mi się. Tak jest i już, a ja tu nie przyszedłem dyskutować o poziomie edukacyjnym. Próbowałem znaleźć to w Google, ale gdy na trzeciej stronie wciąż dostaję jakieś totalne głupoty, mam chyba prawo zrezygnować. Powiem ci to grzecznie i raz: wypchaj się. Nie proszę o napisanie całego programu tylko jednej z kilkunatu funkcji, na której utknąłem. A "nauczyć się składni" to można powiedzieć o języku, o którym cokolwiek piszą. Dziwne, że jakoś nic znaleźć nie mogę i z tego co widzę po osobach z grupy, nie tylko ja mam "taki Google", w którym nic nie można znaleźć, zwłaszcza mając do dyspozycji kilka dni, w które taaak się mogę nauczyć składni, że aż szok. I takim oto sposobem idea Web 2.0 wzięła w łeb. Dziękuję za wsparcie dla laika.
  3. Stwierdziłem, że "nie muszę rozumieć", bo widzę jak rozpala cię chęć wyjaśnienia, a nigdzie indziej tej informacji nie dostanę. Najłatwiej sobie postawić zachwyconą buźkę. Nie pomyślałeś, że ktoś mógł nigdy nie mieć do czynienia z bashem? Ale pewnie, przecież ekspert już dawno zapomniał jak to było gdy pierwszy raz otworzył konsolę i zastanawiał się, co tu zrobić. Bardzo dojrzale. I gdzie niby napisałem, że od lat programuje? Boże, naucz się czytać. Stoi jak wół, że nigdy z bashem do czynienia nie miałem, a ty mi wyskakujesz z kilkuletnim doświadczeniem...? No kpisz sobie chyba. A kropkę wstawiłem w tamten kod, by w ogóle sprawdzić, czy ją na COKOLWIEK zamieni, do głowy by mi nie wpadło, że ktoś uzna, że to miało być rozwiązanie. Trzeba naprawdę być kreatywnym, by coś podobnego wymyślić... I po co ci komunikat, skoro od razu wiesz, co jest źle?... Do tego, że bash obsługuje tylko całkowite liczby, to ja za przeproszeniem sam doszedłem i chyba nie dość jasno napisałem, że nie mogę wyłuskać kropki ze stringa, by potem scalić liczbę i podzielić ją przez cokolwiek, czy w ogóle zrobić z nią coś, by zmieniła się w liczbę, którą bash zrozumie. Widać zamiast czytać, wolałeś się wykrzyczeć.
  4. Dobra, nie mam pojęcia jaka jest różnica między zapisaniem w tym if-ie samego wyrażenia a zapisaniem go do zmiennej, ale widać tego rozumieć nie muszę, skoro generalnie działa, za co wypada mi już tylko podziękować, bo przynajmniej to żyje. Nie można było tego od razu wyartykułować? Co do platform, to kryterium było zaiste optymistyczne: ma działać wszędzie, a zwłaszcza u ćwiczeniowca (żadnej wytycznej). Wersji basha sprawdzić nie umiem. Ja nic nie piszę? No cóż, nie będę się kłócić, bo nie po o tu siedzimy. A że to dopiero początek to widzę, choć nazwałbym to raczej środkiem, patrząc na to, co już działa. Widzę, że teraz skrypt wywala się przy liczbach z kropką jak 2.2, ale aż boję się zapytać, czemu to robi. Aczkolwiek śmieszy mnie to, bo dopisując kropkę do części podmieniającej literki skrypt robi, co mu się każe: b=$[$(echo $1 | sed 's/[EeDdQq\.]/ \* 10 \*\* /')] (<-chwilowo z tą nieszczęsną dziesiątką) ale gdy próbuję kazać mu podmienić samą kropkę: b=$[$(echo $1 | sed 's/\./ \* 10 \*\* /')] to już mu się nie podoba i omija tę linijkę (albo nie znajduje dla niej zastosowania, nie wiem, w każdym razie w niższej linii się burzy).
  5. Boże... + w tym wyrażeniu (ponoć) oznacza, że to co jest przed nim ma się pojawić 1 lub więcej razy... Widzę, że to nie ma sensu, ale na forach jeszcze nigdy nic nie uzyskałem, jakimś cudem. I nic nie popitoliłem przy spisywaniu, tylko ćwiczeniowiec podaje nam zadania z błędami, byśmy je sobie znaleźli. Ale jak widzę niemożliwym jest rozwiązanie tego, gdy się nie programuje od kilku lat, bo żadnej konkretnej odpowiedzi od razu dostać nie można. (test z dwoma nawiasami też nie działa w tym przykładzie, swoją drogą.)
  6. Ja rozumiem istnienie tej negacji zapisanej tyldą, ale wciąż przecież operator =~ gdzieś istnieje, a przynajmniej powinien, bo inaczej co innego tam wstawić...? Takiej głupoty by nam chyba nie podali... No nie wiem, dotychczas ^ działało jako potęga, ale aż głupio to mówić, gdy się widzi, że ** działają... Więc mój błąd, dzięki. Nie zmienia to faktu, że nadal brak mi operatora, który przyrównałby treść parametru do, nie wiem, schematu? Ma to w ogóle jakąś nazwę, bo nawet nie wiem, czego szukać? Aha, właśnie próbowałem =~ na == podmienić, bo w jakiejś innej wersji tegoż przykładu zrobili coś takiego, ale wówczas wielkie oburzenie ze strony programu: line 4: syntax error near unexpected token `(' Jeszcze jakieś możliwości...?
  7. Gdyby w dokumentacji udało mi się znaleźć coś, co choćby trochę wyjaśniłoby mi sprawę, to by mnie tu generalnie nie było. Nie wiem, czego szukam, co jest moim głównym problemem, bo podano nam tę linijkę kodu jako działającą na pewno, więc nie rozumiem, czemu nie działa. Komunikat błędu powiedział mi dokładnie tyle, co Google na ten temat - nic, żadnego wyjaśnienia, które by do mnie dotarło. No i wybacz, ale ja po prostu nie wiem, co jest w tym skrypcie, bo ta linijka jest dla mnie kompletnie niezrozumiała i widzę jedynie, że wypisuje to swoje 10 do potęgi, ale nawet go nie oblicza.
  8. Dano nam (ludziom nieświadomym niczego, co jest bashem) do napisania z pozoru prosty skrypt w bashu, który jednak zareagować ma na wszystkie formy liczb, jakie użytkownik może wpisać jako argument. I tak ma wykrywać liczby takie jak: 1, 1.0, .1, 2E-2, +2, 2e+2 i tak dalej. Na samym początku skrypt ma sprawdzić, czy aby nie wpisaliśmy mu czegoś, czego absolutnie nie obsłuży. Podano nam, że taki if powinien działać: if ! [ "$1" =~ ^[+-]?[0-9]*(\.?[0-9]+)?([eEdDqQ][-+]?[0-9]+)?$ ]; thenale zamiast działać, skrypt wywala "line 4: [: =~: binary operator expected". Dlaczego? Innym razem (nie pamiętam już, co i gdzie było zmienione) nie spodobał mu się nawias: (. Co jest nie tak z tym warunkiem? I druga sprawa: jak widać powyżej mamy obsłużyć także taką formę jak 2E2 i inne kombinacje. Rzucono nam ochłap w formie poniższej: a=$(echo $1 | sed 's/[EeDdQq]/+10^/g; s/+//g')Czy to ma szansę zrobić to, co powinno, mianowicie zamienić wszelkie e, E, etc. na potęgę liczby 10, a mało tego, jeszcze pomnożyć ją przez liczbę przed tym E stojącą (bo tego najbardziej nie mogę się tu doszukać)? Szczerze przyznam, że tej części nie dane mi było sprawdzić, jako że powyższy warunek ciągle wywalał cały skrypt. W związku z powyższymi bardzo proszę o pomoc.
×
×
  • Dodaj nową pozycję...