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

Aktuelle Zeit: Fr Jul 18, 2025 23:22

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



Ein neues Thema erstellen Auf das Thema antworten  [ 46 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 10, 2006 11:47 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
und wie ich pixel genau zeichen, wenn ich meinen viwport auf 640x480 bring und die bildschirm auflösung auf selbieges, dann sollte 1pixel=1texel sein (so kann man das im ortho glaub ich sagen). auf jeden fall werden durch die filter (aus welchem grund auch immer) die umliegenden pixel geblured. wenn ich eine unmaskierte Textur verwende, dann sieht es aus wie es soll, lege ich allerdings eine alpha maske drauf, werden die Texel mit dem untergrund geblured. Allerdings möchte ich auf alphamasking und alpha channels nicht verzichten, da sie für Spiele unausweichlich sind.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 10, 2006 12:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Mit der Auflösung hast du recht. Ich persönlich arbeite immer so, dass Viewport und Ortho gleich groß sind und hatte damit bisher keine großen Probleme. Nichts was nicht lögisch gewesen wäre und man nicht hätte lösen können.

Ich habe gerade Probleme dabei mir das vorzustellen was du meinst. Kannst du bitte mal ein Bild machen in dem man die Unterschiede erkennen kann. Also ein Mal mit und ein Mal ohne Alphamaske. Ich denke mal, dann können wir dir schon mehr sagen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 00:10 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
öhm.. ja bilder kann ich hochladen.. aber wo??? soll ich die direkt von meinem rechner linken?
Bilder hab ich auf jedenfall schon mal vorbereitet.

(ich weiß, wahrscheinlich wirke ich jetzt etwas blöde, aber im Internet bin ich mehr passiv unterwegs)

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 08:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also wenn du eine Webseite hast kannst du die Bilder hochladen und verlinken. Da du aber passiv bist gehe ich mal nicht davon aus, dass dem so ist. Lokal verlinken funktioniert im übrigen nicht da ein Bild C:\Bild1.jpg bei mir nicht existieren würde. ;-)

Ansonsten kann ich dir nur IrfanView als recht kleinen feinen Bildbetrachter/Konverter empfehlen. Was musst du tun. Also wenn dein Programm läuft, dann drückst du entweder die Drucktaste (Rechts oben) oder Alt und die Drucktaste. Durch drücken von Alt kopierst du nur das aktive Fenster. In Irfanview drückst du dann Strg+V. Damit fügst du den Inhalt ein. Dann kannst du mit der Maus noch einen Teilbereich markieren und diesen mit Strg+C kopieren. Wenn du die Markierung wieder entfernst und Strg+V drückst fügt er es als Bild ein. Anderenfalls würde er es in die Markierung einfügen. Dann drückst du Strg+S und speicherst das Bild irgendwo. Nach Möglichkeit als JPG. Als Qualität benutze ich sehr häufig 95. Damit sieht das Bild noch recht gut aus und die Dateigröße hält sich auch in Grenzen.

Hochladen kannst du es als Angang. Dazu siehst du unter dem Eingabefeld für deinen beitrag den Button "Attachment hinzufügen". Wenn du darauf drückst kommen ein paar Felder. Eines zum Auswählen der Datei und ein Kommentar. Wenn du den Button "Attachment hinzufügen" rechts daneben betätigst wird die Datei hochgeladen und landet dann in deinem Posting. Du kannst 2 oder 3 Dateien pro Posting hinzufügen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 12:07 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
Das ist Klasse, okay

also ich habe jetzt ne .bmp genommen (sry) weil die qualität dort am besten ist und in diesem screenshot kommt es nunmal auf diese an.

so der rote rahmen steht für das Produkt ohne filter im Programm, der orange Rahmen stellt die textur des cursors dar und der gelbe rahmen ist die maske dazu. Der cursor im weißen Rahmen ist das Produkt, wenn ich nicht einmal versuche die Filter auszuschalten. Wahrscheinlich macht es sinn, das bild mit einem Zeichenprogramm etwas zu vergrößern, um die einzelenen Pixel deutlicher erkennen zu können. Im Prinzip soll der cursor exakt wie das Bild im orangen rahmen aussehen, nur ohne die schwarze grundfläche.

[edit]nanu?? wo ist denn nu das attechment? achso.. keine bmp.. na wer lesen kann ist klar im vorteil.. na gut.. dann machen wir mal ne jpeg... son strunzel krümel format.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 12:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ah. Da kommen wir der Sache doch schon näher.

Was isn das für ne Maske? Normal sieht die Maske so aus, dass alles was weiß ist auch voll dargestellt wird und alles was Schwarz ist nicht dargestellt wird. Also müsste der Alphakanal (Maske) genau so aussehen wie auch dein eigentliches Bild.

