| Autor |
Beitrag |
Blackbird
      
Beiträge: 54
|
Verfasst: Di 20.04.04 18:05
Hallo alle zusammen.
Ich hab' hier mal ein kleines Problemchen:
Sobald ich eine Textur verwedne, die grösser als 256 Pixel ist, wird sie nicht mehr korrekt angezeigt.
Nun das dieses Problem bei älteren Karten auftritt ist mir bekannt, aber bei ner GForce4 ???
Kann das noch an etwas anderem liegen ?
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Di 20.04.04 20:32
Also um es kurz und schmerzvoll zu machen: Ja, es kann an anderen Problemen liegen. Deine GF4 sollte (sofern Du nicht wahllos irgendwelche Chips abgebrochen hast) diese Leistung leicht vollbringen (um ehrlich zu sein bezweifel ich, dass es noch realistisch genutzte PCs mit dieser Grenze im Umlauf gibt). Eine genaue Beschreibung zu was "nicht korrekt" ist, würde evtl. bereits schon einen riesen Schritt in die richtige Richtung sein. Auch eine Beschreibung welcher Textur-Loader und die Art und Weise wie es in den Speicher befördert wird, wäre sehr nützlich um einige Fehlerquellen auszuschließen.
Übrigens zum einsehen und vergleichen etwaiger Grafikkarten beschränken, schau daher: www.delphi3d.net/hardware/index.php
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
Blackbird 
      
Beiträge: 54
|
Verfasst: Mi 21.04.04 12:19
Danke für deine Antwort...also:
Mit "nicht korrekt" mein ich, dass die Textur grau ist (egal welche farbe sie hat) and mit Farbstreifen versehen ist (in allen Farbvarianten).
Als Texturloader benutze ich die Unit von Jan Horn, zu finden auf www.sulaco.co.za.
Allerdings konnte ich sie nicht mehr "standalone" zum Download dort finden. Sie befindet sich aber in den Beispielprogrammen (als Source klar).
Nachtrag: Hab grad rausgefunden, dass der Fehler nur bei bestimmten Grössen auftritt. Beispiel:
312x88 Pixel - korrekt
314x88 Pixel - nicht koorekt
316x88 Pixel - korrekt
..usw.
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Mi 21.04.04 13:38
Viele Grafikkarten oder wohl eher die Treiber haben arge Schwierigkeiten mit nicht-quadratischen Texturen. Meines erachtens wurde für neue OpenGL-Spezifaktionen erst dafür eine Extension verwendet. Versuche doch einmal bitte 512x512 zu nehmen und danach 1024x1024. Und? Gibt es auch dabei Probleme? Vermute Beinahe nicht, ansonsten bin ich der Meinung bei mir im Forum einmal aufgeschnappt zu haben, dass der TGA-Loader bei Jan einen kleinen Fehler hat. Tritt das auch bei anderen Formaten auf? (würde vermutlich nicht erklären, warum es manchmal geht und manchmal nicht. Wenn doch und Du dich fit fühlst, solltest mal einen Blick auf SDL werfen, die haben einen prima Loader mit dabei)
So mal sehen, wie es dann ausschaut...
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
Blackbird 
      
Beiträge: 54
|
Verfasst: Mi 21.04.04 23:52
hm an den Dateitypen liegts jedenfalls net. Hab' alles durchprobiert - bmp,tga,png,jpg - immer der gleiche Fehler.
So dann werd' ich mal nen Blick in die SDL werfen...
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Do 22.04.04 12:25
Was ist den als Ergebnis dabei heraus gekommen, wenn Du versucht hast große quadratische Texturen zu Verwenden? Das würde ich vorher machen, bevor ich mich in eine neue Lib stürze (wobei ich Dir SDL auch unabhängig von allem anderen empfehlen würde) 
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
Blackbird 
      
Beiträge: 54
|
Verfasst: Fr 23.04.04 13:20
Yep habs mal mit quadratischen Texturen probiert:
256x256: korrekt
257x257: nicht korrekt
258x258: nicht korrekt
259x259: nicht korrekt
260x260: korrekt
hm...
Nachtrag: Anzumerken ist übrigens noch, dass Helligkeitsverhältnisse aber weiterhin stimmen (Graustufen)...
|
|
Raphael O.
      
Beiträge: 1596
VS 2013
|
Verfasst: Fr 23.04.04 13:50
ok, dann liegts wohl daran, dass die meisten bzw manche Grafikkarten nur Texturen mit Seitenrändern der Größe 2^n annhemen...
z.B.
16*128
oder
256*64
da kann man nichts dran ändern...
wennes trotzdem bei einer andern größe noch klappt kann das sein, ist aber nicht konform und deswegen soltlest du das lassen
|
|
Blackbird 
      
Beiträge: 54
|
Verfasst: Fr 23.04.04 15:42
Na gut...dass mit den Texturbegrenzungen auf 2^n war mir schon bekannt, aber ich dacht halt, dass heutige Grafikkarten mit sämtlichen Texturen umgehen können. 
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Fr 23.04.04 18:50
Doch, die meisten "können" es scheinbar schon, allerdings auch nur wenn der davor liegende Treiber eine entsprechende Umwandlung vornimmt. Bezogen auf OpenGL ist wie gesagt eine neue Extension in der mache (soll bei 2.0 oder 1.6 einfliessen, spontan keinen Plan), die dann auch von allen Karten NV & ATI-Karten getragen werden soll. Fakt ist allerdings, dass deine Graka sich Geschwindigkeitsmässig mehr über eine 512x512 freut als über eine 512x500. Also warum eine künstliche Bremse einbauen? Klingt absurd, aber lieber mit Alpha Masks oder Blending ein wenig mehr rendern und einen Teil "abschneiden" (notfalls auch über die Skalierung) als diese unquadratisch in den Speicher zu legen. Zumal auf dieseme Wege sichergestellt sein sollte, dass auf fast allen Graka das ganze läuft. Ich muss lügen, aber IMAO war die max. Größe bei einer Geforce2MX bei 2048x2048 und das sollte für nahezu jede Lösung ausreichen 
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|