Ice Cube Opublikowano 3 Stycznia 2019 Udostępnij Opublikowano 3 Stycznia 2019 Cześć załączyłem w mojej grze taką fajną opcje by poznikały pixele texture_set_interpolation(true) i nad niektórymi obiektami pojawiły mi sie kreski takie jak na załączonym obrazku ;/ gdy wchodze w edycje textury nic tam nie ma,a w grze jednak po zalączeniu tej opcji sie pojawia ta kreska. i druga sprawa do czego służy texture_set_blending ? nie wiem co to blender -sory Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 3 Stycznia 2019 Udostępnij Opublikowano 3 Stycznia 2019 A zrób tą texturę o jeden pixel wyższą i wtedy przenieś o jeden w górę cały obrazek tak by dolne pixele nie dotykały krawędzi obrazka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 3 Stycznia 2019 Autor Udostępnij Opublikowano 3 Stycznia 2019 11 minut temu, I am Lord napisał: A zrób tą texturę o jeden pixel wyższą i wtedy przenieś o jeden w górę cały obrazek tak by dolne pixele nie dotykały krawędzi obrazka no dobra to działa ,kreska zniknęła pozostaje jeszcze kwestia podłogi,która sie składa z 4 textur leżących obok siebie i tworzących kwadrat,na połączeniach powstały też takie jakby kreski Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Stycznia 2019 Administratorzy Udostępnij Opublikowano 4 Stycznia 2019 Zaznaczyłeś "use as 3d texture"? W gms2 chyba można było zaznaczyć, żeby na atlasie się po 1 pikselu wrapowaly obrazki na krawędziach aby z tym walczyć, nie wiem czy w jedynce też. Ten pasek to jest rozmyta sąsiadującą grafika. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 4 Stycznia 2019 Autor Udostępnij Opublikowano 4 Stycznia 2019 4 godziny temu, gnysek napisał: Zaznaczyłeś "use as 3d texture"? W gms2 chyba można było zaznaczyć, żeby na atlasie się po 1 pikselu wrapowaly obrazki na krawędziach aby z tym walczyć, nie wiem czy w jedynce też. Ten pasek to jest rozmyta sąsiadującą grafika. LOL Używam gm 8.0 (już niedługo zmienie) próbowałem wygumować 1 pixel dookoła textur.efekt-jeszcze bardziej widoczne linie ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 4 Stycznia 2019 Udostępnij Opublikowano 4 Stycznia 2019 A to jakich rozmiarów jest ta textura? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 4 Stycznia 2019 Autor Udostępnij Opublikowano 4 Stycznia 2019 4 godziny temu, I am Lord napisał: A to jakich rozmiarów jest ta textura? 2048/2048 to jest cała podłoga w grze 4 pliki niestety gm nie przyjmuje większych plików dlatego rozbiłem to na 4 i textury są draw_floor Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 5 Stycznia 2019 Udostępnij Opublikowano 5 Stycznia 2019 GM8 chyba też miał "use as 3D texture" ale zdaje się że musisz ją w drzewku backgrounds umieścić Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 5 Stycznia 2019 Autor Udostępnij Opublikowano 5 Stycznia 2019 45 minut temu, I am Lord napisał: GM8 chyba też miał "use as 3D texture" ale zdaje się że musisz ją w drzewku backgrounds umieścić a gdzie to dżewko ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 5 Stycznia 2019 Udostępnij Opublikowano 5 Stycznia 2019 No drzewko folderów jak kto gdzie -.- Sprites Backgrounds Sounds Scripts itd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 6 Stycznia 2019 Autor Udostępnij Opublikowano 6 Stycznia 2019 5 godzin temu, I am Lord napisał: No drzewko folderów jak kto gdzie -.- Sprites Backgrounds Sounds Scripts itd no niestety nigdzie nie ma use as 3D texture ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 A zobacz czy oprócz włączenia iterpolacji, włączenie jeszcze texture_set_repeat(true) cos zmienia a i wyłącz też "smooth edges" w ustawieniach sprita czy tam backgorunda Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Stycznia 2019 Administratorzy Udostępnij Opublikowano 6 Stycznia 2019 Bo to 8.0 (robione przez Marka) a nie 8.1 (robione przez YoYoGames). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 6 Stycznia 2019 Autor Udostępnij Opublikowano 6 Stycznia 2019 8.1 często zawiesza mi sie przy kompilacji dlatego chce dokończyc projekt przy 8.0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 6 Stycznia 2019 Autor Udostępnij Opublikowano 6 Stycznia 2019 46 minut temu, I am Lord napisał: A zobacz czy oprócz włączenia iterpolacji, włączenie jeszcze texture_set_repeat(true) cos zmienia a i wyłącz też "smooth edges" w ustawieniach sprita czy tam backgorunda tylko takie opcje są dostępne w sprite i background Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 A bo ty nie masz włączonego advanced mode, to sobie włącz gdzieś w opcjach czy pod Files to było. Już nie pamiętam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 6 Stycznia 2019 Autor Udostępnij Opublikowano 6 Stycznia 2019 1 minutę temu, I am Lord napisał: A bo ty nie masz włączonego advanced mode, to sobie włącz gdzieś w opcjach czy pod Files to było. Już nie pamiętam no właśnie mam włączone advanced ,i są takie opcje jak powyżej na zdięciu. texture_set_repeat(true) też nie daje żadnego efektu ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 No to nic się nie poradzi to stary GM i ma błędy swoje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Stycznia 2019 Administratorzy Udostępnij Opublikowano 6 Stycznia 2019 Dokładnie, jak używasz programu który ma 9 lat, to się nie dziw, że są problemy. W ogóle działają gry z niego na nowych Windowsach? Przypominam, że już od pół roku wsparcia nie ma nawet GM Studio 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 Nie działają Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 6 Stycznia 2019 Autor Udostępnij Opublikowano 6 Stycznia 2019 pokombinuje jeszcze. ta gra którą robie śmiga na win 10 bez problemu p.s. gm studio 1 lub 2 jest darmowe? ,moge jakoś pobrać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 Jakieś 2 lata temu było darmowe GMS1 a teraz to nawet nie idzie go kupić Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rozwiązanie Konrad-GM Opublikowano 6 Stycznia 2019 Rozwiązanie Udostępnij Opublikowano 6 Stycznia 2019 Cześć, problem z interpolacją tekstur jest jak najbardziej "normalną" odpowiedzią od karty graficznej, generalnie ten problem występuje od zawsze, odkąd istnieje interpolacja sampli. Jednym z rozwiązań jest wyłączenie powtarzalności tekstur np. w OpenGL jest to ustawienie w teksturze flagi GL_TEXTURE_WRAP_S/T na GL_CLAMP_TO_EDGE, jednak GameMaker nie udostępnia takowych funkcji Przykładowe ustawienia wrap-owania tekstur w OpenGL (opcje te występują również w DirectX); W Twoim przypadku GameMaker prawdopodobnie ustawia teksturom odpowiednik GL_REPEAT w DirectX, dlatego pojawiają Ci się te "artefakty" na krańcach tekstury. Dodatkowo każda tekstura musiałaby być "stworzona" jako oddzielna tekstura w VRAM, atlas tekstur nie zadziała, jak to się dzieje w przypadku GMS1.4+ (tzw. grupy obrazków w ustawieniach GMa, ale da się to akurat ominąć). Więc w skrócie problem polega na tym, że interpolacja sampli w fragment shaderze miesza sąsiadujące kolory, tworząc tzw. texel, jak się pewnie domyślasz, artefakty które pojawiają Ci się na krańcach modelu podłogi to po prostu zmieszane kolory z drugiego krańca tekstury, dlatego też warto czasami używać tekstur seamless Po więcej teorii dot. tekstur i metod samplowania odsyłam do https://cglearn.eu/pub/computer-graphics/textures-and-sampling Jako, że nie możemy wyłączyć powtarzalności tekstur, można za to wykluczyć krańce tekstury z samplowania, efekt nie jest idealny, ale nie ma tak oczojebnych artefaktów. Przykład poniżej: Jednak aby wykluczyć krańce tekstury w GMie, trzeba stworzyć własny model podłogi, bo draw_floor nie udostępnia funkcji do modyfikacji UV per vertex, ani GameMaker 8.0 nie wspiera shaderów. Kod obj_floor w Create Event u mnie wygląda tak: // tworzymy model podlogi tylko raz i przypisujemy model do zmiennej globalnej if (!variable_global_exists("model_floor")) { // obliczamy polowe texela tekstury do wykluczenia go z sampla // teraz kazdy kafelek Twojej podlogi musi miec taka sama wielkosc var u, v; u = (1.0 / background_get_width(texTile)) * 0.5; v = (1.0 / background_get_height(texTile)) * 0.5; // szerokosc i dlugosc podlogi var w, h; w = 64; h = 64; // tworzymy model podlogi (tylko raz) global.model_floor = d3d_model_create() d3d_model_primitive_begin(global.model_floor, pr_trianglefan); d3d_model_vertex_texture(global.model_floor, 0, 0, 0, 0.0 + u, 0.0 + v); d3d_model_vertex_texture(global.model_floor, w, 0, 0, 1.0 - u, 0.0 + v); d3d_model_vertex_texture(global.model_floor, w, h, 0, 1.0 - u, 1.0 - v); d3d_model_vertex_texture(global.model_floor, 0, h, 0, 0.0 + u, 1.0 - v); d3d_model_primitive_end(global.model_floor); } // tekstura podlogi texid = background_get_texture(texTile); Natomiast obj_floor i Draw Event: d3d_model_draw(global.model_floor, x, y, 0, texid); Można też poprawić wygląd łączeń, ale tutaj jest trochę więcej roboty - musiałbyś zeskalować tekstury powiedzmy z 2048 do 2046 na środek i te wolne piksele na krańcach przekopiować z sąsiadujących ze sobą tekstur (tekstura nadal musi mieć 2048px). Ice Cube 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Stycznia 2019 Administratorzy Udostępnij Opublikowano 6 Stycznia 2019 ja chyba to tak rozwiązywałem, że dawałem pozycje rysowania tekstur od 0.01 do 0.99 z tego co pamiętam. Ale zabawa z 3D w GameMakerze, to jak wożenie lodówki maluchem, albo jazda na sankach latem po trawniku. Generalnie średnio wychodzi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 6 Stycznia 2019 Udostępnij Opublikowano 6 Stycznia 2019 58 minut temu, gnysek napisał: ja chyba to tak rozwiązywałem, że dawałem pozycje rysowania tekstur od 0.01 do 0.99 z tego co pamiętam. Ale zabawa z 3D w GameMakerze, to jak wożenie lodówki maluchem, albo jazda na sankach latem po trawniku. Generalnie średnio wychodzi Ważne, że działało i dawało zadowalające efekty, tyle, że to takie mini-piekło dla perfekcjonisty Jednak ten problem z interpolacją dotyczy każdego silnika czy biblioteki graficznej, brak shaderów czy chociaż podstawowych ustawień tekstur to już rzeźnia po prostu. Ale warto wiedzieć jak sobie radzić z takimi problemami gdy ogranicza narzędzie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 7 Stycznia 2019 Udostępnij Opublikowano 7 Stycznia 2019 Czyli co zamiast pełnego zakresu UV mapy, trzeba zabrać z niej z każdego krańca po połowie pixela? A wyłączenie texture_repeat nie dawało nic? Ewentualnie można tak narysować textury by te miały na krawędziach takie same pixele po jednej i drugiej stronie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 7 Stycznia 2019 Udostępnij Opublikowano 7 Stycznia 2019 7 godzin temu, I am Lord napisał: Czyli co zamiast pełnego zakresu UV mapy, trzeba zabrać z niej z każdego krańca po połowie pixela? A wyłączenie texture_repeat nie dawało nic? Ewentualnie można tak narysować textury by te miały na krawędziach takie same pixele po jednej i drugiej stronie. Bezszwowe tekstury to normalna praktyka by się pozbyć tego efektu, ale czasami to nie wystarcza, zwłaszcza jak się podzieli teksturę na mniejsze elementy, bo po prostu limit rozmiaru tekstury nie pozwala na to. Efekt co prawda nie jest idealny, ale można i z tym powalczyć, np. przekopiowując krańce tekstury z tekstury sąsiadującej. Coś na zasadzie dodawania 1px obramowania do sprite'ów w atlasie tekstur, żeby też ominąć te brzydkie łączenia z sąsiednim spritem. (w 3D tekstura musi być rozmiaru potęgi dwójki, dlatego np. 2050px odpada i trzeba obraz skalować) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 7 Stycznia 2019 Administratorzy Udostępnij Opublikowano 7 Stycznia 2019 Nowsze GMy mają tą opcję, żeby dodać jako border 1px przeciwległy bok. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się