Ich denke dein Problem liegt in der Positionierung deines Cursors. Es handelt sich dabei ja um eine Art Cursor und dieser sollte in 2D und dann Pixelgenau dargestellt werden. Aber auch dann bist du in der Lage, dass du anstelle von 10 dann 10.5 als Position nehmen kannst. Das würde dann bedeuten, dass das eine Pixel zur Hälfte mit dem Quad gefüllt wäre. Somit würde auch deine Textur nur zur Hälfte dargestellt werden. Das Resultat wäre dann ein verschwommenes Bild. Besonders gut erkennt man das an harten Kannten die dann gar nicht mehr so hart sind.

Ich denke mal dieser Effekt wird noch mal verstärkt, wenn du den Filter aktivierst.

Wichtig ist, dass du bei glOrtho auch genau die Größe angegeben hast du auch dein Fenster hat. Wenn das nicht der Fall ist kann das schon dafür sorgen. Wenn du es aber bereits schon so gemacht hast, dann solltest du mal deine Koordinaten genau betrachten. Zur Not berechne einen Punkt. Runde diese auf ganze Zahlen und Addiere die Größe hinzu. Damit sollte es dann wieder eine richtige Größe haben.

PS: Schau dir mal mal bei dem roten Teil das Rechte obere Dreieck an. Die Außenkante sollte ziemlich gerade aussehen. Tut sie aber nicht. Es macht den Anschein als ob in der Mitte eine kleine Kerbe vorhanden ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 15:00 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
das mit dem schwarz=0 und weiß=1 transparenz ist ne sache, die abhängig ist von der Blend func.

damit schwarz=durchsichtig ist und weiß=sichtbar verwendet man
glBlendFunc(GL_SRC_COLOR,GL_ONE);

um den Effekt um zu drehen, also schwarz=sichtbar und weiß=durchsichtig
glBlendFunc(GL_DST_COLOR,GL_ZERO);

ich habe halt letzteres verwendet, das sollte eigentlich keinen unterschied machen, habs aber dennoch einmal negativ ausprobiert, da ist allerdings der selbe effekt.

wegen den gerundeten zahlen:

Ich habe eine Funktion geschrieben, die den Mittelpunkt des quads erhält und dann die punkte drum herum zeichnet, abhängig von der Breite und Höhe, also jeweils width/2 und height/2 (habs auch mit div gemacht um ganzzahlen zu erhalten). Da mein cursor eine größe von 24pixeln hat geh ich also von der cursor position 12 nach oben,links,rechts und unten... da dürfte theoretisch nichts schiefes übrig bleiben.

Meiner meinung nach liegt es am alpha selbst, dass dieser effekt verursacht wird. Lass ich den alpha weg, so dass die Textur komplett gezeichnet wird, ist sie scharfkantig.

wenn ich die errechneten punkte des quads auch runde, ändert sich das auch nicht... :(
gibts einen anderen weg das schwarz verschwinden zu lassen??

[edit]
ich häng mal meinen code zum cursorzeichnen mit an, evtl. erkennt ihr ja nen fehler, den ich übersehen habe:

Code:
  1.  
  2.     glEnable(GL_BLEND);
  3.     glDisable(GL_DEPTH_TEST);
  4.  
  5.     glBindTexture(GL_TEXTURE_2D, cursor_mask);
  6.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  7.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  8.     glBlendFunc(GL_SRC_COLOR,GL_ONE);
  9.     drawquad(Mouse.CursorPos.X,(Mouse.CursorPos.Y)-600,0,24,24);
  10.  
  11.     glBindTexture(GL_TEXTURE_2D, cursor);
  12.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  13.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  14.     glBlendFunc(GL_ONE,GL_ONE);
  15.     drawquad(Mouse.CursorPos.X,(Mouse.CursorPos.Y)-600,0,24,24);
  16.  
  17.     glEnable(GL_DEPTH_TEST);
  18.     glDisable(GL_BLEND);
  19.  

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 15:14 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Nur mal so ein Gedanke, aber wär es möglich dass du Fullscreen Antialiasing oder sowas bei deinem Grafikkartentreiber eingestellt hast?

[edit]
Und gleich noch ein weiterer Gedanke :-):
Wär es möglich dass du gluBuild2DMipmaps verwendest und die Kantenlängen deiner Texturen nicht 2^x sind? Diese Funktion skaliert dann nämlich deine Texturen auf solche Kantenlängen und diese wird dabei notgedrungen etwas verwaschen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 15:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das mit der Glu ist durchaus noch eine Sache die du überprüfen solltest. Hatte bei den Bildern gar nicht drauf geachtet wie groß die waren. :roll:

