Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jun 09, 2024 07:51

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: tile basierte map, bleeding
BeitragVerfasst: So Dez 16, 2012 13:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
yo

ich möchte ne tile basierte map verwirklichen. leider entstehen durch benachbarte tiles ränder an den einzelnen quadraten, und ich erinnere mich nichtmehr, wie man damit umgeht. kann mir jmd auf die sprünge helfen?

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mo Dez 17, 2012 14:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
noone?

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mo Dez 17, 2012 17:51 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Mach doch bitte mal ein Bild, damit wir wissen, was das für Ränder sind.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mo Dez 17, 2012 18:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Ich bin mir nicht 100% sicher was du meinst aber ich vermute einfach mal:
1. Du willst schöne übergänge zwischen Grass -> Sand -> Wasser etc.
1.1 Also bei Tilemaps macht man das glaube in der Regel so das die Tiles einfach aneinander passen. Das heißt der Übergang zwischen den Tiles ist schon in der Tile-Textur. Macht natürlich nur Sinn wenn es nicht zuviele Möglichkeiten gibt. Etwa hier bei C&C Red Alert gibt es eben X verschiede Küstenteile, X verschiedene Felsen, Grass mit Straße, etc.
1.2 Eine Alternative wäre natürlich Alpha-Blending. Du machst deine Tiles ein wenig größer als eigentlich nötig so das sie mit dem Nachbar-Tile überlappen. Der Rand ist dann eben transparent. Der Alpha-Wert addiert mit dem Alpha-Wert des Nachbarn muss immer 1 ergeben.

2. Du benutzt einen Textur-Atlas, also mehrere Tiles in einer Textur nebeneinander und hast das Problem das du am Rand die Nachbar-Textur siehst.
Deine Tiles müssen im Atlas leicht größer sein. Jedes Tile braucht einen 1px Rand wo du die Randpixel jeweils einfach kopierst. Die Texturkoordinate müssen natürlich so gewählt werden, dass du immer noch die ursprüngliche Tile benutzt. Sowas macht man natürlich nicht von Hand sondern man baut sich was dafür. Solltest du einen Anisotropen-Filter benutzen (eher nicht bei 2D) brauchst du sogar 4px Rand.
Verkleinern ist ein Problem. Bei der Generierung von Mipmaps werden einfach immer 2x2px zu einem verwurstet....und das immer wieder für jedes Level. Du musst also dafür sorgen das der Rand in der kleinsten Mipmap-Stufe (pixelmäßig) immer noch 1px bzw. 4px dick ist.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mo Dez 17, 2012 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
naja es koennte auch sein das er z.B. zwei Quads nebeneinander zeichnet und die Artefakte die dabei entstehen weghaben will...
oder sonste was, nen Screenshot und genauere Beschreibung wäre wirklich nicht schlecht

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 15:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
oh, dann hab ich das einfach nicht ausreichend erklärt, sorry.

hier mal n bild. die pinken ränder gehören nicht zu den tiles und sind auch kein raster das ich absichtlich darstelle, sondern entstehen durch die benachbarten pixel in der chipset textur.

ich zeichne einzelne quads nebeneinander, und die texturkoordinaten sind das "tile" aus meineem chipset das ich anzeigen möchte. coolcat hat unter 2. die lösung; allerdings scheint mir das keine ideale lösung zu sein, denn es verkompliziert einige dinge, wie zb das erstellen von chipsets oder die anzeige des chipsets zur auswahl des tiles das man zeichnen möchte. gibt es eine möglichkeit, irgendeinen opengl-state zu setzen, so dass er die ränder der quads nicht mit den umliegenden, ungewünschten pixeln verwäscht?

immerhin zeichne ich 64x64 pixel der textur auf 64x64 pixel des bildschirms. vill n shader?

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 15:35 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Was für einen Texturfilter hast du denn gesetzt?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 15:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Texture Filtering auf GL_NEAREST stellen? :wink:

PS: Zelda~ yay!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 16:49 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
yo, gl_nearest könnte es sein. jetzt muss ich erstmal ein besseres chipset erstellen und dann mal schauen, sonst 2px lücke. danke :)

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 17:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
gibt fuer sowas zwei gute Loesungen, zum einen wie schon gesagt GL_Nearest. Oder man machts wie zum Beispiel Starcraft und erlaubt nur bestimmte Tiles als Nachbarn so das solche "Ueberblendungen" egal werden.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 18:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
GL_NEAREST hilft dir nur wenn du wirklich die Pixel 1:1 auf den Bildschirm überträgst. Wenn du zoomen möchtest wird das Ergebnis bescheiden aussehen.

Übrigens sind die Ränder sehr stark. Ich würde darauf tippen, dass du die Texturkoordinaten um 0.5 Pixel falsch gesetzt hast. Klassischer Anfängerfehler. Benutze etwa nicht (0,0) als Texturkoordinate (das wäre genau die Mitte zwischen dem Randpixel deines Tiles und der pinken Umrandung. Verwende stattdessen (0.5 / textureWidth, 0.5 / textureHeight), das ist die Mitte des Eckpixels.
Hier ist die Formel:
(0.5 + pixelX) / textureWidth
(0.5 + pixelY) / textureHeight

Nicht vergessen, dass du auch deine Quads pixelexakt rendern musst. Wenn die Vertices 0.5 Pixel daneben sind, sind die Texturkoordinaten natrülich auch entsprechend verschoben. Das solltest du prüfen indem du z.B. in den Ecken mal ein 4x4 Quad renderst, ein Screenshot machst (damit zu ranzoomen kannst) und dann die Pixel zählst. Also checken ob es wirklich 4x4 Pixel sind und an der korrekten Stelle. Bei der Gelegenheit kannst du auch gleich prüfen ob der gewünschte 4x4 Texturbereich korrekt übertragen wurde. Benutze eine große Textur, 4096x4096 oder so damit falsche Koordinaten auffallen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 20:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
danke, coolcat! das ist alles was ich wissen muss :)

@yun, daran hab ich auch schon gedacht.

muss nochmal drüber nachdenken bevor ich mich entscheide.

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: tile basierte map, bleeding
BeitragVerfasst: Mi Dez 19, 2012 20:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Benutze eine große Textur, 4096x4096 oder so damit falsche Koordinaten auffallen.

Nach näherer Überlegung...ich glaube die Texturgröße spielt keine Rolle. Bin gerade etwas kO vom Chaos auf der Arbeit ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.057s | 15 Queries | GZIP : On ]