Thema: Blending

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Blending

  Alt 30. Mär 2017, 15:08
glBlendFunc(GL_SRC_ALPHA, GL_ONE)
Naja, also ich sage mal ganz banal:

Delphi-Quellcode:
function Blend(const src, dst: Cardinal): Cardinal;
var
  src_rgba: TRGBQuad absolute src;
  dst_rgba: TRGBQuad absolute dst;
  res_rgba: TRGBQuad absolute Result;
begin
  res_rgba.a := Min(src.a*src.a div 255 + dst.a, 255);
  res_rgba.r := Min(src.a*src.r div 255 + dst.r, 255);
  res_rgba.g := Min(src.a*src.g div 255 + dst.g, 255);
  res_rgba.b := Min(src.a*src.b div 255 + dst.b, 255);
end;
So sollte es eigentlich stimmen (nicht getestet).

Was dein Code da macht, da habe ich überhaupt keine Ahnung. Das scheint auf den ersten Blick extrem hyper-optimiert zu sein. Aber wenn es nicht funktioniert, dann ist es vielleicht doch nicht so clever.

Ich wüsste aber persönlich auch nicht, wie man die Multiplikation nur durch boolsche Operationen ersetzen können sollte, alleine deshalb bin ich etwas skeptisch gegenüber deinem Code. Das kann meiner Meinung nach so nicht funktionieren, aber falls doch, dann wäre ich sehr gespannt zu erfahren, wie.
  Mit Zitat antworten Zitat