Aber noch mal was zu deiner Zeichenmethode. Die ist ja ganz schön und gut. ABER. Es geht noch wesentlich einfacher. Du kannst in einem TGA oder ähnlichem gleich von hause aus einen Alphakanal mit einbinden und diesen dann als eine Textur an OpenGL übergeben. Wenn du dann anhand des Alpha blendest zeichnest du nur 1 Quad und musst nur eine Textur benutzen obwohl du den gleichen Effekt bekommst. Alles aber wesentlich einfacher.

PS: Du könntest es in diesem Falle auch nur auf den Alphakanal reduzieren, da die Fläche sonst eine einheitliche Farbe hat. Aber das ist ein andere Thema. Aber nur mal um aufzuzeigen, dass sogar das geht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 16:11 
Offline
DGL Member

Registriert: So Feb 19, 2006 23:46
Beiträge: 55
Vielleicht solltest du mal statt Alpha-Testint statt Alpha-Blending ausprobieren. Damit solltest du auf jeden Fall scharfe Kanten hinbekommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 16:44 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
wow.. öhm das nen ich mal nen schönen satz antworten..

also, die glu verwende ich nicht, sondern Textures.pas und meine texturen sind alle (2*n)^2 größe.
gestreckt werden die also auf gar keinen fall. Das Antialiasing meiner Radeon ist auch aus (wo stellt man das an?)

das mit den *.tga ist sone Sache, mit denen hab ich erst einmal gearbeitet, als ich nen Wh40k shooter mit nem cybot gebaut habe (ebenfalls in 2D) da hatte ich auch schon sone Grafikfragmentstörungen drin. Nur weiß ich jetzt nicht mehr, wie ich die einbaue/verwende (habs mit den Tuts versucht, aber da funzt der alpha nicht so wie ich will) lieber wäre mir wirklich mit blending und *.bmp, da ich darüber mehr Effektmöglichkeiten habe und ich mich dort etwas besser auskenne. Außerdem wird das Game schon nicht in den Keller der fps sinken, nur weil ich meinen Cursor doppelt zeichne. Zu dem Alpha-Testint.. was ist das??

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 17:27 
Offline
DGL Member

Registriert: So Feb 19, 2006 23:46
Beiträge: 55
Ups, ich meinte natürlich Alpha-Testing. Dabei wird im Gegensatz zum Alpha-Blending nicht die neue Farbe nicht mit der alten kombiniert, sondern es wird für jeden Pixel ein Test durchgeführt, der entscheidet ob er dargestellt wird oder nicht.
Um Alpha-Testing zu benutzen musst du mit glAlphaFunc den Test einstellen und GL_ALPHA_TEST mit glEnable aktivieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 18:48 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
achso.. naja ich dachte, dass es das alpha Testint auch geben könnte (ein alpha test auf integer basis ??? )
na ja gut danke schön, werd mich mal damit befassen.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 20:17 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Auf die Gefahr hin wieder mal lästig zu sein, aber wenn du kein Antialiasing hast und die Texturen mit NEAREST zeichnest, bleiben nicht mehr viel andere (wenn überhaupt andere) Möglichkeiten als das die Textur verwaschen wurde.

Deine Schwarz-Weiß Bildlein von oben haben eine Seitenlänge von 24x24. Deine Blau-Weiß-Bilder sehen fast genau so aus wie wenn ich im Paint dein Fadenkreuz von 24x24 auf 32x32 scale und dann wieder zurück auf 24x24.

Du hast geschrieben deine Texturen besitzen eine Größe von "(2*n)^2", und ich würde auch annehmen das es ein kleiner Schreib- oder Denkfehler war wenn nicht vieles andere auch darauf hindeuten würde, dass es daran liegt.

Also nochmal ganz konkret, haben deine Texturen eine Breite und Höhe von
16,32 oder 64 Pixel
also 2 hoch x?
Oder (wie es deine mathematische Beschreibung vermuten lässt) nur eine Seitenlänge die durch 2 teilbar ist und quadratische Texturen?

Also wie gesagt, sorry falls ich mir da nur was einbilde, aber es wäre nicht das erste mal das ich etwas missverstanden wurde :-).

Aber das mit dem Alphatest ist sicherlich eine gute Idee und auch eine Lösung, auch wenn es eher Symptombekämpfung als eine Problemlösung ist, aber in gewissen Fällen ist dies natürlich ausreichend.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 11, 2006 22:21 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also bei dem schwarzen Hintergrund musste ich wie yonibear auch sofort an den Alphatest denken. Wobei das was Lyr sagt durchaus auch sinn macht. Das würde dann aber bedeuten, dass der GraKa-Treiber selbstständig die Texturen Scaliert. Eventuell eine etwas zweifelhafte Methode nonPof2 zu implementieren.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 46 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]