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

Aktuelle Zeit: Fr Jul 18, 2025 21:01

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



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Textur halb auf Polygon
BeitragVerfasst: Mo Nov 13, 2006 18:34 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Ich habe vor, einen HeroQuest-Clon zu schreiben (nein für die Projekteecke isses noch zu früh), aber mit Hexfeldern.
Jetzt möchte ich die Möglichkeit haben, overlays darzustellen (z.B.: einen Teppich), die sich über mehrere Felder erstrecken.
Wenn ich jetzt ein Feld rendere, das mittig im Teppich liegt, habe ich kein Problem, da gebe ich für alle Vertexe die entsprechenden Texturkoordinaten an.
Wenn aber ein Feld am Teppichrand gerendert wird, liegen ja nicht alle Vertexe 'auf dem Teppich', bzw. ragen darüber hinaus.
Wie gebe ich in diesem Fall die Texturkoordinaten für diese Vertexe an?

p.s.: den Teppich hinterher rendern fällt aus, da ich jedes Feld umranden möchte. Der Teppich liegt sozusagen zwischen Boden und Umrandung.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 02:23 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Verstehe ich das richtig? Du möchtest so ein Zwischending zwischen Tile-based und beliebig? Sowas wird (wohl nicht ohne Grund) eher selten gemacht, also du solltest dir ernsthaft überlegen warum du das ganze mit Hex-Feldern machst und nicht mit quadratischen Tiles denn bei quadratischen Tiles könntest du wohl ohne größere Probleme einen Rechteckigen Teppich drauf legen. Wenn es dir aber nur um die Ränder der Hex-Tiles geht, so kannst du diese ohen größere Probleme nachträgrlich mit GL_LINES (oder vergleichbarem) darüber legen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 09:23 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Tja, das ganze basiert auf Hexfeldern, da ich unter Anderem auch die Blickrichtung der Figuren berücksichtigen will (Defensivmalus von hinten usw.) und ich keine Diagonalbewegungen haben will. Ausserdem soll der Teppich eine beliebige ausrichtung haben können.
Ich hab mir jetzt überlegt, dass ich ja erst den Boden zeichnen, dann den Teppich mit GL_ONE,GL_ZERO drüberblenden und als letztes die Hexstruktur druberzeichenen kann. Das hätte zudem den Vorteil, dass ich bei eh nicht begehbaren Feldern die Hexstruktur einfach weglassen kann.

Nichtsdestotrotz würde mich sowas generell interessieren, da ja in z.b.: WoW unter den Figuren eine Selektionsmarkierung eingeblendet wird, die sich ja auch nicht über das gesamte Polygon erstreckt, auf dem die Figur gerade steht. Unter Umständen erstreckt sich sowas auch über mehrere Polygone.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 11:15 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
wie wärs wenn du die Umrandund über den Teppich zeichnest oder die Umrandung dicker machst ( glLineWidth() ) :?:

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 12:04 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Um den großen deutschen Philosophen Wiege zu zitieren: Ich werd erst Boden, dann Overlays und zum Schluß das Raster zeichnen.

Ich wäre trotzdem dankbar, wenn die Gurus mal nen Tipp gäben, wie sowas grundsätzlich zu realisieren wäre.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 12:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Irgendwie scheine ich gerade auf dem Schlauch zu stehen. Ich muss auch gestehen, dass ich sowohl HeroQuest als auch WOW nicht kenne oder nicht gut genug kenne um zu wissen wie das machen. Allerdings weiß ich auch nicht ob man die Technik von WOW und einem Hexspiel vergleichen kann. Vor allem, da du in einem Hexspiel nur eine gerade Fläche hast?

Aber wenn ich das so richtig verstanden habe liegt dein Problem in der Herrangehensweise. Zu mindest in deinem ersten Post. Aber so wie in deinem Zweiten würde ich das wohl auch machen. Zu erst den Boden und dann den Teppich ganz normal "drüberrollen" und anschließen dann deine Hexstruktur drüber zeichnen.

Dafür müsstest du aber nicht mal blenden. Außer du möchtest wirklich blenden. Was bei der Funktion aber nicht der Fall wäre. Sonst genügt es, wenn du den Tiefentest entsprechend auf kleiner gleich (GL_LEQUAL) stellst. Sobald die an die selbe Stelle gezeichnet werden überlagern sie sich automatisch. Und das sollte eigentlich dann schon die komplette Lösung sein.

