Ich habe eine Landschaft gezeichnet, die aus vielen Rechtecken besteht. Jedes Quadrat bekommt nun per Alpha_Blending vier Texturen, von denen jeweil nur eine Ecke zu sehen ist. Allerdings sind zwischen den Rechtecken nun schwarze Ränder, die ich nicht wegbekomme.
Wenn ich aber nur eine Textur zeichne funktioniert es.
Hier mal der Code:
Code:
procedure ZeichneBoden;
var X,Y:Integer;
XteTextur,YteTextur:Byte;
BodenTexturBild:Byte;
BodenTexturTeil:Byte;
SObjektNr:integer;
begin
with Boden do//Falls etwas unmögliches sichbar sein soll berichtigen
begin
if Sichtbar.x < 0then Sichtbar.x:=0;
if Sichtbar.y < 0then Sichtbar.y:=0;
if Sichtbar.Height > Height then Sichtbar.Height:= Height;
if Sichtbar.Width > Width then Sichtbar.Width:= Width;
if Sichtbar.Height+ Sichtbar.y > Height then Sichtbar.y:= Height - Sichtbar.Height;
if Sichtbar.Width+ Sichtbar.x > Width then Sichtbar.x:= Width - Sichtbar.Width;
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die Qualität des Screenshots ist leider viel zu schlecht, als das man darauf wirklich was erkennen könnte. Aber du bist dir ja im klaren drüber, das Blending nicht per-Fragment arbeitet, oder? D.h. das du für Blending auf die Zeichenreihenfolge achten musst, und zwar Back-To-Front, da du ansonsten keine korrekten Ergebnisse erzielst. Wenn du mit aktivem Blending z.B. Fläche A vor (im Sinne von niedrigerem Z-Wert) Fläche B zeichnest, und dann Fläche B (die weiter weg ist), dann siehst du Fläche B nicht, weil diese vom Z-Test her nicht gezeichnet wird. Hier muss man also sortieren.
Wenns daran nicht liegt, dann könnte es nur noch daher kommen, dass du die Rechtecke mit nem fehlerhaften Abstand zeichnest.
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.