Texturfehler -> MipMaping?!

Anfängerfragen zum Programmieren mit PureBasic.
Schranz0r
Beiträge: 22
Registriert: 11.09.2013 19:09

Texturfehler -> MipMaping?!

Beitrag von Schranz0r »

Hallo Leute,


ich habe das Problem, dass mehrere Würfel zusammen bei nähe richtig texturiert sind, sind sie weiter weg ist die Textur unscharf und hat artefakte!
Siehe Screenshot...

Bild

Kennt einer das Problem?!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Texturfehler -> MipMaping?!

Beitrag von STARGÅTE »

Liegt wohl an den Einstellungen deiner Grafikkarte:
Wenn du keine gute Texturfilterung eingestellt hast, kommt es zu Verschwimmungen.
Dem kann die Grafikkarte mit anisotropischer Filterung entgegenwirken.
Hier ein Beispiel:
Bild

Edit: In PB kannst du das auch Erzwingen:

Code: Alles auswählen

MaterialFilteringMode(#Material, Modus [, MaxAnisotropWert])

Code: Alles auswählen

#PB_Material_None      : Das Material wird nicht gefiltert, beim Näherkommen der Kamera
                            wird dieses dadurch sehr pixelig.
  #PB_Material_Bilinear  : Führt ein bilineares Filtern durch, resultiert beim Näherkommen
                            der Kamera in einem glatten, etwas verwischten Bild.
  #PB_Material_Trilinear : Führt ein trilineares Filtern durch, resultiert beim Näherkommen
                            der Kamera in einer bestmöglichen Bildqualität.
  #PB_Material_Anisotropic: Legt den maximalen anisotropen Wert fest. 'MaxAnisotropWert'
                            liegt üblicherweise zwischen 1 und 8.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Schranz0r
Beiträge: 22
Registriert: 11.09.2013 19:09

Re: Texturfehler -> MipMaping?!

Beitrag von Schranz0r »

Hi Stargate, hatte ich dann noch selber herrausgefunden zeitgleich mit deinen Post, drotzdem DICKES danke! Aber läuft da mit dem Filtering net was falsch ?
Ich hab nen Textureatlas gemacht und der wird mit nur korrekt angezeigt mit #Pb_material_none ?!
Gibts ne andere möglichkeit das noch besser wirken zu lassen?
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Texturfehler -> MipMaping?!

Beitrag von Chimorin »

Ich bin auch kein Ass auf dem Gebiet, deshalb eine Frage: Was ist ein Texturatlas? Einfach eine Liste mit deinen Materialien, bzw. Texturen?

Das Zeug funktioniert, muss wohl an deinem Programm liegen. Schieb doch mal ein bisschen Code rüber, wie du das einsetzt :)
Bild

- formerly known as Bananenfreak -
Schranz0r
Beiträge: 22
Registriert: 11.09.2013 19:09

Re: Texturfehler -> MipMaping?!

Beitrag von Schranz0r »

Ne Codetechnisch zu 100% richtig, dass ist das "Mipmaping" beim Materialfilter.

Code: Alles auswählen

        V1 = 0.25 * *c\cubes(x,y,z)\typ
        V2 = V1 + 0.25
        
        ;Check left
        If (x=0) Or (x>0 And *c\cubes(x-1,y,z)\typ = #BLOCKTYPE_AIR)
          ;1
          MeshVertexPosition(x-sz, y+sz, z-sz)
          MeshVertexNormal(-1,0,0)
          MeshVertexTextureCoordinate(0,V1) ;0,0
          ;4
          MeshVertexPosition(x-sz, y-sz, z-sz)
          MeshVertexNormal(-1,0,0)
          MeshVertexTextureCoordinate(0,V2) ;0,1
          ;5
          MeshVertexPosition(x-sz, y+sz, z+sz)
          MeshVertexNormal(-1,0,0)
          MeshVertexTextureCoordinate(1,V1) ;1,0
          ;8
          MeshVertexPosition(x-sz, y-sz, z+sz)
          MeshVertexNormal(-1,0,0)
          MeshVertexTextureCoordinate(1,V2) ; 1,1
          
          MeshFace(vertexcount, vertexcount+1, vertexcount+3)
          MeshFace(vertexcount, vertexcount+3, vertexcount+2)
          
          vertexcount = vertexcount+4  
         
        EndIf
Antworten