pekfos |
» 2025-09-02 16:39:37 Piksele wypadają poza RenderTexture. Zrób tą teksturę większą o 1px na szerokość i wysokość. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-02 16:45:28 Ok. Tak zrobiłem ale jest jeszcze jeden bug. Rect z lewej strony jest za mały o 1px   |
|
pekfos |
» 2025-09-02 17:08:15 A od góry nie jest za mały? Zastanawiam się ile razy będziesz pytać o przypadki brzegowe wynikające z tego że ta tekstura jest robiona pod wymiar. Powinieneś być w stanie narysować piksele w rogach tej tekstury, (minX, minY), (maxX, maxY), itd. Jesteś w stanie to poprawnie zrobić? Liczysz te współrzędne, ale wymiar tekstury bierzesz z innego miejsca. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-02 17:14:13 W tym przypadku co podałem u góry jest ok, lewo jest za mały o 1px, na dole jest za duży o 2px i po prawej jest za duży o 2px . Nie rozumiem skąd te rozbieżności. // updateowałem repo void generateOutline( float scale ) { if( points.size() < 3 ) return; sf::VertexArray lines( sf::LineStrip ); for( auto & p: points ) lines.append( sf::Vertex( sf::Vector2f( p ), sf::Color::White ) ); if( image != nullptr ) { texture = sf::Texture(); texture.create( rect.getSize().x + 1, rect.getSize().y + 1 ); texture.loadFromImage( * image ); mask.create( texture.getSize().x, texture.getSize().y ); mask.clear( sf::Color( 127, 47, 47, 127 ) ); sf::RenderStates rs; rs.blendMode = sf::BlendNone; mask.draw( lines, rs ); mask.display(); } }
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-02 17:27:15 Próbuję zrobić tak by rect zaczynał i kończył się równo z punktami granicznymi  |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-02 18:23:04 To chyba jest wina SFML a nie moja, bo chyba źle zaokrągla punkty :-/ |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-03 11:52:16 Próbowałem też poprawiać zaznaczenie poprzez nowe obliczenie rectu na podstawie punktów w sf::VertexArray ale to również nie rozwiązało problemu. void generateOutline( float scale ) { if( points.size() < 3 ) return; sf::VertexArray lines( sf::LineStrip ); for( auto & p: points ) lines.append( sf::Vertex( sf::Vector2f( p ), sf::Color::White ) ); lines.append( sf::Vertex( sf::Vector2f( points.front() ), sf::Color::White ) ); if( image != nullptr ) { |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-03 11:57:55 Teraz tak sobie przypomniałem, że również jak programowałem Edytor RPG2D to miałem podobny problem z sf::VertexArray - przesunięcie o 1 px i tworzyło to pionowe pasy.. Może ten sf::VertexArray jest skopany w SFML i zaokrągla punkty? |
|
1 2 « 3 » 4 5 |