Immer unter der Vorraussetzung, dass ich dein Problem richtig verstanden habe. Wo ich mir absolut nicht sicher bin.

PS: Es gibt auch eine Möglichkeit eine Textur nur bis zu deren echte Ränder zeichnen zu lassen. Egal ob die Texturkoordinaten bis 1.25 gehen oder nicht. Dazu musst du einen anderen Wrapmodus benutzen. Und wenn du als Farbe dann das entsprechende nimmst was du brauchst dann sollte sich das beim Blenden oder Multitexturieren auch nicht zeigen. Das hängt aber vom jeweiligen Blendmodus etc ab.
Code:
  1. var
  2.   TempColor: array [0..3] of single;
  3. begin
  4.   FLena.SetWrap(GL_CLAMP_TO_BORDER, GL_CLAMP_TO_BORDER);
  5.   TempColor[0] := 1;
  6.   TempColor[1] := 1;
  7.   TempColor[2] := 1;
  8.   TempColor[3] := 1;
  9.   glTexParameterfv(FLena.Target, GL_TEXTURE_BORDER_COLOR, @TempColor[0]);


PPS: Evtl wäre die Technick bei detailtexturen in Terrains bzw. Projezierte Texturen für dich auch ganz interessant. Allerdings sind die eher nur für ungerade Flächen (Landschaft) gedacht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 13:02 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Na das ist genau das was ich suchte^^. Damit kann ich dann wohl auch negative Texturkoordinaten verwenden, wenn mein Poly links rausragt?

Zur Farbe... Welche Auswirkung hat diese? wird der Rest des Polys in dieser gezeichet? wenn ja, reicht das wenn ich für Alpha 0 angebe, damit keine Farbe gezeichnet wird?

p.s.: Ja, ein Thread, eine Frage, aber ich denke das gehört alles zusammen.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 13:06 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Nochmal ich: Kann ich dieses Clamping auch Textureinheitsspezifisch einstellen? weil: wenn ich den oben genannten Ansatz nehme, kann ich unter Teppichen ganz schlecht z.b.: Fallgruben darstellen, weil der Teppich ja nix von weiß. Drumm wolte ich das Feld sozusagen 'in einem Rutsch' mit mehreren Texturen zeichnen. Daher auch das Problem mit dem teilweisen Zeichnen der Teppichtextur.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 13:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also das ist ein Wrapmode wie jeder Andere. GL_REPEAT klebt ja auch nur an genau der Textur an der du das zugewiesen hast. Also beantworte dir deine Frage selber. :-P

Und für dein Polygon sieht es so aus als ob deine Textur sich über die gesammte Fläche erstreckt. Du hast ja nur das Ergebniss der Textureinheit beeinflusst. Wichtig ist allerdings, dass dein zu grunde liegendes Texturformat auch Alpha mit unterstützen MUSS. Selbst wenn du ihn nur dafür benutzt. Sonst verwirft die Textureinheit den Alphakanal. Ist ja auch Konsequent. Eine Textur die keinen Alpha hat dann aber doch einen liefert.

PS: Das alles habe ich nur auf ATI Karten testen können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 13:24 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Na ich hab eh vor diesen schicken Texturloader zu nehmen, den irgend so ein Mitglied der DGL geschrieben hat :wink:, der kann imho Alphakanäle zu Texturen dazubringen.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 14:02 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Echt? Wer macht denn so was?

Aber wie? Du benutzt den noch nicht? Ich glaube das müssen wir dann noch mal in einer dunklen ähh ruhigen Ecke des Forum ausdisskutieren. :twisted: ;-)

PS: Gut geschleimt. ;-) Aber das erinnert mich wieder daran, dass ich da eigentlich noch das setzen der Farbe kappseln wollte. Also in die Klasse mit einbauen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 14, 2006 15:10 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Ich benutz den schon, weil wer erfindet gerne das Rad neu :?:
Na denn neue Kapseln gekauft und ab der Fisch. Morgen will ich damit anfangen :twisted:

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 15, 2006 22:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So ich hatte mal ein paar Minuten Zeit und habe die kleinen Änderungen eingebaut. Zu finden auf meiner Homepage.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 16, 2006 09:30 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Vielen Dank, ich werds mir heute abend gleich runterladen.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.010s | 15 Queries | GZIP : On ]